From 371db072a73024b10de5d603201d7c3c9a49027a Mon Sep 17 00:00:00 2001 From: Dario Salvi Date: Mon, 8 Jul 2024 20:53:44 +0200 Subject: [PATCH] Committed my state --- .babelrc | 19 - .editorconfig | 0 .eslintignore | 3 + .eslintrc.cjs | 78 + .eslintrc.js | 56 - .github/dependabot.yml | 14 - .gitignore | 6 +- .npmrc | 5 + .nvmrc | 1 - .stylintrc | 35 - .vscode/extensions.json | 14 + .vscode/settings.json | 18 + CHANGELOG.md | 50 - README.md | 231 +- babel.config.cjs | 14 + babel.config.js | 20 - jest.config.js | 57 - jsconfig.json | 40 +- package-lock.json | 20760 +++++++--------- package.json | 45 +- .postcssrc.js => postcss.config.cjs | 1 + project.config.js | 23 + project.config.template.js | 1 - public/imgs/MobistudyIntroScreens_1.svg | 13 - public/imgs/MobistudyIntroScreens_2.svg | 2 - public/imgs/MobistudyIntroScreens_3.svg | 2 - public/imgs/MobistudyIntroScreens_4.svg | 2 - public/imgs/confetti.svg | 95 - public/instructions/6mwt1.svg | 1 - public/instructions/6mwt2.svg | 1 - public/instructions/6mwt3.svg | 1 - public/instructions/6mwt4.svg | 1 - public/instructions/6mwt5.svg | 1 - public/instructions/6mwt6.svg | 1 - public/instructions/6mwt7.svg | 1 - public/instructions/Drawing_task-01.svg | 1 - public/instructions/Drawing_task-02.svg | 1 - public/instructions/Drawing_task-03.svg | 1 - public/instructions/HoldYourPhone_task-01.svg | 1 - public/instructions/HoldYourPhone_task-02.svg | 1 - public/instructions/HoldYourPhone_task-03.svg | 1 - public/instructions/HoldYourPhone_task-04.svg | 1 - public/instructions/HoldYourPhone_task-05.svg | 1 - public/instructions/QCST-01.svg | 1 - public/instructions/QCST-02.svg | 1 - public/instructions/QCST-03.svg | 1 - public/instructions/QCST-04.svg | 1 - public/instructions/QCST-05.svg | 1 - public/instructions/QCST-06.svg | 1 - public/instructions/QCST-07.svg | 1 - public/instructions/QCST-08.svg | 1 - public/instructions/TUGtask-01.svg | 1 - public/instructions/TUGtask-02.svg | 1 - public/instructions/TUGtask-03.svg | 1 - public/instructions/TUGtask-04.svg | 1 - public/instructions/TUGtask-05.svg | 1 - public/instructions/dataquery1.svg | 1 - public/instructions/dataquery2.svg | 1 - public/instructions/fingertapping1.svg | 1 - public/instructions/fingertapping2.svg | 1 - public/instructions/holdphone.svg | 1 - public/instructions/miband3_1.svg | 75 - public/instructions/miband3_2.svg | 66 - public/instructions/miband3_tap.svg | 60 - public/instructions/peakflow_1.svg | 127 - public/instructions/peakflow_2.svg | 136 - public/instructions/peakflow_3.svg | 120 - public/instructions/peakflow_4.svg | 144 - public/instructions/po60_1.jpg | Bin 12470 -> 0 bytes public/instructions/po60_2.jpg | Bin 18108 -> 0 bytes public/instructions/po60_3_android.jpg | Bin 145313 -> 0 bytes public/instructions/po60_3_ios.jpg | Bin 72773 -> 0 bytes public/instructions/position-01.svg | 1 - public/instructions/position-02.svg | 1 - public/instructions/vocalization_1.svg | 1 - public/instructions/vocalization_2.svg | 1 - public/instructions/vocalization_3.svg | 1 - public/instructions/vocalization_4.svg | 1 - public/logos/logo-1024.png | Bin 36520 -> 0 bytes public/logos/logo.svg | 15 - public/logos/malmo_logo.png | Bin 9068 -> 0 bytes public/logos/mobistudy-white.svg | 43 - public/sounds/dingbell.wav | Bin 111354 -> 0 bytes quasar.conf.js | 231 - quasar.config.js | 269 + quasar.extensions.json | 13 - quasar.testing.json | 5 - src-cordova/config.xml | 130 - src-cordova/cordova-flag.d.ts | 9 - src-cordova/hooks/README.md | 23 - src-cordova/package-lock.json | 5231 ---- src-cordova/package.json | 69 - src-cordova/res/android/hdpi.png | Bin 1133 -> 0 bytes src-cordova/res/android/ldpi.png | Bin 604 -> 0 bytes src-cordova/res/android/mdpi.png | Bin 791 -> 0 bytes src-cordova/res/android/xhdpi.png | Bin 1533 -> 0 bytes src-cordova/res/android/xxhdpi.png | Bin 2067 -> 0 bytes src-cordova/res/android/xxxhdpi.png | Bin 2633 -> 0 bytes src-cordova/res/ios/icon-1024.png | Bin 8855 -> 0 bytes src-cordova/res/ios/icon-20.png | Bin 324 -> 0 bytes src-cordova/res/ios/icon-20@2x.png | Bin 560 -> 0 bytes src-cordova/res/ios/icon-20@3x.png | Bin 708 -> 0 bytes src-cordova/res/ios/icon-24@2x.png | Bin 649 -> 0 bytes src-cordova/res/ios/icon-27.5@2x.png | Bin 708 -> 0 bytes src-cordova/res/ios/icon-29.png | Bin 441 -> 0 bytes src-cordova/res/ios/icon-29@2x.png | Bin 682 -> 0 bytes src-cordova/res/ios/icon-29@3x.png | Bin 1363 -> 0 bytes src-cordova/res/ios/icon-40.png | Bin 560 -> 0 bytes src-cordova/res/ios/icon-40@2x.png | Bin 895 -> 0 bytes src-cordova/res/ios/icon-44@2x.png | Bin 1463 -> 0 bytes src-cordova/res/ios/icon-50.png | Bin 655 -> 0 bytes src-cordova/res/ios/icon-50@2x.png | Bin 1205 -> 0 bytes src-cordova/res/ios/icon-60@2x.png | Bin 1483 -> 0 bytes src-cordova/res/ios/icon-60@3x.png | Bin 1975 -> 0 bytes src-cordova/res/ios/icon-72.png | Bin 1119 -> 0 bytes src-cordova/res/ios/icon-72@2x.png | Bin 1488 -> 0 bytes src-cordova/res/ios/icon-76.png | Bin 1154 -> 0 bytes src-cordova/res/ios/icon-76@2x.png | Bin 1450 -> 0 bytes src-cordova/res/ios/icon-83.5@2x.png | Bin 2050 -> 0 bytes src-cordova/res/ios/icon-86@2x.png | Bin 2072 -> 0 bytes src-cordova/res/ios/icon-98@2x.png | Bin 3239 -> 0 bytes src-cordova/res/ios/icon.png | Bin 760 -> 0 bytes src-cordova/res/ios/icon@2x.png | Bin 2189 -> 0 bytes .../screen/android/mobistudysplashandroid.png | Bin 9755 -> 0 bytes .../res/screen/ios/Default@2x~ipad~anyany.png | Bin 13410 -> 0 bytes .../res/screen/ios/Default@2x~ipad~comany.png | Bin 4957 -> 0 bytes .../screen/ios/Default@2x~iphone~anyany.png | Bin 4612 -> 0 bytes .../screen/ios/Default@2x~iphone~comany.png | Bin 2555 -> 0 bytes .../screen/ios/Default@2x~iphone~comcom.png | Bin 2852 -> 0 bytes .../screen/ios/Default@3x~iphone~anyany.png | Bin 8906 -> 0 bytes .../screen/ios/Default@3x~iphone~anycom.png | Bin 5202 -> 0 bytes .../screen/ios/Default@3x~iphone~comany.png | Bin 4651 -> 0 bytes src-pwa/pwa-flag.d.ts | 9 - src/App.vue | 82 +- src/assets/goalflags.svg | 119 - src/assets/quasar-logo-vertical.svg | 15 + src/assets/sad.svg | 1 - src/assets/thank-you.svg | 2 - src/boot/.gitkeep | 0 src/boot/axios.js | 24 +- src/boot/i18n.js | 26 +- src/boot/vuelidate.js | 5 - src/components/.gitkeep | 0 src/components/BarChart.js | 9 - src/components/Consents.vue | 333 - src/components/EssentialLink.vue | 49 + src/components/Intro.vue | 79 - src/components/LineChart.js | 9 - src/components/PieChart.js | 9 - src/components/ProfileEditor.vue | 510 - src/components/StudyInfo.vue | 111 - src/components/TaskListItem.vue | 152 - src/components/WalkingMan.vue | 52 - src/css/app.css | 20 - src/css/quasar.variables.sass | 12 - src/i18n/common/common.js | 2 +- src/i18n/studies/en/studies.js | 2 +- src/i18n/studies/en/tasks/holdphone.js | 8 +- src/i18n/studies/en/tasks/peakflow.js | 4 +- src/i18n/studies/en/tasks/tugt.js | 2 +- src/i18n/studies/es/studies.js | 2 +- src/i18n/studies/es/tasks/holdphone.js | 8 +- src/i18n/studies/es/tasks/peakflow.js | 4 +- src/i18n/studies/sv/studies.js | 2 +- src/i18n/studies/sv/tasks/holdphone.js | 8 +- src/i18n/studies/sv/tasks/peakflow.js | 8 +- src/i18n/studies/sv/tasks/tapping.js | 2 +- src/i18n/studies/sv/tasks/tugt.js | 4 +- src/index.template.html | 41 +- src/layouts/ConsentLayout.vue | 42 - src/layouts/HomeLayout.vue | 124 - src/layouts/MainLayout.vue | 117 + src/layouts/RegLayout.vue | 41 - src/layouts/TaskLayout.vue | 95 - src/modules/API/mockdata/participant.js | 85 - .../API/mockdata/surgeryai/surgeryai.json | 172 - src/modules/audio.js | 88 - src/modules/bledevice/BLEDevice.js | 153 - src/modules/bledevice/BLEDevice.mock.js | 82 - src/modules/files/files.js | 129 - src/modules/files/files.mock.js | 39 - src/modules/files/logger.js | 74 - src/modules/healthDataTypesEnum.js | 14 - src/modules/healthstore.js | 65 - src/modules/healthstore.mock.js | 156 - src/modules/miband3/CustomDate.js | 68 - src/modules/miband3/Miband3Driver.js | 1575 -- src/modules/miband3/miband3.js | 193 - src/modules/miband3/miband3.mock.js | 178 - .../miband3/miband3ActivityTypeEnum.js | 36 - src/modules/notifications/notifications.js | 31 - .../notifications/notifications.mock.js | 75 - .../notifications/notifications.web.js | 56 - src/modules/outdoorDistance.js | 201 - src/modules/passwordChecker.js | 136 - src/modules/peakflow/peakflow.js | 80 - src/modules/peakflow/peakflow.mock.js | 53 - src/modules/po60/CustomDate.js | 82 - src/modules/po60/IPulseOxDevice.js | 49 - src/modules/po60/IPulseOxDevice.mock.js | 82 - src/modules/po60/PulseOxDevice.js | 161 - src/modules/scheduler.js | 420 - src/modules/stats.js | 163 - src/modules/sweeper.js | 62 - src/pages/Empty.vue | 9 - src/pages/Error404.vue | 24 - src/pages/ErrorNotFound.vue | 31 + src/pages/IndexPage.vue | 17 + src/pages/Intro.vue | 107 - src/pages/about/About.vue | 71 - src/pages/about/AboutPrivacyPolicy.vue | 27 - src/pages/about/Acknowledgements.vue | 25 - src/pages/about/Contact.vue | 31 - src/pages/about/Introduction.vue | 31 - src/pages/about/License.vue | 48 - src/pages/accountmgmt/ChangePW.vue | 172 - src/pages/accountmgmt/Login.vue | 182 - src/pages/accountmgmt/Reg_PrivacyPolicy.vue | 42 - src/pages/accountmgmt/Reg_Profile.vue | 88 - src/pages/accountmgmt/Reg_SignUp.vue | 166 - src/pages/accountmgmt/ResetPW.vue | 78 - src/pages/consent/Accepted.vue | 80 - src/pages/consent/ConsentItems.vue | 148 - src/pages/consent/Invitation.vue | 32 - src/pages/consent/PrivacyPolicy.vue | 78 - src/pages/consent/StudyDetails.vue | 31 - src/pages/home/Profile.vue | 237 - src/pages/home/Studies.vue | 343 - src/pages/home/StudyConfig.vue | 167 - src/pages/home/Tasker.vue | 398 - src/pages/home/Test.vue | 134 - src/pages/tasks/dataQuery/DataQuery.vue | 393 - src/pages/tasks/dataQuery/DataQueryIntro.vue | 36 - src/pages/tasks/drawing/drawing.vue | 222 - src/pages/tasks/drawing/drawingIntro.vue | 30 - src/pages/tasks/drawing/drawingSummary.vue | 87 - src/pages/tasks/fingerTapping/Tapping.vue | 141 - .../tasks/fingerTapping/TappingIntro.vue | 30 - .../tasks/fingerTapping/tappingSummary.vue | 93 - src/pages/tasks/form/Form.vue | 671 - src/pages/tasks/form/FormIntro.vue | 82 - src/pages/tasks/holdPhone/holdPhone.vue | 321 - src/pages/tasks/holdPhone/holdPhoneIntro.vue | 30 - .../tasks/holdPhone/holdPhoneSummary.vue | 176 - src/pages/tasks/miband3/MiBand3Connect.vue | 218 - src/pages/tasks/miband3/MiBand3Intro.vue | 26 - .../tasks/miband3/Miband3DataDownload.vue | 497 - src/pages/tasks/miband3/notEnoughDataPage.vue | 21 - src/pages/tasks/peakflow/PeakFlow.vue | 167 - .../tasks/peakflow/PeakFlowCalibrate.vue | 86 - src/pages/tasks/peakflow/PeakFlowIntro.vue | 32 - src/pages/tasks/peakflow/PeakFlowReview.vue | 182 - src/pages/tasks/peakflow/PeakFlowSummary.vue | 93 - src/pages/tasks/po60/PO60Connect.vue | 207 - src/pages/tasks/po60/PO60Download.vue | 209 - src/pages/tasks/po60/PO60Intro.vue | 32 - src/pages/tasks/position/Position.vue | 207 - src/pages/tasks/position/PositionIntro.vue | 30 - src/pages/tasks/qcst/QCST.vue | 155 - src/pages/tasks/qcst/QCSTHR.vue | 45 - src/pages/tasks/qcst/QCSTIntro.vue | 31 - src/pages/tasks/qcst/QCSTSummary.vue | 309 - src/pages/tasks/smwt/SMWT.vue | 266 - src/pages/tasks/smwt/SMWTIntro.vue | 30 - src/pages/tasks/smwt/SMWTSummary.vue | 316 - src/pages/tasks/tugt/TUGT.vue | 204 - src/pages/tasks/tugt/TUGTIntro.vue | 30 - src/pages/tasks/tugt/TUGTSummary.vue | 125 - src/pages/tasks/vocalization/vocalization.vue | 213 - .../tasks/vocalization/vocalizationIntro.vue | 30 - .../vocalization/vocalizationSummary.vue | 127 - src/router/index.js | 29 +- src/router/routes.js | 136 +- src/{modules => shared}/API/API.js | 26 +- src/{modules => shared}/API/API.mock.js | 14 +- .../API/mockdata/environment.js | 0 .../API/mockdata/formTest.js | 4 +- .../API/mockdata/parkapp/questBDI2.json | 0 .../API/mockdata/parkapp/questDailySleep.json | 0 .../API/mockdata/parkapp/questNMS.json | 0 .../API/mockdata/parkapp/questPDQ8.json | 0 .../API/mockdata/parkapp/questPDSS2.json | 0 .../API/mockdata/parkapp/questTAM.json | 0 .../API/mockdata/parkapp/questUMARS.json | 0 .../API/mockdata/parkapp/studyParkapp.json | 0 .../API/mockdata/parkapp/studyParkapp2.json | 0 src/shared/API/mockdata/participant.js | 159 + .../API/mockdata/studyTest.js | 10 +- src/{modules => shared}/db.js | 20 +- .../phone/audiorecorder.js | 8 +- src/{modules => shared}/phone/geolocation.js | 14 +- src/{modules => shared}/phone/motion.js | 8 +- src/{modules => shared}/phone/orientation.js | 8 +- src/{modules => shared}/phone/pedometer.js | 4 +- src/{modules => shared}/phone/phone.js | 12 +- src/{modules => shared}/phone/phone.mock.js | 0 src/{modules => shared}/phone/screen.js | 4 +- .../storage/storage.encrypted.js | 0 .../storage/storage.local.js | 0 .../storage/storage.mock.js | 3 +- src/{modules => shared}/tools.js | 2 +- src/{modules => shared}/userinfo.js | 0 test/.gitkeep | 0 test/jest/.eslintrc.js | 10 - test/jest/.gitignore | 1 - test/jest/__tests__/App.spec.js | 45 - test/jest/__tests__/Form.spec.js | 35 - test/jest/__tests__/ProfileEditor.spec.js | 107 - test/jest/__tests__/Rrule.spec.js | 90 - test/jest/__tests__/demo/FormDemo.vue | 25 - test/jest/__tests__/demo/QBtn-demo.vue | 24 - test/jest/__tests__/scheduler.spec.js | 1037 - test/jest/__tests__/stats.spec.js | 203 - test/jest/jest.setup.js | 52 - test/jest/utils/index.js | 70 - test/jest/utils/stub.css | 9 - test/scripts/i18LanguageCheck.mjs | 79 - 317 files changed, 9727 insertions(+), 36830 deletions(-) delete mode 100755 .babelrc mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .eslintignore create mode 100644 .eslintrc.cjs delete mode 100755 .eslintrc.js delete mode 100755 .github/dependabot.yml mode change 100755 => 100644 .gitignore create mode 100644 .npmrc delete mode 100755 .nvmrc delete mode 100755 .stylintrc create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json delete mode 100755 CHANGELOG.md mode change 100755 => 100644 README.md create mode 100644 babel.config.cjs delete mode 100755 babel.config.js delete mode 100755 jest.config.js rename .postcssrc.js => postcss.config.cjs (90%) mode change 100755 => 100644 create mode 100755 project.config.js delete mode 100755 public/imgs/MobistudyIntroScreens_1.svg delete mode 100755 public/imgs/MobistudyIntroScreens_2.svg delete mode 100755 public/imgs/MobistudyIntroScreens_3.svg delete mode 100755 public/imgs/MobistudyIntroScreens_4.svg delete mode 100755 public/imgs/confetti.svg delete mode 100644 public/instructions/6mwt1.svg delete mode 100644 public/instructions/6mwt2.svg delete mode 100644 public/instructions/6mwt3.svg delete mode 100644 public/instructions/6mwt4.svg delete mode 100644 public/instructions/6mwt5.svg delete mode 100644 public/instructions/6mwt6.svg delete mode 100644 public/instructions/6mwt7.svg delete mode 100644 public/instructions/Drawing_task-01.svg delete mode 100644 public/instructions/Drawing_task-02.svg delete mode 100644 public/instructions/Drawing_task-03.svg delete mode 100644 public/instructions/HoldYourPhone_task-01.svg delete mode 100644 public/instructions/HoldYourPhone_task-02.svg delete mode 100644 public/instructions/HoldYourPhone_task-03.svg delete mode 100644 public/instructions/HoldYourPhone_task-04.svg delete mode 100644 public/instructions/HoldYourPhone_task-05.svg delete mode 100644 public/instructions/QCST-01.svg delete mode 100644 public/instructions/QCST-02.svg delete mode 100644 public/instructions/QCST-03.svg delete mode 100644 public/instructions/QCST-04.svg delete mode 100644 public/instructions/QCST-05.svg delete mode 100644 public/instructions/QCST-06.svg delete mode 100644 public/instructions/QCST-07.svg delete mode 100644 public/instructions/QCST-08.svg delete mode 100644 public/instructions/TUGtask-01.svg delete mode 100644 public/instructions/TUGtask-02.svg delete mode 100644 public/instructions/TUGtask-03.svg delete mode 100644 public/instructions/TUGtask-04.svg delete mode 100644 public/instructions/TUGtask-05.svg delete mode 100644 public/instructions/dataquery1.svg delete mode 100644 public/instructions/dataquery2.svg delete mode 100644 public/instructions/fingertapping1.svg delete mode 100644 public/instructions/fingertapping2.svg delete mode 100644 public/instructions/holdphone.svg delete mode 100755 public/instructions/miband3_1.svg delete mode 100755 public/instructions/miband3_2.svg delete mode 100755 public/instructions/miband3_tap.svg delete mode 100644 public/instructions/peakflow_1.svg delete mode 100644 public/instructions/peakflow_2.svg delete mode 100644 public/instructions/peakflow_3.svg delete mode 100644 public/instructions/peakflow_4.svg delete mode 100755 public/instructions/po60_1.jpg delete mode 100755 public/instructions/po60_2.jpg delete mode 100755 public/instructions/po60_3_android.jpg delete mode 100755 public/instructions/po60_3_ios.jpg delete mode 100644 public/instructions/position-01.svg delete mode 100644 public/instructions/position-02.svg delete mode 100644 public/instructions/vocalization_1.svg delete mode 100644 public/instructions/vocalization_2.svg delete mode 100644 public/instructions/vocalization_3.svg delete mode 100644 public/instructions/vocalization_4.svg delete mode 100755 public/logos/logo-1024.png delete mode 100755 public/logos/logo.svg delete mode 100755 public/logos/malmo_logo.png delete mode 100755 public/logos/mobistudy-white.svg delete mode 100644 public/sounds/dingbell.wav delete mode 100755 quasar.conf.js create mode 100644 quasar.config.js delete mode 100755 quasar.extensions.json delete mode 100755 quasar.testing.json delete mode 100755 src-cordova/config.xml delete mode 100755 src-cordova/cordova-flag.d.ts delete mode 100755 src-cordova/hooks/README.md delete mode 100644 src-cordova/package-lock.json delete mode 100644 src-cordova/package.json delete mode 100755 src-cordova/res/android/hdpi.png delete mode 100755 src-cordova/res/android/ldpi.png delete mode 100755 src-cordova/res/android/mdpi.png delete mode 100755 src-cordova/res/android/xhdpi.png delete mode 100755 src-cordova/res/android/xxhdpi.png delete mode 100755 src-cordova/res/android/xxxhdpi.png delete mode 100755 src-cordova/res/ios/icon-1024.png delete mode 100755 src-cordova/res/ios/icon-20.png delete mode 100755 src-cordova/res/ios/icon-20@2x.png delete mode 100755 src-cordova/res/ios/icon-20@3x.png delete mode 100755 src-cordova/res/ios/icon-24@2x.png delete mode 100755 src-cordova/res/ios/icon-27.5@2x.png delete mode 100755 src-cordova/res/ios/icon-29.png delete mode 100755 src-cordova/res/ios/icon-29@2x.png delete mode 100755 src-cordova/res/ios/icon-29@3x.png delete mode 100755 src-cordova/res/ios/icon-40.png delete mode 100755 src-cordova/res/ios/icon-40@2x.png delete mode 100755 src-cordova/res/ios/icon-44@2x.png delete mode 100755 src-cordova/res/ios/icon-50.png delete mode 100755 src-cordova/res/ios/icon-50@2x.png delete mode 100755 src-cordova/res/ios/icon-60@2x.png delete mode 100755 src-cordova/res/ios/icon-60@3x.png delete mode 100755 src-cordova/res/ios/icon-72.png delete mode 100755 src-cordova/res/ios/icon-72@2x.png delete mode 100755 src-cordova/res/ios/icon-76.png delete mode 100755 src-cordova/res/ios/icon-76@2x.png delete mode 100755 src-cordova/res/ios/icon-83.5@2x.png delete mode 100755 src-cordova/res/ios/icon-86@2x.png delete mode 100755 src-cordova/res/ios/icon-98@2x.png delete mode 100755 src-cordova/res/ios/icon.png delete mode 100755 src-cordova/res/ios/icon@2x.png delete mode 100644 src-cordova/res/screen/android/mobistudysplashandroid.png delete mode 100755 src-cordova/res/screen/ios/Default@2x~ipad~anyany.png delete mode 100755 src-cordova/res/screen/ios/Default@2x~ipad~comany.png delete mode 100755 src-cordova/res/screen/ios/Default@2x~iphone~anyany.png delete mode 100755 src-cordova/res/screen/ios/Default@2x~iphone~comany.png delete mode 100755 src-cordova/res/screen/ios/Default@2x~iphone~comcom.png delete mode 100755 src-cordova/res/screen/ios/Default@3x~iphone~anyany.png delete mode 100755 src-cordova/res/screen/ios/Default@3x~iphone~anycom.png delete mode 100755 src-cordova/res/screen/ios/Default@3x~iphone~comany.png delete mode 100755 src-pwa/pwa-flag.d.ts mode change 100755 => 100644 src/App.vue delete mode 100755 src/assets/goalflags.svg create mode 100644 src/assets/quasar-logo-vertical.svg delete mode 100755 src/assets/sad.svg delete mode 100755 src/assets/thank-you.svg mode change 100755 => 100644 src/boot/.gitkeep mode change 100755 => 100644 src/boot/axios.js mode change 100755 => 100644 src/boot/i18n.js delete mode 100755 src/boot/vuelidate.js delete mode 100755 src/components/.gitkeep delete mode 100755 src/components/BarChart.js delete mode 100755 src/components/Consents.vue create mode 100644 src/components/EssentialLink.vue delete mode 100755 src/components/Intro.vue delete mode 100755 src/components/LineChart.js delete mode 100755 src/components/PieChart.js delete mode 100755 src/components/ProfileEditor.vue delete mode 100755 src/components/StudyInfo.vue delete mode 100755 src/components/TaskListItem.vue delete mode 100755 src/components/WalkingMan.vue mode change 100755 => 100644 src/css/app.css delete mode 100755 src/css/quasar.variables.sass mode change 100755 => 100644 src/index.template.html delete mode 100755 src/layouts/ConsentLayout.vue delete mode 100755 src/layouts/HomeLayout.vue create mode 100644 src/layouts/MainLayout.vue delete mode 100755 src/layouts/RegLayout.vue delete mode 100755 src/layouts/TaskLayout.vue delete mode 100755 src/modules/API/mockdata/participant.js delete mode 100644 src/modules/API/mockdata/surgeryai/surgeryai.json delete mode 100755 src/modules/audio.js delete mode 100755 src/modules/bledevice/BLEDevice.js delete mode 100755 src/modules/bledevice/BLEDevice.mock.js delete mode 100755 src/modules/files/files.js delete mode 100755 src/modules/files/files.mock.js delete mode 100644 src/modules/files/logger.js delete mode 100755 src/modules/healthDataTypesEnum.js delete mode 100755 src/modules/healthstore.js delete mode 100755 src/modules/healthstore.mock.js delete mode 100755 src/modules/miband3/CustomDate.js delete mode 100755 src/modules/miband3/Miband3Driver.js delete mode 100755 src/modules/miband3/miband3.js delete mode 100755 src/modules/miband3/miband3.mock.js delete mode 100755 src/modules/miband3/miband3ActivityTypeEnum.js delete mode 100755 src/modules/notifications/notifications.js delete mode 100755 src/modules/notifications/notifications.mock.js delete mode 100755 src/modules/notifications/notifications.web.js delete mode 100755 src/modules/outdoorDistance.js delete mode 100755 src/modules/passwordChecker.js delete mode 100644 src/modules/peakflow/peakflow.js delete mode 100644 src/modules/peakflow/peakflow.mock.js delete mode 100755 src/modules/po60/CustomDate.js delete mode 100755 src/modules/po60/IPulseOxDevice.js delete mode 100755 src/modules/po60/IPulseOxDevice.mock.js delete mode 100755 src/modules/po60/PulseOxDevice.js delete mode 100755 src/modules/scheduler.js delete mode 100644 src/modules/stats.js delete mode 100644 src/modules/sweeper.js delete mode 100755 src/pages/Empty.vue delete mode 100755 src/pages/Error404.vue create mode 100644 src/pages/ErrorNotFound.vue create mode 100644 src/pages/IndexPage.vue delete mode 100755 src/pages/Intro.vue delete mode 100755 src/pages/about/About.vue delete mode 100755 src/pages/about/AboutPrivacyPolicy.vue delete mode 100755 src/pages/about/Acknowledgements.vue delete mode 100755 src/pages/about/Contact.vue delete mode 100755 src/pages/about/Introduction.vue delete mode 100755 src/pages/about/License.vue delete mode 100755 src/pages/accountmgmt/ChangePW.vue delete mode 100755 src/pages/accountmgmt/Login.vue delete mode 100755 src/pages/accountmgmt/Reg_PrivacyPolicy.vue delete mode 100755 src/pages/accountmgmt/Reg_Profile.vue delete mode 100755 src/pages/accountmgmt/Reg_SignUp.vue delete mode 100755 src/pages/accountmgmt/ResetPW.vue delete mode 100755 src/pages/consent/Accepted.vue delete mode 100755 src/pages/consent/ConsentItems.vue delete mode 100755 src/pages/consent/Invitation.vue delete mode 100755 src/pages/consent/PrivacyPolicy.vue delete mode 100755 src/pages/consent/StudyDetails.vue delete mode 100755 src/pages/home/Profile.vue delete mode 100755 src/pages/home/Studies.vue delete mode 100755 src/pages/home/StudyConfig.vue delete mode 100755 src/pages/home/Tasker.vue delete mode 100755 src/pages/home/Test.vue delete mode 100755 src/pages/tasks/dataQuery/DataQuery.vue delete mode 100755 src/pages/tasks/dataQuery/DataQueryIntro.vue delete mode 100644 src/pages/tasks/drawing/drawing.vue delete mode 100644 src/pages/tasks/drawing/drawingIntro.vue delete mode 100644 src/pages/tasks/drawing/drawingSummary.vue delete mode 100644 src/pages/tasks/fingerTapping/Tapping.vue delete mode 100644 src/pages/tasks/fingerTapping/TappingIntro.vue delete mode 100644 src/pages/tasks/fingerTapping/tappingSummary.vue delete mode 100755 src/pages/tasks/form/Form.vue delete mode 100755 src/pages/tasks/form/FormIntro.vue delete mode 100644 src/pages/tasks/holdPhone/holdPhone.vue delete mode 100644 src/pages/tasks/holdPhone/holdPhoneIntro.vue delete mode 100644 src/pages/tasks/holdPhone/holdPhoneSummary.vue delete mode 100755 src/pages/tasks/miband3/MiBand3Connect.vue delete mode 100755 src/pages/tasks/miband3/MiBand3Intro.vue delete mode 100755 src/pages/tasks/miband3/Miband3DataDownload.vue delete mode 100755 src/pages/tasks/miband3/notEnoughDataPage.vue delete mode 100644 src/pages/tasks/peakflow/PeakFlow.vue delete mode 100644 src/pages/tasks/peakflow/PeakFlowCalibrate.vue delete mode 100644 src/pages/tasks/peakflow/PeakFlowIntro.vue delete mode 100644 src/pages/tasks/peakflow/PeakFlowReview.vue delete mode 100644 src/pages/tasks/peakflow/PeakFlowSummary.vue delete mode 100755 src/pages/tasks/po60/PO60Connect.vue delete mode 100755 src/pages/tasks/po60/PO60Download.vue delete mode 100755 src/pages/tasks/po60/PO60Intro.vue delete mode 100644 src/pages/tasks/position/Position.vue delete mode 100644 src/pages/tasks/position/PositionIntro.vue delete mode 100755 src/pages/tasks/qcst/QCST.vue delete mode 100755 src/pages/tasks/qcst/QCSTHR.vue delete mode 100755 src/pages/tasks/qcst/QCSTIntro.vue delete mode 100755 src/pages/tasks/qcst/QCSTSummary.vue delete mode 100755 src/pages/tasks/smwt/SMWT.vue delete mode 100755 src/pages/tasks/smwt/SMWTIntro.vue delete mode 100755 src/pages/tasks/smwt/SMWTSummary.vue delete mode 100644 src/pages/tasks/tugt/TUGT.vue delete mode 100644 src/pages/tasks/tugt/TUGTIntro.vue delete mode 100644 src/pages/tasks/tugt/TUGTSummary.vue delete mode 100644 src/pages/tasks/vocalization/vocalization.vue delete mode 100644 src/pages/tasks/vocalization/vocalizationIntro.vue delete mode 100644 src/pages/tasks/vocalization/vocalizationSummary.vue mode change 100755 => 100644 src/router/index.js mode change 100755 => 100644 src/router/routes.js rename src/{modules => shared}/API/API.js (84%) rename src/{modules => shared}/API/API.mock.js (95%) rename src/{modules => shared}/API/mockdata/environment.js (100%) rename src/{modules => shared}/API/mockdata/formTest.js (98%) rename src/{modules => shared}/API/mockdata/parkapp/questBDI2.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questDailySleep.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questNMS.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questPDQ8.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questPDSS2.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questTAM.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/questUMARS.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/studyParkapp.json (100%) rename src/{modules => shared}/API/mockdata/parkapp/studyParkapp2.json (100%) create mode 100755 src/shared/API/mockdata/participant.js rename src/{modules => shared}/API/mockdata/studyTest.js (97%) rename src/{modules => shared}/db.js (87%) rename src/{modules => shared}/phone/audiorecorder.js (96%) rename src/{modules => shared}/phone/geolocation.js (93%) rename src/{modules => shared}/phone/motion.js (93%) rename src/{modules => shared}/phone/orientation.js (92%) rename src/{modules => shared}/phone/pedometer.js (98%) rename src/{modules => shared}/phone/phone.js (93%) rename src/{modules => shared}/phone/phone.mock.js (100%) rename src/{modules => shared}/phone/screen.js (93%) rename src/{modules => shared}/storage/storage.encrypted.js (100%) rename src/{modules => shared}/storage/storage.local.js (100%) rename src/{modules => shared}/storage/storage.mock.js (97%) rename src/{modules => shared}/tools.js (93%) rename src/{modules => shared}/userinfo.js (100%) delete mode 100755 test/.gitkeep delete mode 100755 test/jest/.eslintrc.js delete mode 100755 test/jest/.gitignore delete mode 100755 test/jest/__tests__/App.spec.js delete mode 100755 test/jest/__tests__/Form.spec.js delete mode 100755 test/jest/__tests__/ProfileEditor.spec.js delete mode 100755 test/jest/__tests__/Rrule.spec.js delete mode 100755 test/jest/__tests__/demo/FormDemo.vue delete mode 100755 test/jest/__tests__/demo/QBtn-demo.vue delete mode 100755 test/jest/__tests__/scheduler.spec.js delete mode 100644 test/jest/__tests__/stats.spec.js delete mode 100755 test/jest/jest.setup.js delete mode 100755 test/jest/utils/index.js delete mode 100755 test/jest/utils/stub.css delete mode 100755 test/scripts/i18LanguageCheck.mjs diff --git a/.babelrc b/.babelrc deleted file mode 100755 index 18c19dbc..00000000 --- a/.babelrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "plugins": ["@babel/plugin-syntax-dynamic-import"], - "env": { - "test": { - "plugins": ["dynamic-import-node"], - "presets": [ - [ - "@babel/preset-env", - { - "modules": "commonjs", - "targets": { - "node": "current" - } - } - ] - ] - } - } -} diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.eslintignore b/.eslintignore old mode 100755 new mode 100644 index b215bb7f..13790790 --- a/.eslintignore +++ b/.eslintignore @@ -4,3 +4,6 @@ /src-cordova /.quasar /node_modules +.eslintrc.cjs +babel.config.cjs +/quasar.config.*.temporary.compiled* diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..ff1a407d --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,78 @@ +module.exports = { + // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy + // This option interrupts the configuration hierarchy at this file + // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos) + root: true, + + parserOptions: { + parser: '@babel/eslint-parser', + ecmaVersion: 2021, // Allows for the parsing of modern ECMAScript features + sourceType: 'module' // Allows for the use of imports + }, + + env: { + browser: true + }, + + // Rules order is important, please avoid shuffling them + extends: [ + // Base ESLint recommended rules + // 'eslint:recommended', + + // Uncomment any of the lines below to choose desired strictness, + // but leave only one uncommented! + // See https://eslint.vuejs.org/rules/#available-rules + 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention) + // 'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability) + // 'plugin:vue/vue3-recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead) + + 'standard' + + ], + + plugins: [ + // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-files + // required to lint *.vue files + 'vue', + + ], + + globals: { + ga: 'readonly', // Google Analytics + cordova: 'readonly', + __statics: 'readonly', + __QUASAR_SSR__: 'readonly', + __QUASAR_SSR_SERVER__: 'readonly', + __QUASAR_SSR_CLIENT__: 'readonly', + __QUASAR_SSR_PWA__: 'readonly', + process: 'readonly', + Capacitor: 'readonly', + chrome: 'readonly' + }, + + // add your custom rules here + rules: { + + // allow async-await + 'generator-star-spacing': 'off', + // allow paren-less arrow functions + 'arrow-parens': 'off', + 'one-var': 'off', + 'no-void': 'off', + 'multiline-ternary': 'off', + + 'import/first': 'off', + 'import/named': 'error', + 'import/namespace': 'error', + 'import/default': 'error', + 'import/export': 'error', + 'import/extensions': 'off', + 'import/no-unresolved': 'off', + 'import/no-extraneous-dependencies': 'off', + + 'prefer-promise-reject-errors': 'off', + + // allow debugger during development only + 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' + } +} diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100755 index b0d85a4f..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,56 +0,0 @@ -module.exports = { - root: true, - - parserOptions: { - parser: 'babel-eslint', - sourceType: 'module' - }, - - env: { - browser: true - }, - - extends: [ - // https://eslint.vuejs.org/rules/#priority-a-essential-error-prevention - // consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules. - 'plugin:vue/essential', - '@vue/standard' - ], - - // required to lint *.vue files - plugins: [ - 'vue' - ], - - globals: { - 'ga': true, // Google Analytics - 'cordova': true, - '__statics': true, - 'process': true, - 'Capacitor': true, - 'chrome': true - }, - - // add your custom rules here - rules: { - // allow async-await - 'generator-star-spacing': 'off', - // allow paren-less arrow functions - 'arrow-parens': 'off', - 'one-var': 'off', - - 'import/first': 'off', - 'import/named': 'error', - 'import/namespace': 'error', - 'import/default': 'error', - 'import/export': 'error', - 'import/extensions': 'off', - 'import/no-unresolved': 'off', - 'import/no-extraneous-dependencies': 'off', - 'prefer-promise-reject-errors': 'off', - // allow console.log during development only - // 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', - // allow debugger during development only - 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' - } -} diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100755 index 5c8db61f..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,14 +0,0 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - -version: 2 -updates: - - package-ecosystem: "javascript" - directory: "/" - schedule: - interval: "daily" - - package_manager: "docker" - directory: "/" - update_schedule: "weekly" diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 index 290d6831..147199f9 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,11 @@ .DS_Store .thumbs.db node_modules -project.config.js # Quasar core related directories .quasar /dist +/quasar.config.*.temporary.compiled* # Cordova related directories and files /src-cordova/node_modules @@ -28,8 +28,10 @@ yarn-error.log* # Editor directories and files .idea -.vscode *.suo *.ntvs* *.njsproj *.sln + +# local .env files +.env.local* diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000..eb190828 --- /dev/null +++ b/.npmrc @@ -0,0 +1,5 @@ +# pnpm-related options +shamefully-hoist=true +strict-peer-dependencies=false +# to get the latest compatible packages when creating the project https://github.com/pnpm/pnpm/issues/6463 +resolution-mode=highest diff --git a/.nvmrc b/.nvmrc deleted file mode 100755 index 898c8715..00000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -14.17 diff --git a/.stylintrc b/.stylintrc deleted file mode 100755 index ce38d777..00000000 --- a/.stylintrc +++ /dev/null @@ -1,35 +0,0 @@ -{ - "blocks": "never", - "brackets": "never", - "colons": "never", - "colors": "always", - "commaSpace": "always", - "commentSpace": "always", - "cssLiteral": "never", - "depthLimit": false, - "duplicates": true, - "efficient": "always", - "extendPref": false, - "globalDupe": true, - "indentPref": 2, - "leadingZero": "never", - "maxErrors": false, - "maxWarnings": false, - "mixed": false, - "namingConvention": false, - "namingConventionStrict": false, - "none": "never", - "noImportant": false, - "parenSpace": "never", - "placeholder": false, - "prefixVarsWithDollar": "always", - "quotePref": "single", - "semicolons": "never", - "sortOrder": false, - "stackedProperties": "never", - "trailingWhitespace": "never", - "universal": "never", - "valid": true, - "zeroUnits": "never", - "zIndexNormalize": false -} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..518f8c8c --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,14 @@ +{ + "recommendations": [ + "dbaeumer.vscode-eslint", + "editorconfig.editorconfig", + "vue.volar", + "wayou.vscode-todo-highlight" + ], + "unwantedRecommendations": [ + "octref.vetur", + "hookyqr.beautify", + "dbaeumer.jshint", + "ms-vscode.vscode-typescript-tslint-plugin" + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..689284cf --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "editor.bracketPairColorization.enabled": true, + "editor.guides.bracketPairs": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "editor.codeActionsOnSave": [ + "source.fixAll.eslint" + ], + "eslint.validate": [ + "javascript", + "javascriptreact", + "typescript", + "vue" + ], + "[vue]": { + "editor.defaultFormatter": "Vue.volar" + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100755 index b68db30b..00000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,50 +0,0 @@ -0.2.1 - -- demo version for usability tests, does not send any data to server - -0.2.2 - -- updated privacy policy with contact of the University data protection officer - -0.2.8 - -- added Peak Flow Meter, Position and environment and Finger Tapping tests -- added the option to discard measurements -- fixed bugs and translations - -0.2.9 - -- fixed issues related to the Peak Flow Meter, especially when the Bluetooth adapter is used -- reduced the number of retries when peak flow cannot be measured -- updated privacy policy - -0.2.10 - -- added Hold-the-phone tremor test -- added support for tasks scheduled depending on other tasks -- improved text and translations -- updated dependencies and bugfixes - - -0.3.0 - -- added task for Timed-up-and-go test, Vocalization test and drawing test -- updated privacy policy with information about new tasks -- improved text and translations -- improved style for larger screens -- updated dependencies and bugfixes - - -0.3.1 - -- bugfixes and updated dependencies -- added touch area properties in drawing exercise - -0.3.2 - -- added the possibilty to take pictures in the questionnaire -- increased size of icons and buttons -- updated dependencies -- bugfixes - -0.3.3 diff --git a/README.md b/README.md old mode 100755 new mode 100644 index ddcdb9a1..4e139d3e --- a/README.md +++ b/README.md @@ -1,236 +1,33 @@ -# Mobistudy App +# Mobistudy App (mobistudyapp) -The participants' app of Mobistudy. -The app is developed as an Apache Cordova app using the [quasar framework](https://quasar-framework.org/) as UI frontend. - -## Prerequisites - -You need to install the following on your system: - -- python (because nodejs requires python) -- nodejs -- Apache Cordova -- (optional) the [quasar command line tool](https://quasar.dev/quasar-cli/installation) -- XCode -- Android SDK and build tools - -Install all other dependencies with: +App for participants +## Install the dependencies ```bash +yarn +# or npm install ``` -Before running the app on a phone, create an empty 'www' directory under the src-cordova directory: - -```bash -cd src-cordova -mkdir www -npm install -``` - -Create a file named `project.config.js`, use `project.config.template.js` for an example and guidance. - - -### Setup for Android - -You need to have Java, gradle, a recent version of Android SDK and the build tools installed on your computer. -The easiest thing to do is to install Android Studio and use the SDK manager to download the SDK and build tools. - -The actual versions to download should match the ones specified inside src-cordova/platforms/android/build.gradle (look for defaultBuildToolsVersion and defaultTargetSdkVersion). - -If that file hasn't been created yet, run: - -```bash -cd src-cordova -cordova prepare android -``` - - -### Setup for iOS - -Prepare the Xcode project: - -```bash -cd src-cordova -cordova prepare ios -``` - -(if you get an error like "Conflict found, edit-config changes from config.xml -will overwrite plugin.xml changes", repeat `cordova prepare ios`) - -This will create a folder under src-cordova/platforms/ios -Open that folder with Xcode. It will contain an iOS project. -Add the HealthKit capability. - -You need to make sure there is a valid signing profile for the app, at least for -development. Try compiling the project and see if it works. - - -Open the Mobistudy App-info.plist file located under Resources. Open it as source -file. Then check that the following flags are set: - -For US export compliance: -```xml -ITSAppUsesNonExemptEncryption - -``` - -For accessing HealthKit: -```xml -NSHealthShareUsageDescription -The app needs to read health-related data from your phone -NSHealthUpdateUsageDescription -The app needs to store health-related data from your phone -``` - -In order to be able to retrieve files that are stored in the app through iTunes, -make sure the following also is present (needed for testing only): -```xml -UIFileSharingEnabled - -``` - -For the pedometer to work properly: -```xml -NSMotionUsageDescription -The app needs to detect steps -``` - -For the GPS: -```xml -NSLocationWhenInUseUsageDescription -The app needs your position to estimate activity or the environment -NSLocationAlwaysUsageDescription -The app needs your position to estimate activity or the environment -NSLocationAlwaysAndWhenInUseUsageDescription -The app needs your position to estimate activity or the environment -``` - - -### Peak Flow Meter plugin - -The peak flow meter requires a plugin that can only be installed manually. -See https://github.com/kevinchtsang/cordova-plugin-spf for instructions. - - -## Develop - -The code is consistent with how projects are structured in Quasar. -If you use VS Code, follow the -[recommended settings from Quasar](https://quasar.dev/start/vs-code-configuration#Introduction). - -For development, you may want to mock some modules, see project.conf.js to -activate mocked modules. - -## Test - -### Test in the broswer - -Before you run `quasar dev` create the project.config.js file using the available template -To start the app in development mode (hot-code reloading, error reporting, etc.), run: - +### Start the app in development mode (hot-code reloading, error reporting, etc.) ```bash quasar dev ``` -or from npm (it's the same): -```bash -npm run dev -``` - -### Test in the phone - -If you want to run it on a phone (supposing it's an iPhone): - -```bash -quasar dev -m ios -``` - -Use `android` instead of `ios` for android. - -Additional setup may be required if you use cordova plugins instead of mocks. Check the deploy section for details. - -### Automatic tests - -The repository contains some unit tests, to run them: - -```bash -npm run test -``` - -If you want to have quasar and the tests running in parallel and watching for code changes: - -```bash -npm run dev:test -``` - -## Deploy - -Setup `project.config.js` to use cordova plugins and the official API endpoint. - -### iOS - -Generate the compiled code. - -```bash -quasar build -m ios --ide -``` - -Open Xcode to compile the project and sign the app with a provisioning profile prepared for distribution on the App Store. - -### Android - -Generate the compiled code. - -```bash -quasar build -m android -``` - -To sign the APK for the Play store: create a keystore (only once! not for every release). +### Lint the files ```bash -keytool -genkey -v -keystore mobistudy-release.keystore -alias upload -keyalg RSA -keysize 2048 -validity 10000 +yarn lint +# or +npm run lint ``` -Write down the password you set for the keystore and the certificate. Let's say it's "pwdpwd" -Then, inside src-cordova do: +### Build the app for production ```bash -cordova prepare android -cordova build android --release -- --keystore=mobistudy-release.keystore --alias=upload --storePassword=pwdpwd --password=pwdpwd +quasar build ``` -the APK will be available in `src-cordova/platforms/android/app/build/outputs/apk/release/app-release.apk` - -## Credits - -Original idea: [Dario Salvi](https://github.com/dariosalvi78) and [Carmelo Velardo](https://github.com/2dvisio). - -Coordination: [Dario Salvi](https://github.com/dariosalvi78) and [Carl Magnus Olsson](https://github.com/Trasselkalle). - -Development: - -- [Dario Salvi](https://github.com/dariosalvi78) -- [Arvind Goburdhun](https://github.com/arvgo) -- [Jameson Lee](https://github.com/jamtholee) -- [Lennart Czienskowski](https://github.com/lencz) -- [Elin Forsnor](https://github.com/elinforsnor) -- [Felix Morau](https://github.com/femosc2) -- [Milo Bengtsson](https://github.com/palladog) -- [Jacky Tu](https://github.com/jackytu99) -- [Elliott Hellstrand](https://github.com/Elliott0121) -- [Andreas Holm](https://github.com/HeyOooh) -- [Moustafa Allouhaibi](https://github.com/af9593) -- [John HÃ¥kansson](https://github.com/JohnHakansson) -- [Daniel Abella](https://github.com/assimilate) -- [Kevin Tsang](https://github.com/kevinchtsang) -- [Gent Ymeri](https://github.com/gentymeri) -- [Shreyas Rana](https://ranashreyas.github.io/) - -Graphic design and illustations: -- [Matilda Thorwaldsson](https://www.behance.net/matildathorwaldsson) - -## License - -See [license file](LICENSE) +### Customize the configuration +See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js). diff --git a/babel.config.cjs b/babel.config.cjs new file mode 100644 index 00000000..063ef53a --- /dev/null +++ b/babel.config.cjs @@ -0,0 +1,14 @@ +/* eslint-disable */ + +module.exports = api => { + return { + presets: [ + [ + '@quasar/babel-preset-app', + api.caller(caller => caller && caller.target === 'node') + ? { targets: { node: 'current' } } + : {} + ] + ] + } +} diff --git a/babel.config.js b/babel.config.js deleted file mode 100755 index da4471e6..00000000 --- a/babel.config.js +++ /dev/null @@ -1,20 +0,0 @@ -/* eslint-env node */ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const fs = require('fs-extra') -let extend = undefined - -/** - * The .babelrc file has been created to assist Jest for transpiling. - * You should keep your application's babel rules in this file. - */ - -if (fs.existsSync('./.babelrc')) { - extend = './.babelrc' -} - -module.exports = { - presets: [ - '@quasar/babel-preset-app' - ], - extends: extend -} diff --git a/jest.config.js b/jest.config.js deleted file mode 100755 index b16534f7..00000000 --- a/jest.config.js +++ /dev/null @@ -1,57 +0,0 @@ -const esModules = ['quasar/lang', 'lodash-es'].join('|') - -module.exports = { - globals: { - __DEV__: true - }, - setupFilesAfterEnv: ['/test/jest/jest.setup.js'], - // noStackTrace: true, - // bail: true, - // cache: false, - // verbose: true, - // watch: true, - collectCoverage: false, - coverageDirectory: '/test/jest/coverage', - collectCoverageFrom: [ - '/src/**/*.vue', - '/src/**/*.js', - '/src/**/*.jsx' - ], - // Needed in JS codebases too because of feature flags - coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$'], - coverageThreshold: { - global: { - // branches: 50, - // functions: 50, - // lines: 50, - // statements: 50 - } - }, - testMatch: [ - '/test/jest/__tests__/**/*.(spec|test).js', - '/src/**/*.jest.(spec|test).js' - ], - moduleFileExtensions: ['vue', 'js', 'mjs', 'jsx', 'json'], - moduleNameMapper: { - '^vue$': '/node_modules/vue/dist/vue.common.js', - '^test-utils$': - '/node_modules/@vue/test-utils/dist/vue-test-utils.js', - '^quasar$': '/node_modules/quasar/dist/quasar.common.js', - '^~/(.*)$': '/$1', - '^src/(.*)$': '/src/$1', - '^modules/(.*)$': '/src/modules/$1', - '^i18n/(.*)$': '/src/i18n/$1', - '.*css$': '@quasar/quasar-app-extension-testing-unit-jest/stub.css' - }, - transform: { - '.*\\.vue$': 'vue-jest', - '.*\\.js$': 'babel-jest', - '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': - 'jest-transform-stub' - // use these if NPM is being flaky - // '.*\\.vue$': '/node_modules/@quasar/quasar-app-extension-testing-unit-jest/node_modules/vue-jest', - // '.*\\.js$': '/node_modules/@quasar/quasar-app-extension-testing-unit-jest/node_modules/babel-jest' - }, - transformIgnorePatterns: [`/node_modules/(?!(${esModules}))`], - snapshotSerializers: ['/node_modules/jest-serializer-vue'] -} diff --git a/jsconfig.json b/jsconfig.json index f183e913..456944a5 100644 --- a/jsconfig.json +++ b/jsconfig.json @@ -1,5 +1,39 @@ { - "include": [ - "./src/**/*" + "compilerOptions": { + "baseUrl": ".", + "paths": { + "src/*": [ + "src/*" + ], + "app/*": [ + "*" + ], + "components/*": [ + "src/components/*" + ], + "layouts/*": [ + "src/layouts/*" + ], + "pages/*": [ + "src/pages/*" + ], + "assets/*": [ + "src/assets/*" + ], + "boot/*": [ + "src/boot/*" + ], + "stores/*": [ + "src/stores/*" + ], + "vue$": [ + "node_modules/vue/dist/vue.runtime.esm-bundler.js" + ] + } + }, + "exclude": [ + "dist", + ".quasar", + "node_modules" ] -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 33a67e2f..f3947380 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,2912 +1,1708 @@ { "name": "mobistudyapp", "version": "0.3.2", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } + "packages": { + "": { + "name": "mobistudyapp", + "version": "0.3.2", + "dependencies": { + "@quasar/extras": "^1.16.4", + "axios": "^1.2.1", + "core-js": "^3.31.1", + "quasar": "^2.16.0", + "vue": "^3.4.18", + "vue-i18n": "^9.0.0", + "vue-router": "^4.0.12" + }, + "devDependencies": { + "@babel/eslint-parser": "^7.13.14", + "@quasar/app-webpack": "^3.13.0", + "eslint": "^8.57.0", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.19.1", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0", + "eslint-plugin-vue": "^9.0.0", + "eslint-webpack-plugin": "^3.1.1" + }, + "engines": { + "node": "^20 || ^18 || ^16", + "npm": ">= 6.13.4", + "yarn": ">= 1.21.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" } }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", - "dev": true - }, - "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", - "convert-source-map": "^1.7.0", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.7.tgz", + "integrity": "sha512-SO5E3bVxDuxyNxM5agFv480YA2HO6ohZbGxbazZdIk3KQOPOGVNw6q78I9/lbviIf95eq6tPozeYnJLbjnC8IA==", + "dev": true, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" } }, - "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, - "requires": { - "@babel/types": "^7.19.0", - "@jridgewell/gen-mapping": "^0.3.2", + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" - }, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", - "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, - "requires": { - "@babel/types": "^7.22.15" - }, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, - "requires": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-create-class-features-plugin": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.1.tgz", - "integrity": "sha512-1yJa9dX9g//V6fDebXoEfEsxkZHk3Hcbm+zLhyu6qVgYFLvmTALTeV+jNU9e5RnYtioBrGEOdoI2joMSNQ/+aA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "semver": "^6.3.1" }, - "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", "regexpu-core": "^5.3.1", "semver": "^6.3.1" }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-define-polyfill-provider": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.1.tgz", - "integrity": "sha512-o7SDgTJuvx5vLKD6SFvkydkSMBvahDKGiNJzG22IZYXhiqoe9efY7zocICBgzHV4IRg5wdgl2nEL/tulKIEIbA==", + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-compilation-targets": "^7.22.6", "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2" }, - "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, "dependencies": { - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" - }, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", - "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, - "requires": { - "@babel/types": "^7.23.0" - }, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", - "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.12.13.tgz", - "integrity": "sha512-C+10MXCXJLiR6IeG9+Wiejt9jmtFpxUc3MQqCmPY8hfCjyUGl9kT+B2okzEZrtykiwrc4dbCPdDoz0A/HQbDaA==", - "dev": true + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", - "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-wrap-function": "^7.22.20" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - } + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-replace-supers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.1.tgz", - "integrity": "sha512-QCR1UqC9BzG5vZl8BMicmZ28RuUBnHhAMddD8yHFHDRH9lLTZ9uUPehX8ctVPT8l0TKblJidqcgUUKGVrePleQ==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-member-expression-to-functions": "^7.23.0", - "@babel/helper-optimise-call-expression": "^7.22.5" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - } + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", - "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, - "requires": { - "@babel/types": "^7.22.5" - }, "dependencies": { - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@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==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, - "requires": { - "@babel/types": "^7.18.6" + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@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==", - "dev": true - }, - "@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==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", - "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.22.5", - "@babel/template": "^7.22.15", - "@babel/types": "^7.22.19" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" } }, - "@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==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.24.1", - "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.24.1.tgz", - "integrity": "sha512-y4HqEnkelJIOQGd+3g1bTeKsA5c6qM7eOn7VggGVbBc0y8MLSKHacwcIE2PplNlQSj0PqS9rrXL/nkPVK+kUNg==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.1.tgz", - "integrity": "sha512-Hj791Ii4ci8HqnaKHAlLNs+zaLXb0EzSDhiAWp5VNlyvCNymYfacs64pxTxbH1znW/NcArSmwpmG9IKE/TUVVQ==", + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.24.1" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.1.tgz", - "integrity": "sha512-m9m/fXsXLiHfwdgydIFnpk+7jlVbnvlK5B2EKiPdLUb6WX654ZaaEWJUjk8TftRbZpK0XibovlLWX4KIZhV6jw==", + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@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==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.0.0" } }, - "@babel/plugin-proposal-decorators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.1.tgz", - "integrity": "sha512-zPEvzFijn+hRvJuX2Vu3KbEBN39LN3f7tW3MQO2LsIs57B26KU+kUc82BdAktS1VCM6libzh45eKGI65lg0cpA==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-decorators": "^7.24.1" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@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==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "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.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-proposal-function-sent": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.24.1.tgz", - "integrity": "sha512-GxHpB7jATDZWYEuYkR5jv5aiHbwkmbvk3fJP5G2Dvl7va+kewfbYxpnU1BadIHd3kXlLPQj4CKbLKoWxX4nTtA==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-wrap-function": "^7.22.20", - "@babel/plugin-syntax-function-sent": "^7.24.1" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "@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==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@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==", + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-function-sent": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-function-sent/-/plugin-proposal-function-sent-7.24.7.tgz", + "integrity": "sha512-42Pq9d8fV5CrjygcVAA7aAEFpkAJluWWvlO7bvOMDEutxIS44COcFU61V92VBzUZvOkjIoQrPJNUtmY/d9XMgA==", + "dev": true, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7", + "@babel/plugin-syntax-function-sent": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-private-property-in-object": { + "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true - }, - "@babel/plugin-proposal-throw-expressions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.24.1.tgz", - "integrity": "sha512-wiae/VkKNX1WuM+wXIeAZY1cvbVKJJIf92eA23s2ufpp4w+vOlp+/4T3yfxN6nzN+hIwT15AsdwujAelIqNW+w==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/plugin-syntax-throw-expressions": "^7.24.1" + "engines": { + "node": ">=6.9.0" }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-throw-expressions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-throw-expressions/-/plugin-proposal-throw-expressions-7.24.7.tgz", + "integrity": "sha512-Rh4WoHyWKgsxvdkEMqDEZtKuGnZw+JwicMCvcZaIjYaQ3fK+a8JZYLhgcac9dKcL47Xqf+SG3MopTx+8BACdrQ==", + "dev": true, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-throw-expressions": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-properties": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-class-static-block": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-decorators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.1.tgz", - "integrity": "sha512-05RJdO/cCrtVWuAaSn1tS3bH8jbsJa/Y1uD186u6J4C/1mnHFxseeuWpsqr9anvo7TUulev7tm7GDwRV+VuhDw==", + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-export-namespace-from": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-function-sent": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.24.1.tgz", - "integrity": "sha512-aVwkxqagsGCI8vtuyMI+LnZ2SWtGP4+v9T/T88j2MwKRsGYzc9FAaEzsNMu1Htu6SsHPcfwQ7uZ7pYPGrVmG+g==", + "node_modules/@babel/plugin-syntax-function-sent": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-function-sent/-/plugin-syntax-function-sent-7.24.7.tgz", + "integrity": "sha512-me5EHEx4GXxAE8mnlZaWA+ARIyMSPOXcw6WlqWGIfTg36oeWm4FxR/Djs1DGPbmSIwJqMboiN7gK8eCyzyNK2A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.1.tgz", - "integrity": "sha512-IuwnI5XnuF189t91XbxmXeCDz3qs6iDRO7GJ++wcfgeXNs/8FmIlKcpDSXNVyuLQxlwvskmI3Ct73wUODkJBlQ==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-attributes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.1.tgz", - "integrity": "sha512-zhQTMH0X2nVLnb04tz+s7AMuasX8U0FnpE+nHTOhSOINjWMnopoZTxtIKsd45n4GQ/HIZLyfIpoul8e2m0DnRA==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-import-meta": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-logical-assignment-operators": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-private-property-in-object": { + "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==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-throw-expressions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.24.1.tgz", - "integrity": "sha512-o4dN/9/hUAC6RuX1QZDlauBG2nmSmUMk0K7/IOIFxjM8V16FS1JTHHiBWqGkkIjK4myeHucJbBHurqjtWFAdsw==", + "node_modules/@babel/plugin-syntax-throw-expressions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-throw-expressions/-/plugin-syntax-throw-expressions-7.24.7.tgz", + "integrity": "sha512-b1bdlAmUTy9VQ/g2cnBuJFwd7jeARNW2F65c9Gcn8qyNYGuVy/cYyqpiSL6SVmUAJTDbIYL2FzlZ8nH1qUCBXA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", - "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "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==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-unicode-sets-regex": { + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.18.6", "@babel/helper-plugin-utils": "^7.18.6" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.1.tgz", - "integrity": "sha512-ngT/3NkRhsaep9ck9uj2Xhv9+xB1zShY3tM3g6om4xxCELwCDN4g4Aq5dRn48+0hasAql7s2hdBOysCfNpr4fw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-generator-functions": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.3.tgz", - "integrity": "sha512-Qe26CMYVjpQxJ8zxM1340JFNjZaF+ISWpr1Kt/jGo+ZTUzKkfw/pphEWbRCb+lmSM6k/TOgfYLvmbHkUQ0asIg==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", "@babel/plugin-syntax-async-generators": "^7.8.4" }, - "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.1.tgz", - "integrity": "sha512-AawPptitRXp1y0n4ilKcGbRYWfbbzFWz2NqNu7dacYDtFtz0CMjG64b3LQsb3KIgnf4/obcUL78hfaOS7iCUfw==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-remap-async-to-generator": "^7.22.20" - }, "dependencies": { - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.1.tgz", - "integrity": "sha512-TWWC18OShZutrv9C6mye1xwtam+uNi2bnTOCBUd5sZxyHOiWbU6ztSROofIMrK84uweEZC219POICK/sTYwfgg==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.1.tgz", - "integrity": "sha512-h71T2QQvDgM2SmT29UYU6ozjMlAt7s7CSs5Hvy8f8cf/GM/Z4a2zMfN+fjVGaieeCrXR3EdQl6C4gQG+OgmbKw==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-class-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.1.tgz", - "integrity": "sha512-OMLCXi0NqvJfORTaPQBwqLXHhb93wkBKZ4aNwMl6WtehO7ar+cmp+89iPEQPqxAnxsOKTaMcs3POz3rKayJ72g==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-class-static-block": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.1.tgz", - "integrity": "sha512-FUHlKCn6J3ERiu8Dv+4eoz7w8+kFLSyeVG4vDAikwADGjUCoHw/JHokyGtr8OR4UjpwPVivyF+h8Q5iv/JmrtA==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "@babel/plugin-transform-classes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.1.tgz", - "integrity": "sha512-ZTIe3W7UejJd3/3R4p7ScyyOoafetUShSf4kCqV0O7F/RiHxVj/wRaRnQlrGwflvcehNA8M42HkAiEDYZu2F1Q==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1", - "@babel/helper-split-export-declaration": "^7.22.6", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", "globals": "^11.1.0" }, - "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.1.tgz", - "integrity": "sha512-5pJGVIUfJpOS+pAqBQd+QMaTD2vCL/HcePooON6pDpHgRp4gNRmzyHTPIkXntwKsq3ayUFVfJaIKPw2pOkOcTw==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/template": "^7.24.0" - }, "dependencies": { - "@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", - "dev": true, - "requires": { - "@babel/highlight": "^7.24.2", - "picocolors": "^1.0.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - } - }, - "@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", - "dev": true - }, - "@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - } - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.1.tgz", - "integrity": "sha512-ow8jciWqNxR3RYbSNVuF4U2Jx130nwnBnhRw6N6h1bOejNkABmcI5X5oz29K4alWX7vf1C+o6gtKXikzRKkVdw==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.1.tgz", - "integrity": "sha512-p7uUxgSoZwZ2lPNMzUkqCts3xlp8n+o05ikjy7gbtFJSt9gdU88jAmtfmOxHM14noQXBxfgzf2yRWECiNVhTCw==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.1.tgz", - "integrity": "sha512-msyzuUnvsjsaSaocV6L7ErfNsa5nDWL1XKNnDePLgmz+WdU4w/J8+AxBMrWfi9m4IxfL5sZQKUPQKDQeeAT6lA==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dynamic-import": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.1.tgz", - "integrity": "sha512-av2gdSTyXcJVdI+8aFZsCAtR29xJt0S5tas+Ef8NvBNmD1a+N/3ecMLeMBgfcK+xzsjdLDT6oHt+DFPyeqUbDA==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.1.tgz", - "integrity": "sha512-U1yX13dVBSwS23DEAqU+Z/PkwE9/m7QQy8Y9/+Tdb8UWYaGNDYwTLi19wqIAiROr8sXVum9A/rtiH5H0boUcTw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-export-namespace-from": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.1.tgz", - "integrity": "sha512-Ft38m/KFOyzKw2UaJFkWG9QnHPG/Q/2SkOrRk4pNBPg5IPZ+dOxcmkK5IyuBcxiNPyyYowPGUReyBvrvZs7IlQ==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.1.tgz", - "integrity": "sha512-OxBdcnF04bpdQdR3i4giHZNZQn7cm8RQKcSwA17wAAqEELo1ZOwp5FFgeptWUQXFyT9kwHo10aqqauYkRZPCAg==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.1.tgz", - "integrity": "sha512-BXmDZpPlh7jwicKArQASrj8n22/w6iymRnvHYYd2zO30DbE277JO20/7yXJT3QxDPtiQiOxQBbZH4TpivNXIxA==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-json-strings": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.1.tgz", - "integrity": "sha512-U7RMFmRvoasscrIFy5xA4gIp8iWnWubnKkKuUGJjsuOH7GfbMkB+XZzeslx2kLdEGdOJDamEmCqOks6e8nv8DQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-json-strings": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.1.tgz", - "integrity": "sha512-zn9pwz8U7nCqOYIiBaOxoQOtYmMODXTJnkxG4AtX8fPmnCRYWBOHD0qcpwS9e2VDSp1zNJYpdnFMIKb8jmwu6g==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.1.tgz", - "integrity": "sha512-OhN6J4Bpz+hIBqItTeWJujDOfNP+unqv/NJgyhlpSqgBTPm37KkMmZV6SYcOj+pnDbdcl1qRGV/ZiIjX9Iy34w==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.1.tgz", - "integrity": "sha512-4ojai0KysTWXzHseJKa1XPNXKRbuUrhkOPY4rEGeR+7ChlJVKxFa3H3Bz+7tWaGKgJAXUWKOGmltN+u9B3+CVg==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.1.tgz", - "integrity": "sha512-lAxNHi4HVtjnHd5Rxg3D5t99Xm6H7b04hUS7EHIXcUl2EV4yl1gWdqZrNzXnSrHveL9qMdbODlLF55mvgjAfaQ==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.1.tgz", - "integrity": "sha512-szog8fFTUxBfw0b98gEWPaEqF42ZUD/T3bkynW/wtgx2p/XCP55WEsb+VosKceRSd6njipdZvNogqdtI4Q0chw==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-simple-access": "^7.22.5" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.1.tgz", - "integrity": "sha512-mqQ3Zh9vFO1Tpmlt8QPnbwGHzNz3lpNEMxQb1kAemn/erstyqw1r9KeOlOfo3y6xAnFEcOv2tSyrXfmMk+/YZA==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-identifier": "^7.22.20" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.1.tgz", - "integrity": "sha512-tuA3lpPj+5ITfcCluy6nWonSL7RvaG0AOTeAuvXqEKS34lnLzXpDb0dcP6K8jD0zWZFNDVly90AGFJPnm4fOYg==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - } + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", - "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-new-target": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.1.tgz", - "integrity": "sha512-/rurytBM34hYy0HKZQyA0nHbQgQNFm4Q/BOc9Hflxi2X3twRof7NaE5W46j4kQitm7SvACVRXsa6N/tSZxvPug==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.1.tgz", - "integrity": "sha512-iQ+caew8wRrhCikO5DrUYx0mrmdhkaELgFa+7baMcVuhxIkN7oxt06CZ51D65ugIb1UWRQ8oQe+HXAVM6qHFjw==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-numeric-separator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.1.tgz", - "integrity": "sha512-7GAsGlK4cNL2OExJH1DzmDeKnRv/LXq0eLUSvudrehVA5Rgg4bIrqEUW29FbKMBRT0ztSqisv7kjP+XIC4ZMNw==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-rest-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.1.tgz", - "integrity": "sha512-XjD5f0YqOtebto4HGISLNfiNMTTs6tbkFf2TOqJlYKYmbo+mN9Dnpl4SRoofiziuOWMIyq3sZEUqLo3hLITFEA==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.1" + "@babel/plugin-transform-parameters": "^7.24.7" }, - "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.1.tgz", - "integrity": "sha512-oKJqR3TeI5hSLRxudMjFQ9re9fBVUU0GICqM3J1mi8MqlhVr6hC/ZN4ttAyMuQR6EZZIY6h/exe5swqGNNIkWQ==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-replace-supers": "^7.24.1" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.1.tgz", - "integrity": "sha512-oBTH7oURV4Y+3EUrf6cWn1OHio3qG/PVwO5J03iSJmBg6m2EhKjkAu/xuaXaYwWW9miYtvbWv4LNf0AmR43LUA==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-optional-chaining": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.1.tgz", - "integrity": "sha512-n03wmDt+987qXwAgcBlnUUivrZBPZ8z1plL0YvgQalLm+ZE5BMhGm94jhxXtA1wzv1Cu2aaOv1BM9vbVttrzSg==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.1.tgz", - "integrity": "sha512-8Jl6V24g+Uw5OGPeWNKrKqXPDw2YDjLc53ojwfMcKwlEoETKU9rU0mHUtcg9JntWI/QYzGAXNWEcVHZ+fR+XXg==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-private-methods": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.1.tgz", - "integrity": "sha512-tGvisebwBO5em4PaYNqt4fkw56K2VALsAbAakY0FjTYqJp7gfdrgr7YX76Or8/cpik0W6+tj3rZ0uHU9Oil4tw==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-private-property-in-object": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.1.tgz", - "integrity": "sha512-pTHxDVa0BpUbvAgX3Gat+7cSciXqUcY9j2VZKTbSB6+VQGpNgNO9ailxTGHSXlqOnX1Hcx1Enme2+yv7VqP9bg==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.24.1", - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.1.tgz", - "integrity": "sha512-LetvD7CrHmEx0G442gOomRr66d7q8HzzGGr4PMHGr+5YIm6++Yke+jxj246rpvsbyhJwCLxcTn6zW1P1BSenqA==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.1.tgz", - "integrity": "sha512-sJwZBCzIBE4t+5Q4IGLaaun5ExVMRY0lYwos/jNecjMrVCygCdph3IKv0tkP5Fc87e/1+bebAmEAGBfnRD+cnw==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", "regenerator-transform": "^0.15.2" }, - "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.1.tgz", - "integrity": "sha512-JAclqStUfIwKN15HrsQADFgeZt+wexNQ0uLhuqvqAUFoqPMjEcFCYZBhq0LUdz6dZK/mD+rErhW71fbx8RYElg==", + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-runtime": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.3.tgz", - "integrity": "sha512-J0BuRPNlNqlMTRJ72eVptpt9VcInbxO6iP3jaxr+1NPhC0UkKL+6oeX6VXMEYdADnuqmMmsBspt4d5w8Y/TCbQ==", + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.24.3", - "@babel/helper-plugin-utils": "^7.24.0", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.1", "babel-plugin-polyfill-regenerator": "^0.6.1", "semver": "^6.3.1" }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", - "dev": true, - "requires": { - "@babel/types": "^7.24.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.1.tgz", - "integrity": "sha512-LyjVB1nsJ6gTTUKRjRWx9C1s9hE7dLfP/knKdrfeH9UPtAGjYGgxIbFfx7xyLIEWs7Xe1Gnf8EWiUqfjLhInZA==", + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.1.tgz", - "integrity": "sha512-KjmcIM+fxgY+KxPVbjelJC6hrH1CgtPmTvdXAfn3/a9CnWGSTY7nH4zm5+cjmWJybdcPSsD0++QssDsjcpe47g==", + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.1.tgz", - "integrity": "sha512-9v0f1bRXgPVcPrngOQvLXeGNNVLc8UjMVfebo9ka0WF3/7+aVUHmaJVT3sa0XCzEFioPfPHZiOcYG9qOsH63cw==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.1.tgz", - "integrity": "sha512-WRkhROsNzriarqECASCNu/nojeXCDTE/F2HmRgOzi7NGvyfYGq1NEjKBK3ckLfRgGc6/lPAqP0vDOSw3YtG34g==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.1.tgz", - "integrity": "sha512-CBfU4l/A+KruSUoW+vTQthwcAdwuqbpRNB8HQKlZABwHRhsdHZ9fezp4Sn18PeAlYxTNiLMlx4xUBV3AWfg1BA==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.1.tgz", - "integrity": "sha512-RlkVIcWT4TLI96zM660S877E7beKlQw7Ig+wqkKBiWfj0zH5Q4h50q6er4wzZKRNSYpfo6ILJ+hrJAGSX2qcNw==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.1.tgz", - "integrity": "sha512-Ss4VvlfYV5huWApFsF8/Sq0oXnGO+jB+rijFEFugTd3cwSObUSnUi88djgR5528Csl0uKlrI331kRqe56Ov2Ng==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.1.tgz", - "integrity": "sha512-2A/94wgZgxfTsiLaQ2E36XAOdcZmGAaEEgVmxQWwZXWkGhvoHbaqXcKnU8zny4ycpu3vNqg0L/PcCiYtHtA13g==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-sets-regex": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.1.tgz", - "integrity": "sha512-fqj4WuzzS+ukpgerpAoOnMfQXwUHFxXUZUE84oL2Kao2N8uSlvcpnAidKASgsNgzZHBsHWvcm8s9FPWUhAb8fA==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.22.15", - "@babel/helper-plugin-utils": "^7.24.0" - }, "dependencies": { - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - } + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/preset-env": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.3.tgz", - "integrity": "sha512-fSk430k5c2ff8536JcPvPWK4tZDwehWLGlBp0wrsBUjZVdeQV6lePbwKWZaZfK2vnh/1kQX1PzAJWsnBmVgGJA==", + "node_modules/@babel/preset-env": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", "dev": true, - "requires": { - "@babel/compat-data": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-plugin-utils": "^7.24.0", - "@babel/helper-validator-option": "^7.23.5", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.1", + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@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.24.1", - "@babel/plugin-syntax-import-attributes": "^7.24.1", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", "@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", @@ -2918,54 +1714,54 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.1", - "@babel/plugin-transform-async-generator-functions": "^7.24.3", - "@babel/plugin-transform-async-to-generator": "^7.24.1", - "@babel/plugin-transform-block-scoped-functions": "^7.24.1", - "@babel/plugin-transform-block-scoping": "^7.24.1", - "@babel/plugin-transform-class-properties": "^7.24.1", - "@babel/plugin-transform-class-static-block": "^7.24.1", - "@babel/plugin-transform-classes": "^7.24.1", - "@babel/plugin-transform-computed-properties": "^7.24.1", - "@babel/plugin-transform-destructuring": "^7.24.1", - "@babel/plugin-transform-dotall-regex": "^7.24.1", - "@babel/plugin-transform-duplicate-keys": "^7.24.1", - "@babel/plugin-transform-dynamic-import": "^7.24.1", - "@babel/plugin-transform-exponentiation-operator": "^7.24.1", - "@babel/plugin-transform-export-namespace-from": "^7.24.1", - "@babel/plugin-transform-for-of": "^7.24.1", - "@babel/plugin-transform-function-name": "^7.24.1", - "@babel/plugin-transform-json-strings": "^7.24.1", - "@babel/plugin-transform-literals": "^7.24.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.1", - "@babel/plugin-transform-member-expression-literals": "^7.24.1", - "@babel/plugin-transform-modules-amd": "^7.24.1", - "@babel/plugin-transform-modules-commonjs": "^7.24.1", - "@babel/plugin-transform-modules-systemjs": "^7.24.1", - "@babel/plugin-transform-modules-umd": "^7.24.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.24.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.1", - "@babel/plugin-transform-numeric-separator": "^7.24.1", - "@babel/plugin-transform-object-rest-spread": "^7.24.1", - "@babel/plugin-transform-object-super": "^7.24.1", - "@babel/plugin-transform-optional-catch-binding": "^7.24.1", - "@babel/plugin-transform-optional-chaining": "^7.24.1", - "@babel/plugin-transform-parameters": "^7.24.1", - "@babel/plugin-transform-private-methods": "^7.24.1", - "@babel/plugin-transform-private-property-in-object": "^7.24.1", - "@babel/plugin-transform-property-literals": "^7.24.1", - "@babel/plugin-transform-regenerator": "^7.24.1", - "@babel/plugin-transform-reserved-words": "^7.24.1", - "@babel/plugin-transform-shorthand-properties": "^7.24.1", - "@babel/plugin-transform-spread": "^7.24.1", - "@babel/plugin-transform-sticky-regex": "^7.24.1", - "@babel/plugin-transform-template-literals": "^7.24.1", - "@babel/plugin-transform-typeof-symbol": "^7.24.1", - "@babel/plugin-transform-unicode-escapes": "^7.24.1", - "@babel/plugin-transform-unicode-property-regex": "^7.24.1", - "@babel/plugin-transform-unicode-regex": "^7.24.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.24.1", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.4", @@ -2973,1560 +1769,1275 @@ "core-js-compat": "^3.31.0", "semver": "^6.3.1" }, - "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true - }, - "@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==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { + "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "@babel/regjsgen": { + "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==", "dev": true }, - "@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dev": true, - "requires": { + "dependencies": { "regenerator-runtime": "^0.14.0" }, - "dependencies": { - "regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "dev": true - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", "globals": "^11.1.0" }, - "dependencies": { - "@babel/code-frame": { - "version": "7.22.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", - "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", - "dev": true, - "requires": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - } - }, - "@babel/generator": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.0.tgz", - "integrity": "sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==", - "dev": true, - "requires": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, - "requires": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, - "requires": { - "@babel/types": "^7.22.5" - } - }, - "@babel/helper-string-parser": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", - "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true - }, - "@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - } - }, - "@babel/types": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.0.tgz", - "integrity": "sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.5.tgz", - "integrity": "sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==", + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.21.5", - "@babel/helper-validator-identifier": "^7.19.1", + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@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 + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } }, - "@cnakazawa/watch": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", - "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, - "requires": { - "exec-sh": "^0.3.2", - "minimist": "^1.2.0" + "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" } }, - "@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, - "requires": { - "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" - }, - "dependencies": { - "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 - } + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true + "node_modules/@eslint-community/regexpp": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz", + "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } }, - "@jest/console": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", - "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^26.6.2", - "jest-util": "^26.6.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", - "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/reporters": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^26.6.2", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-resolve-dependencies": "^26.6.3", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "jest-watcher": "^26.6.2", - "micromatch": "^4.0.2", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "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" } }, - "@jest/environment": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", - "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dev": true, - "requires": { - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2" + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@jest/fake-timers": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", - "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "node_modules/@eslint/eslintrc/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, - "requires": { - "@jest/types": "^26.6.2", - "@sinonjs/fake-timers": "^6.0.1", - "@types/node": "*", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "@jest/globals": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", - "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "dev": true, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/types": "^26.6.2", - "expect": "^26.6.2" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "@jest/reporters": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", - "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "node-notifier": "^8.0.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^7.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" } }, - "@jest/source-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", - "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "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, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" + "engines": { + "node": ">=12.22" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@intlify/core-base": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.13.1.tgz", + "integrity": "sha512-+bcQRkJO9pcX8d0gel9ZNfrzU22sZFSA0WVhfXrf5jdJOS24a+Bp8pozuS9sBI9Hk/tGz83pgKfmqcn/Ci7/8w==", "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "@intlify/message-compiler": "9.13.1", + "@intlify/shared": "9.13.1" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" } }, - "@jest/test-result": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", - "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "node_modules/@intlify/message-compiler": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.13.1.tgz", + "integrity": "sha512-SKsVa4ajYGBVm7sHMXd5qX70O2XXjm55zdZB3VeMFCvQyvLew/dLvq3MqnaIsTMF1VkkOb9Ttr6tHcMlyPDL9w==", + "dependencies": { + "@intlify/shared": "9.13.1", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" } }, - "@jest/test-sequencer": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", - "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", - "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-runner": "^26.6.3", - "jest-runtime": "^26.6.3" + "node_modules/@intlify/shared": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.13.1.tgz", + "integrity": "sha512-u3b6BKGhE6j/JeRU6C/RL2FgyJfy6LakbtfeVF8fJXURpZZTzfh3e05J0bu0XPw447Q6/WUp3C4ajv4TMS4YsQ==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" } }, - "@jest/transform": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", - "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^26.6.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-util": "^26.6.2", - "micromatch": "^4.0.2", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - } + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, - "requires": { + "dependencies": { + "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", - "@types/yargs": "^15.0.0", + "@types/yargs": "^17.0.8", "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "@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==", + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@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==", - "dev": true + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } }, - "@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==", + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "@jridgewell/source-map": { + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" - }, + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, - "@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - } + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "@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==", + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true }, - "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "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, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "dependencies": { + "eslint-scope": "5.1.1" } }, - "@nodelib/fs.scandir": { + "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, - "requires": { + "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" } }, - "@nodelib/fs.stat": { + "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 + "dev": true, + "engines": { + "node": ">= 8" + } }, - "@nodelib/fs.walk": { + "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, - "requires": { + "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" } }, - "@polka/url": { + "node_modules/@polka/url": { "version": "1.0.0-next.25", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", "dev": true }, - "@positron/stack-trace": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@positron/stack-trace/-/stack-trace-1.0.0.tgz", - "integrity": "sha512-nWlGg+aMfQDhGYa5FtBhZwldeo2MtdjHdxmEQvhBXEnxgD5IhIYl0PHvex8SdwyN7qcSoMykMWdjyAX7ZxkpMw==", - "dev": true - }, - "@quasar/app": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@quasar/app/-/app-3.3.3.tgz", - "integrity": "sha512-REWlQpGxo0oNDEyeqP1eoKofSYjt7g0QFesz6ZTJH1OBC79VajlHLrYpiFljlgjzwlabqX2cCF0ncYDv9WPxsA==", + "node_modules/@quasar/app-webpack": { + "version": "3.13.2", + "resolved": "https://registry.npmjs.org/@quasar/app-webpack/-/app-webpack-3.13.2.tgz", + "integrity": "sha512-or5oBNS1Shx+lDC6USBh3Rqce75klGaLzDmKavZOfh4bFWWoQVmTZShF62P63XWOvmY8n697yjtlMcHGMhi27Q==", "dev": true, - "requires": { - "@quasar/babel-preset-app": "2.0.1", - "@quasar/fastclick": "1.1.4", - "@quasar/ssr-helpers": "2.1.1", + "dependencies": { + "@quasar/babel-preset-app": "^2.0.3", + "@quasar/render-ssr-error": "^1.0.3", + "@quasar/ssr-helpers": "2.2.2", + "@types/chrome": "^0.0.208", + "@types/compression": "^1.7.5", "@types/cordova": "0.0.34", - "@types/express": "4.17.13", - "@types/webpack-bundle-analyzer": "4.4.1", - "archiver": "5.3.0", - "autoprefixer": "10.4.2", - "browserslist": "^4.12.0", + "@types/express": "4.17.21", + "@types/webpack-bundle-analyzer": "4.7.0", + "archiver": "5.3.1", + "autoprefixer": "10.4.19", + "browserslist": "^4.23.0", "chalk": "4.1.2", - "chokidar": "3.5.3", - "ci-info": "3.3.0", - "compression-webpack-plugin": "9.2.0", - "copy-webpack-plugin": "10.2.4", + "chokidar": "3.6.0", + "ci-info": "3.7.1", + "compression-webpack-plugin": "10.0.0", + "copy-webpack-plugin": "11.0.0", "cross-spawn": "7.0.3", - "css-loader": "5.2.6", - "css-minimizer-webpack-plugin": "3.4.1", - "cssnano": "5.0.17", + "css-loader": "6.7.3", + "css-minimizer-webpack-plugin": "4.2.2", + "cssnano": "5.1.14", "dot-prop": "6.0.1", "elementtree": "0.1.7", - "error-stack-parser": "2.0.6", - "express": "4.17.2", - "fast-glob": "3.2.11", + "error-stack-parser": "2.1.4", + "express": "4.19.2", + "fast-glob": "3.3.2", "file-loader": "6.2.0", "fork-ts-checker-webpack-plugin": "6.5.0", - "fs-extra": "10.0.0", + "fs-extra": "11.2.0", "hash-sum": "2.0.0", - "html-minifier": "4.0.0", - "html-webpack-plugin": "5.5.0", - "inquirer": "8.2.0", - "isbinaryfile": "4.0.8", - "launch-editor-middleware": "2.3.0", - "lodash.debounce": "4.0.8", - "lodash.template": "4.5.0", - "lodash.throttle": "4.1.1", + "html-minifier-terser": "^7.2.0", + "html-webpack-plugin": "5.6.0", + "inquirer": "8.2.2", + "isbinaryfile": "5.0.2", + "launch-editor-middleware": "2.6.1", + "lodash": "^4.17.21", "log-update": "4.0.0", - "memory-fs": "0.5.0", - "mini-css-extract-plugin": "1.6.0", - "minimist": "1.2.5", + "mini-css-extract-plugin": "2.9.0", + "minimist": "1.2.8", "node-loader": "2.0.0", "null-loader": "4.0.1", "open": "8.4.0", - "ouch": "2.0.0", - "postcss": "^8.4.4", - "postcss-loader": "6.2.1", - "postcss-rtlcss": "3.5.2", - "pretty-error": "4.0.0", + "postcss": "^8.4.38", + "postcss-loader": "7.0.2", + "postcss-rtlcss": "4.0.1", "register-service-worker": "1.7.2", - "sass": "1.32.12", - "sass-loader": "12.4.0", - "semver": "7.3.5", - "table": "6.8.0", - "terser-webpack-plugin": "5.3.1", - "ts-loader": "9.2.6", - "typescript": "4.5.5", + "sass": "^1.33.0", + "sass-loader": "13.2.0", + "semver": "^7.6.0", + "table": "6.8.2", + "terser-webpack-plugin": "5.3.10", + "ts-loader": "9.4.2", + "typescript": "4.9.4", "url-loader": "4.1.1", - "vue-loader": "17.0.0", + "vue-loader": "^17.1.1", "vue-style-loader": "4.1.3", - "webpack": "^5.58.1", - "webpack-bundle-analyzer": "4.5.0", + "webpack": "^5.91.0", + "webpack-bundle-analyzer": "4.10.2", "webpack-chain": "6.5.1", - "webpack-dev-server": "4.7.4", - "webpack-merge": "5.8.0", + "webpack-dev-server": "4.11.1", + "webpack-merge": "5.10.0", "webpack-node-externals": "3.0.0" }, - "dependencies": { - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==", - "dev": true + "bin": { + "quasar": "bin/quasar" + }, + "engines": { + "node": ">= 14.15", + "npm": ">= 6.14.12", + "yarn": ">= 1.17.3" + }, + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" + }, + "peerDependencies": { + "@electron/packager": ">= 18", + "electron-builder": ">= 22", + "electron-packager": ">= 15", + "pinia": "^2.0.0", + "quasar": "^2.16.0", + "vue": "^3.2.29", + "vue-router": "^4.0.12", + "vuex": "^4.0.0", + "workbox-webpack-plugin": ">= 6" + }, + "peerDependenciesMeta": { + "@electron/packager": { + "optional": true + }, + "electron-builder": { + "optional": true + }, + "electron-packager": { + "optional": true + }, + "pinia": { + "optional": true }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "vuex": { + "optional": true }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "workbox-webpack-plugin": { + "optional": true } } }, - "@quasar/babel-preset-app": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@quasar/babel-preset-app/-/babel-preset-app-2.0.1.tgz", - "integrity": "sha512-Eiu8B2rFl3nEvA+PYaybcXknkXcgVy//OqM7+f5fu3UEVw050/JyHBsrnBOMc+muon16Og1RKxOVmQuAWDS1hA==", + "node_modules/@quasar/app-webpack/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "@babel/core": "^7.9.0", - "@babel/helper-compilation-targets": "^7.9.6", - "@babel/helper-module-imports": "^7.8.3", - "@babel/plugin-proposal-class-properties": "^7.5.5", - "@babel/plugin-proposal-decorators": "^7.4.4", - "@babel/plugin-proposal-export-namespace-from": "^7.2.0", - "@babel/plugin-proposal-function-sent": "^7.2.0", - "@babel/plugin-proposal-json-strings": "^7.2.0", - "@babel/plugin-proposal-numeric-separator": "^7.2.0", - "@babel/plugin-proposal-throw-expressions": "^7.2.0", - "@babel/plugin-syntax-dynamic-import": "^7.2.0", - "@babel/plugin-syntax-import-meta": "^7.2.0", - "@babel/plugin-transform-runtime": "^7.9.0", - "@babel/preset-env": "^7.9.0", - "@babel/runtime": "^7.9.0", - "babel-loader": "^8.0.6", - "babel-plugin-dynamic-import-node": "^2.3.0", - "babel-plugin-module-resolver": "^4.0.0", - "core-js": "^3.6.5", - "core-js-compat": "^3.6.5" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "@quasar/extras": { - "version": "1.16.11", - "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.11.tgz", - "integrity": "sha512-sbTBHOA+Hi7ah0P6qSm+xfRXqwJ94ct3NKA3Lkq3iNPYuHD7VXbSWtP2eA7Cu9Fd0WjVoPbngf6yFGg46U3IfQ==" - }, - "@quasar/fastclick": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@quasar/fastclick/-/fastclick-1.1.4.tgz", - "integrity": "sha512-i9wbyV4iT+v4KhtHJynUFhH5LiEPvAEgSnwMqPN4hf/8uRe82nDl5qP5agrp2el1h0HzyBpbvHaW7NB0BPrtvA==", - "dev": true - }, - "@quasar/quasar-app-extension-testing": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@quasar/quasar-app-extension-testing/-/quasar-app-extension-testing-1.0.3.tgz", - "integrity": "sha512-x3uQpsshEfSyDW/mnQeS5nUOsr3thHQn74qdlXRr7NlxzlsiV+vHSZiGlCj5Q+WNdEecWsjjqAVrwlb7FkP1CQ==", + "node_modules/@quasar/app-webpack/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "execa": "^4.1.0", - "strip-ansi": "^6.0.0" - }, "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - } + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "@quasar/quasar-app-extension-testing-unit-jest": { - "version": "1.1.0-beta.7", - "resolved": "https://registry.npmjs.org/@quasar/quasar-app-extension-testing-unit-jest/-/quasar-app-extension-testing-unit-jest-1.1.0-beta.7.tgz", - "integrity": "sha512-oaNSfIlSoT+NjipkZai8NnqfDGKiYHAUtvu4AGNUk3uzMKeSwKtShZAUZZSKW8jwKoBwApvLYZN5XHFouitkcA==", + "node_modules/@quasar/app-webpack/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@types/jest": "^26.0.12", - "@vue/test-utils": "^1.0.5", - "babel-core": "7.0.0-bridge.0", - "babel-jest": "^26.3.0", - "babel-plugin-transform-relative-paths": "^0.1.0", - "chai": "^4.2.0", - "concurrently": "^5.3.0", - "enhanced-resolve": "^4.3.0", - "jest": "^26.4.2", - "jest-serializer-vue": "^2.0.2", - "jest-transform-stub": "^2.0.0", - "json5": "^2.1.3", - "loader-utils": "^1.2.3", - "promise": "^8.1.0", - "regenerator-runtime": "^0.13.7", - "ts-jest": "^26.3.0", - "vue-jest": "^3.0.6" - }, - "dependencies": { - "@vue/test-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.0.tgz", - "integrity": "sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==", - "dev": true, - "requires": { - "dom-event-types": "^1.0.0", - "lodash": "^4.17.15", - "pretty": "^2.0.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "vue-jest": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz", - "integrity": "sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w==", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", - "chalk": "^2.1.0", - "deasync": "^0.1.15", - "extract-from-css": "^0.4.4", - "find-babel-config": "^1.1.0", - "js-beautify": "^1.6.14", - "node-cache": "^4.1.1", - "object-assign": "^4.1.1", - "source-map": "^0.5.6", - "tsconfig": "^7.0.0", - "vue-template-es2015-compiler": "^1.6.0" - } - } + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "@quasar/ssr-helpers": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@quasar/ssr-helpers/-/ssr-helpers-2.1.1.tgz", - "integrity": "sha512-Roe0bvnXDtSUvB6XMyAKAA6tsEikoVgSS4nLJptm4IPx1ylIj5KTwDtwuDr083cq9Pb4jCdmpj9wqz365NamLw==", + "node_modules/@quasar/app-webpack/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@quasar/app-webpack/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "serialize-javascript": "^5.0.1" + "engines": { + "node": ">=8" } }, - "@sinonjs/commons": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.2.tgz", - "integrity": "sha512-sruwd86RJHdsVf/AtBoijDmUqJp3B6hF/DGC23C+JaegnDHaZyewCjoVGTdg3J0uz3Zs7NnIT05OBOmML72lQw==", + "node_modules/@quasar/app-webpack/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "requires": { - "type-detect": "4.0.8" + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "@sinonjs/fake-timers": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", - "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "node_modules/@quasar/app-webpack/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@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==", + "node_modules/@quasar/babel-preset-app": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@quasar/babel-preset-app/-/babel-preset-app-2.0.3.tgz", + "integrity": "sha512-PYvVXU/TBwF1JU+nEKw8VTsbNi4mdhu7l+l9HIqfY0XZGWbDQLOGjBR8TO6A8dn5SUoilvRh85TG3ZQV01VCBQ==", "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "dependencies": { + "@babel/core": "^7.12.0", + "@babel/helper-compilation-targets": "^7.9.6", + "@babel/helper-module-imports": "^7.8.3", + "@babel/plugin-proposal-decorators": "^7.4.4", + "@babel/plugin-proposal-function-sent": "^7.2.0", + "@babel/plugin-proposal-throw-expressions": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-import-meta": "^7.2.0", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-runtime": "^7.9.0", + "@babel/preset-env": "^7.9.0", + "@babel/runtime": "^7.9.0", + "babel-loader": "^9.1.2", + "babel-plugin-dynamic-import-node": "^2.3.0", + "babel-plugin-module-resolver": "^5.0.0", + "core-js": "^3.6.5", + "core-js-compat": "^3.6.5" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 5.6.0", + "yarn": ">= 1.6.0" + }, + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" } }, - "@types/babel__generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", - "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "node_modules/@quasar/extras": { + "version": "1.16.11", + "resolved": "https://registry.npmjs.org/@quasar/extras/-/extras-1.16.11.tgz", + "integrity": "sha512-sbTBHOA+Hi7ah0P6qSm+xfRXqwJ94ct3NKA3Lkq3iNPYuHD7VXbSWtP2eA7Cu9Fd0WjVoPbngf6yFGg46U3IfQ==", + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" + } + }, + "node_modules/@quasar/render-ssr-error": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@quasar/render-ssr-error/-/render-ssr-error-1.0.3.tgz", + "integrity": "sha512-A8RF99q6/sOSe1Ighnh5syEIbliD3qUYEJd2HyfFyBPSMF+WYGXon5dmzg4nUoK662NgOggInevkDyBDJcZugg==", "dev": true, - "requires": { - "@babel/types": "^7.0.0" + "dependencies": { + "stack-trace": "^1.0.0-pre2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" } }, - "@types/babel__template": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", - "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "node_modules/@quasar/ssr-helpers": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@quasar/ssr-helpers/-/ssr-helpers-2.2.2.tgz", + "integrity": "sha512-lz30NGk5Qrl8YCOg3kg+1cqI+muFNs6cAokJcNjx4sR9MKsB25hgL8kUkWXhknPqfWHWnOujB1LR6AefdVaTUQ==", "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "dependencies": { + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.22.1" + }, + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" } }, - "@types/babel__traverse": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.0.tgz", - "integrity": "sha512-kSjgDMZONiIfSH1Nxcr5JIRMwUetDki63FSQfpTCz8ogF3Ulqm8+mr5f78dUYs6vMiB6gBusQqfQmBvHZj/lwg==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", "dev": true, - "requires": { - "@babel/types": "^7.3.0" + "engines": { + "node": ">=10.13.0" } }, - "@types/body-parser": { + "node_modules/@types/body-parser": { "version": "1.19.5", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dev": true, - "requires": { + "dependencies": { "@types/connect": "*", "@types/node": "*" } }, - "@types/bonjour": { + "node_modules/@types/bonjour": { "version": "3.5.13", "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/chart.js": { - "version": "2.9.30", - "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.30.tgz", - "integrity": "sha512-EgjxUUZFvf6ls3kW2CwyrnSJhgyKxgwrlp/W5G9wqyPEO9iFatO63zAA7L24YqgMxiDjQ+tG7ODU+2yWH91lPg==", - "requires": { - "moment": "^2.10.2" + "node_modules/@types/chrome": { + "version": "0.0.208", + "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.208.tgz", + "integrity": "sha512-VDU/JnXkF5qaI7WBz14Azpa2VseZTgML0ia/g/B1sr9OfdOnHiH/zZ7P7qCDqxSlkqJh76/bPc8jLFcx8rHJmw==", + "dev": true, + "dependencies": { + "@types/filesystem": "*", + "@types/har-format": "*" + } + }, + "node_modules/@types/compression": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.7.5.tgz", + "integrity": "sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg==", + "dev": true, + "dependencies": { + "@types/express": "*" } }, - "@types/connect": { + "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/connect-history-api-fallback": { + "node_modules/@types/connect-history-api-fallback": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, - "requires": { + "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" } }, - "@types/cordova": { + "node_modules/@types/cordova": { "version": "0.0.34", "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", "integrity": "sha512-rkiiTuf/z2wTd4RxFOb+clE7PF4AEJU0hsczbUdkHHBtkUmpWQpEddynNfJYKYtZFJKbq4F+brfekt1kx85IZA==", "dev": true }, - "@types/eslint": { - "version": "8.56.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.6.tgz", - "integrity": "sha512-ymwc+qb1XkjT/gfoQwxIeHZ6ixH23A+tCT2ADSA/DPVKzAjwYkTXBMCQ/f6fe4wEa85Lhp26VPeUxI7wMhAi7A==", + "node_modules/@types/eslint": { + "version": "8.56.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.10.tgz", + "integrity": "sha512-Shavhk87gCtY2fhXDctcfS3e6FdxWkCx1iUZ9eEUbh7rTqlZT0/IzOkCOVt0fCjcFuZ9FPYfuezTBImfHCDBGQ==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { + "node_modules/@types/eslint-scope": { "version": "3.7.7", "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", "dev": true, - "requires": { + "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, - "@types/estree": { + "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", "dev": true }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, - "requires": { + "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.33", "@types/qs": "*", "@types/serve-static": "*" } }, - "@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*", "@types/send": "*" } }, - "@types/graceful-fs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.4.tgz", - "integrity": "sha512-mWA/4zFQhfvOA8zWkXobwJvBD7vzcxgrOQ0J5CH1votGqdq9m7+FwtGaqyCZqC3NyyBkc9z4m+iry4LlqcMWJg==", + "node_modules/@types/filesystem": { + "version": "0.0.36", + "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", + "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", "dev": true, - "requires": { - "@types/node": "*" + "dependencies": { + "@types/filewriter": "*" } }, - "@types/html-minifier-terser": { + "node_modules/@types/filewriter": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", + "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", + "dev": true + }, + "node_modules/@types/har-format": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz", + "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", + "dev": true + }, + "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, - "@types/http-errors": { + "node_modules/@types/http-errors": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", "dev": true }, - "@types/http-proxy": { + "node_modules/@types/http-proxy": { "version": "1.17.14", "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true }, - "@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==", + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "*" } }, - "@types/istanbul-reports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", - "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-report": "*" } }, - "@types/jest": { - "version": "26.0.20", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.20.tgz", - "integrity": "sha512-9zi2Y+5USJRxd0FsahERhBwlcvFh6D2GLQnY2FH2BzK8J9s9omvNHIbvABwIluXa0fD8XVKMLTO0aOEuUfACAA==", - "dev": true, - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@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==", + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true }, - "@types/json5": { + "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "@types/mime": { + "node_modules/@types/mime": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true }, - "@types/node": { - "version": "14.14.25", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.25.tgz", - "integrity": "sha512-EPpXLOVqDvisVxtlbvzfyqSsFeQxltFbluZNRndIb8tr9KiBnYNLzrc1N3pyKUCww2RNrfHDViqDWWE1LCJQtQ==", - "dev": true + "node_modules/@types/node": { + "version": "20.14.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.6.tgz", + "integrity": "sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } }, - "@types/node-forge": { + "node_modules/@types/node-forge": { "version": "1.3.11", "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/normalize-package-data": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", - "dev": true - }, - "@types/parse-json": { + "node_modules/@types/parse-json": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "dev": true }, - "@types/prettier": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.0.tgz", - "integrity": "sha512-O3SQC6+6AySHwrspYn2UvC6tjo6jCTMMmylxZUFhE1CulVu5l3AxU6ca9lrJDTQDVllF62LIxVSx5fuYL6LiZg==", - "dev": true - }, - "@types/qs": { - "version": "6.9.14", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", - "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==", + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", "dev": true }, - "@types/range-parser": { + "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true }, - "@types/retry": { + "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "@types/send": { + "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dev": true, - "requires": { + "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, - "@types/serve-index": { + "node_modules/@types/serve-index": { "version": "1.9.4", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, - "requires": { + "dependencies": { "@types/express": "*" } }, - "@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", "dev": true, - "requires": { + "dependencies": { "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" + "@types/node": "*", + "@types/send": "*" } }, - "@types/sockjs": { + "node_modules/@types/sockjs": { "version": "0.3.36", "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/stack-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", - "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", - "dev": true - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "@types/webpack-bundle-analyzer": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz", - "integrity": "sha512-yQAj3l7bIYL+QRRlNJt6gyP+zrXZOlgaR4wsX0WY4yzZIbv41ZibREfZvuYjxY0iVtvQQlbhx0AeokkCuqUAQg==", + "node_modules/@types/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-c5i2ThslSNSG8W891BRvOd/RoCjI2zwph8maD22b1adtSns20j+0azDDMCK06DiVrzTgnwiDl5Ntmu1YRJw8Sg==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "tapable": "^2.2.0", "webpack": "^5" - }, - "dependencies": { - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } } }, - "@types/ws": { + "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*" } }, - "@types/yargs": { - "version": "15.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", - "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", "dev": true, - "requires": { + "dependencies": { "@types/yargs-parser": "*" } }, - "@types/yargs-parser": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", - "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", "dev": true }, - "@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz", - "integrity": "sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", "dependencies": { - "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, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - } - } + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz", - "integrity": "sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "eslint-visitor-keys": "^1.1.0", - "glob": "^7.1.6", - "is-glob": "^4.0.1", - "lodash": "^4.17.15", - "semver": "^7.3.2", - "tsutils": "^3.17.1" + "node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" } }, - "@vue/eslint-config-standard": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vue/eslint-config-standard/-/eslint-config-standard-4.0.0.tgz", - "integrity": "sha512-bQghq1cw1BuMRHNhr3tRpAJx1tpGy0QtajQX873kLtA9YVuOIoXR7nAWnTN09bBHnSUh2N288vMsqPi2fI4Hzg==", - "dev": true, - "requires": { - "eslint-config-standard": "^12.0.0", - "eslint-plugin-import": "^2.14.0", - "eslint-plugin-node": "^8.0.0", - "eslint-plugin-promise": "^4.0.1", - "eslint-plugin-standard": "^4.0.0" + "node_modules/@vue/compiler-sfc": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" } }, - "@vue/test-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-1.3.0.tgz", - "integrity": "sha512-Xk2Xiyj2k5dFb8eYUKkcN9PzqZSppTlx7LaQWBbdA8tqh3jHr/KHX2/YLhNFc/xwDrgeLybqd+4ZCPJSGPIqeA==", - "dev": true, - "requires": { - "dom-event-types": "^1.0.0", - "lodash": "^4.17.15", - "pretty": "^2.0.0" + "node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" } }, - "@webassemblyjs/ast": { + "node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/helper-numbers": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "@webassemblyjs/floating-point-hex-parser": { + "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, - "@webassemblyjs/helper-api-error": { + "node_modules/@webassemblyjs/helper-api-error": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, - "@webassemblyjs/helper-buffer": { + "node_modules/@webassemblyjs/helper-buffer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", "dev": true }, - "@webassemblyjs/helper-numbers": { + "node_modules/@webassemblyjs/helper-numbers": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.11.6", "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/helper-wasm-bytecode": { + "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { + "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/wasm-gen": "1.12.1" } }, - "@webassemblyjs/ieee754": { + "node_modules/@webassemblyjs/ieee754": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", "dev": true, - "requires": { + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { + "node_modules/@webassemblyjs/leb128": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", "dev": true, - "requires": { + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { + "node_modules/@webassemblyjs/utf8": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", "dev": true }, - "@webassemblyjs/wasm-edit": { + "node_modules/@webassemblyjs/wasm-edit": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -4537,12 +3048,12 @@ "@webassemblyjs/wast-printer": "1.12.1" } }, - "@webassemblyjs/wasm-gen": { + "node_modules/@webassemblyjs/wasm-gen": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", "@webassemblyjs/ieee754": "1.11.6", @@ -4550,24 +3061,24 @@ "@webassemblyjs/utf8": "1.11.6" } }, - "@webassemblyjs/wasm-opt": { + "node_modules/@webassemblyjs/wasm-opt": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-buffer": "1.12.1", "@webassemblyjs/wasm-gen": "1.12.1", "@webassemblyjs/wasm-parser": "1.12.1" } }, - "@webassemblyjs/wasm-parser": { + "node_modules/@webassemblyjs/wasm-parser": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@webassemblyjs/helper-api-error": "1.11.6", "@webassemblyjs/helper-wasm-bytecode": "1.11.6", @@ -4576,233 +3087,232 @@ "@webassemblyjs/utf8": "1.11.6" } }, - "@webassemblyjs/wast-printer": { + "node_modules/@webassemblyjs/wast-printer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", "dev": true, - "requires": { + "dependencies": { "@webassemblyjs/ast": "1.12.1", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true - }, - "accepts": { + "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==", "dev": true, - "requires": { + "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" + "bin": { + "acorn": "bin/acorn" }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - } + "engines": { + "node": ">=0.4.0" } }, - "acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } }, - "acorn-jsx": { + "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 - }, - "acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "requires": { - "debug": "4" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/acorn-walk": { + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "dependencies": { + "acorn": "^8.11.0" + }, + "engines": { + "node": ">=0.4.0" } }, - "ajv": { + "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, - "requires": { + "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" } }, - "ajv-formats": { + "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "requires": { + "dependencies": { "ajv": "^8.0.0" }, - "dependencies": { + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "optional": true } } }, - "ajv-keywords": { + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "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, - "requires": { - "type-fest": "^0.11.0" - }, "dependencies": { - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "ansi-html-community": { + "node_modules/ansi-html-community": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "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==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "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==", "dev": true, - "requires": { + "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" } }, - "archiver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.0.tgz", - "integrity": "sha512-iUw+oDwK0fgNpvveEsdQ0Ase6IIKztBJU2U0E9MzszMfmVVUyv1QJhS2ITW9ZCqx8dktAxVAjWWkKehuZE8OPg==", + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", "dev": true, - "requires": { + "dependencies": { "archiver-utils": "^2.1.0", - "async": "^3.2.0", + "async": "^3.2.3", "buffer-crc32": "^0.2.1", "readable-stream": "^3.6.0", "readdir-glob": "^1.0.0", "tar-stream": "^2.2.0", "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" } }, - "archiver-utils": { + "node_modules/archiver-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.4", "graceful-fs": "^4.2.0", "lazystream": "^1.0.0", @@ -4814,1276 +3324,917 @@ "normalize-path": "^3.0.0", "readable-stream": "^2.0.0" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "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" - } - } + "engines": { + "node": ">= 6" } }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/archiver-utils/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/archiver-utils/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==", "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - }, "dependencies": { - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - } + "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" } }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "node_modules/archiver-utils/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==", "dev": true }, - "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==", - "dev": true + "node_modules/archiver-utils/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "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 }, - "array-flatten": { + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "array-includes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.2.tgz", - "integrity": "sha512-w2GspexNQpx+PutG3QpT437/BenZBj0M/MZGn5mzv/MofYqo0xmRHzn4lFsoDlWJ+THYsGJmFlW68WlDFx7VRw==", + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "get-intrinsic": "^1.0.1", - "is-string": "^1.0.5" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "array.prototype.flat": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz", - "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==", + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "dev": true + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "astral-regex": { + "node_modules/astral-regex": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "async": { + "node_modules/async": { "version": "3.2.5", "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", - "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, - "requires": { - "browserslist": "^4.19.1", - "caniuse-lite": "^1.0.30001297", - "fraction.js": "^4.1.2", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "axios": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.4.tgz", - "integrity": "sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A==", - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } + "engines": { + "node": ">= 4.0.0" } }, - "babel-code-frame": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", - "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "dev": true, - "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "js-tokens": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", - "dev": true + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + { + "type": "github", + "url": "https://github.com/sponsors/ai" } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "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==", - "dev": true - }, - "babel-eslint": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", - "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.7.0", - "@babel/traverse": "^7.7.0", - "@babel/types": "^7.7.0", - "eslint-visitor-keys": "^1.0.0", - "resolve": "^1.12.0" - } - }, - "babel-jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", - "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", - "dev": true, - "requires": { - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/babel__core": "^7.1.7", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "node_modules/babel-loader": { + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.3.tgz", + "integrity": "sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==", "dev": true, - "requires": { - "babel-runtime": "^6.22.0" + "dependencies": { + "find-cache-dir": "^4.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 14.15.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, - "babel-plugin-dynamic-import-node": { + "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, - "requires": { + "dependencies": { "object.assign": "^4.1.0" } }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "node_modules/babel-plugin-module-resolver": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.2.tgz", + "integrity": "sha512-9KtaCazHee2xc0ibfqsDeamwDps6FZNo5S0Q81dUqEuFzVwPhcT4J5jOqIVvgCA3Q/wO9hKYxN/Ds3tIsp5ygg==", "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" + "dependencies": { + "find-babel-config": "^2.1.1", + "glob": "^9.3.3", + "pkg-up": "^3.1.0", + "reselect": "^4.1.7", + "resolve": "^1.22.8" } }, - "babel-plugin-jest-hoist": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", - "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "node_modules/babel-plugin-module-resolver/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "babel-plugin-module-resolver": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz", - "integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==", + "node_modules/babel-plugin-module-resolver/node_modules/glob": { + "version": "9.3.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", + "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", "dev": true, - "requires": { - "find-babel-config": "^1.2.0", - "glob": "^7.1.6", - "pkg-up": "^3.1.0", - "reselect": "^4.0.0", - "resolve": "^1.13.1" + "dependencies": { + "fs.realpath": "^1.0.0", + "minimatch": "^8.0.2", + "minipass": "^4.2.4", + "path-scurry": "^1.6.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/babel-plugin-module-resolver/node_modules/minimatch": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", + "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "babel-plugin-polyfill-corejs2": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.10.tgz", - "integrity": "sha512-rpIuu//y5OX6jVU+a5BCn1R5RSZYWAl2Nar76iwaOdycqb6JPxediskWFMMl7stfwNJR4b7eiQvh5fB5TEQJTQ==", + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.6.1", + "@babel/helper-define-polyfill-provider": "^0.6.2", "semver": "^6.3.1" }, - "dependencies": { - "@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", - "dev": true - }, - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babel-plugin-polyfill-corejs3": { + "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.4", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-define-polyfill-provider": "^0.6.1", "core-js-compat": "^3.36.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.1.tgz", - "integrity": "sha512-JfTApdE++cgcTWjsiCQlLyFBMbTUft9ja17saCc93lgV33h4tuCVj7tlvu//qpLwaG+3yEz7/KhahGrUMkVq9g==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.6.1" - } - }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.26.2", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", - "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", - "dev": true, - "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.26.0", - "babel-template": "^6.26.0", - "babel-types": "^6.26.0" - } - }, - "babel-plugin-transform-relative-paths": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-relative-paths/-/babel-plugin-transform-relative-paths-0.1.0.tgz", - "integrity": "sha512-yCFRkacsI79kX6zHxvwhVjGY4tIn3cbDrrBNG2M42Nu5/+p6ld2Mo4EoJn397vhfXnPg1SU96qgsUEpANofiEA==", - "dev": true - }, - "babel-plugin-transform-strict-mode": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", - "dev": true, - "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" - } - }, - "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, - "requires": { - "@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-jest": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", - "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^26.6.2", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", - "dev": true, - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" }, - "dependencies": { - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "dev": true - }, - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", - "dev": true - } - } - }, - "babel-template": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", - "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "babel-traverse": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "lodash": "^4.17.4" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babel-traverse": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", - "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, - "requires": { - "babel-code-frame": "^6.26.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.26.0", - "babel-types": "^6.26.0", - "babylon": "^6.18.0", - "debug": "^2.6.8", - "globals": "^9.18.0", - "invariant": "^2.2.2", - "lodash": "^4.17.4" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "globals": { - "version": "9.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "babel-types": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", - "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", - "dev": true, - "requires": { - "babel-runtime": "^6.26.0", - "esutils": "^2.0.2", - "lodash": "^4.17.4", - "to-fast-properties": "^1.0.3" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, - "dependencies": { - "to-fast-properties": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", - "dev": true - } + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "babylon": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", - "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "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==", "dev": true }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-js": { + "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==", - "dev": true + "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" + } + ] }, - "batch": { + "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, - "requires": { - "file-uri-to-path": "1.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "bl": { + "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "requires": { + "dependencies": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dev": true, - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - }, "dependencies": { - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - } + "ms": "2.0.0" } }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", "dev": true, - "requires": { - "fill-range": "^7.0.1" + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, - "browser-process-hrtime": { + "node_modules/boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "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==", "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "requires": { - "fast-json-stable-stringify": "2.x" + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" } }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", "dev": true, - "requires": { - "node-int64": "^0.4.0" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "buffer": { + "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "requires": { + "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" } }, - "buffer-crc32": { + "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "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==", "dev": true }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true + "node_modules/builtins": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.1.0.tgz", + "integrity": "sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==", + "dev": true, + "dependencies": { + "semver": "^7.0.0" + } }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "dev": true + "node_modules/builtins/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "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": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "engines": { + "node": ">= 0.8" } }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } }, - "caniuse-api": { + "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, - "caniuse-lite": { - "version": "1.0.30001375", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001375.tgz", - "integrity": "sha512-kWIMkNzLYxSvnjy0hL8w1NOaWNr2rn39RTAVyIwcw8juu60bZDWiF1/loOYANzjtJmy6qPgNmn38ro5Pygagdw==", - "dev": true - }, - "capture-exit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", - "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", - "dev": true, - "requires": { - "rsvp": "^4.8.4" - } - }, - "chai": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.0.tgz", - "integrity": "sha512-/BFd2J30EcOwmdOgXvVsmM48l0Br0nmZPlO0uOW4XKh6kpsUumRXBgPV+IlaqFaqr9cYbeoZAM1Npx0i4A+aiA==", - "dev": true, - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/caniuse-lite": { + "version": "1.0.30001636", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz", + "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==", "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - } + ] }, - "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 + "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==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } }, - "chardet": { + "node_modules/chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "chart.js": { - "version": "2.9.4", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", - "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", - "requires": { - "chartjs-color": "^2.1.0", - "moment": "^2.10.2" - } - }, - "chartjs-color": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", - "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", - "requires": { - "chartjs-color-string": "^0.6.0", - "color-convert": "^1.9.3" - } - }, - "chartjs-color-string": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", - "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", - "requires": { - "color-name": "^1.0.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", - "dev": true - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "requires": { + "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", - "fsevents": "~2.3.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, - "dependencies": { - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "optional": true - } + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cjs-module-lexer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", - "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", - "dev": true + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } }, - "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==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } + "node_modules/ci-info": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.1.tgz", + "integrity": "sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" } + ], + "engines": { + "node": ">=8" } }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", "dev": true, - "requires": { + "dependencies": { "source-map": "~0.6.0" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "engines": { + "node": ">= 10.0" } }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-cursor": { + "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==", "dev": true, - "requires": { + "dependencies": { "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" } }, - "cli-spinners": { + "node_modules/cli-spinners": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "cli-width": { + "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - } - } + "engines": { + "node": ">= 10" } }, - "clone": { + "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "clone-deep": { + "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==", "dev": true, - "requires": { + "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "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 - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color-convert": { + "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==", - "requires": { - "color-name": "1.1.3" - }, + "dev": true, "dependencies": { - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - } + "color-name": "1.1.3" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "colord": { + "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, - "colorette": { + "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "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==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true + "node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } }, - "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==", + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", "dev": true }, - "compress-commons": { + "node_modules/compress-commons": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", "dev": true, - "requires": { + "dependencies": { "buffer-crc32": "^0.2.13", "crc32-stream": "^4.0.2", "normalize-path": "^3.0.0", "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" } }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "dependencies": { "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -6092,736 +4243,411 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, - "dependencies": { - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "engines": { + "node": ">= 0.8.0" } }, - "compression-webpack-plugin": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-9.2.0.tgz", - "integrity": "sha512-R/Oi+2+UHotGfu72fJiRoVpuRifZT0tTC6UqFD/DUo+mv8dbOow9rVOuTvDv5nPPm3GZhHL/fKkwxwIHnJ8Nyw==", + "node_modules/compression-webpack-plugin": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-10.0.0.tgz", + "integrity": "sha512-wLXLIBwpul/ALcm7Aj+69X0pYT3BYt6DdPn3qrgBIh9YejV9Bju9ShhlAsjujLyWMo6SAweFIWaUoFmXZNuNrg==", "dev": true, - "requires": { + "dependencies": { "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concurrently": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", - "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, - "requires": { - "chalk": "^2.4.2", - "date-fns": "^2.0.1", - "lodash": "^4.17.15", - "read-pkg": "^4.0.1", - "rxjs": "^6.5.2", - "spawn-command": "^0.0.2-1", - "supports-color": "^6.1.0", - "tree-kill": "^1.2.2", - "yargs": "^13.3.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "dependencies": { - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "yargs": { - "version": "13.3.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.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": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - } - } - }, - "condense-newlines": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/condense-newlines/-/condense-newlines-0.2.1.tgz", - "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-whitespace": "^0.3.0", - "kind-of": "^3.0.2" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "engines": { + "node": ">= 0.8" } }, - "config-chain": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", - "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "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==", "dev": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "dependencies": { + "ms": "2.0.0" } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "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==", "dev": true }, - "contains-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", - "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "node_modules/compression/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==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "content-disposition": { + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "5.2.1" }, - "dependencies": { - "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==", - "dev": true - } + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, - "requires": { - "safe-buffer": "~5.1.1" + "engines": { + "node": ">= 0.6" } }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "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 }, - "cookie-signature": { + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "node_modules/copy-webpack-plugin": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, - "requires": { - "fast-glob": "^3.2.7", + "dependencies": { + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/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, "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "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, - "requires": { - "is-glob": "^4.0.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - } + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" } }, - "core-js": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.36.1.tgz", - "integrity": "sha512-BTvUrwxVBezj5SZ3f10ImnX2oRByMxql3EimVqMysepbC9EeMUOpLwdy6Eoili2x6E4kf+ZUB5k/+Jv55alPfA==", - "dev": true + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-js-compat": { - "version": "3.36.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.1.tgz", - "integrity": "sha512-Dk997v9ZCt3X/npqzyGdTlq6t7lDBhZwGvV94PKzDArjp7BTRm7WlDAXYd/OWdeFHO8OChQYRJNJvUCqCbrtKA==", + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.23.0" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "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==", "dev": true }, - "cosmiconfig": { + "node_modules/cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, - "requires": { + "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.7.2" }, - "dependencies": { - "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, - "requires": { - "@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" } }, - "crc-32": { + "node_modules/crc-32": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "dev": true + "dev": true, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } }, - "crc32-stream": { + "node_modules/crc32-stream": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", "dev": true, - "requires": { + "dependencies": { "crc-32": "^1.2.0", "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" } }, - "cross-spawn": { + "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, - "requires": { + "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" - } - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "engines": { + "node": ">= 8" } }, - "css-declaration-sorter": { + "node_modules/css-declaration-sorter": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } }, - "css-loader": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.6.tgz", - "integrity": "sha512-0wyN5vXMQZu6BvjbrPdUJvkCzGEO24HC7IS7nW4llc6BBFC+zwR9CKtYGv63Puzsg10L/o12inMY5/2ByzfD6w==", + "node_modules/css-loader": { + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.1.0", - "loader-utils": "^2.0.0", - "postcss": "^8.2.15", + "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.1.0", - "schema-utils": "^3.0.0", - "semver": "^7.3.5" - }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "node_modules/css-minimizer-webpack-plugin": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", "dev": true, - "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", + "dependencies": { + "cssnano": "^5.1.8", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "@swc/css": { + "optional": true }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } + "clean-css": { + "optional": true }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } + "csso": { + "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "esbuild": { + "optional": true }, - "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, - "requires": { - "has-flag": "^4.0.0" - } + "lightningcss": { + "optional": true } } }, - "css-select": { + "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, - "requires": { + "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.0.1", "domhandler": "^4.3.1", "domutils": "^2.8.0", "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "css-tree": { + "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "dev": true, - "requires": { + "dependencies": { "mdn-data": "2.0.14", "source-map": "^0.6.1" }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "engines": { + "node": ">=8.0.0" } }, - "css-what": { + "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } }, - "cssesc": { + "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", + "node_modules/cssnano": { + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "dev": true, - "requires": { - "cssnano-preset-default": "^5.1.12", + "dependencies": { + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "cssnano-preset-default": { + "node_modules/cssnano-preset-default": { "version": "5.2.14", "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", "dev": true, - "requires": { + "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", @@ -6851,2109 +4677,1714 @@ "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "cssnano-utils": { + "node_modules/cssnano-utils": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "csso": { + "node_modules/csso": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "dev": true, - "requires": { + "dependencies": { "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" } }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, - "requires": { - "cssom": "~0.3.6" - }, "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "date-fns": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.17.0.tgz", - "integrity": "sha512-ZEhqxUtEZeGgg9eHNSOAJ8O9xqSgiJdrL0lzSSfMF54x6KXWJiOH/xntSJ9YomJPrYH/p08t6gWjGWq1SDJlSA==", - "dev": true - }, - "deasync": { - "version": "0.1.28", - "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.28.tgz", - "integrity": "sha512-QqLF6inIDwiATrfROIyQtwOQxjZuek13WRYZ7donU5wJPLoP67MnYxA6QtqdvdBy2mMqv5m3UefBVdJjvevOYg==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, - "requires": { - "bindings": "^1.5.0", - "node-addon-api": "^1.7.1" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, - "requires": { - "ms": "2.1.2" + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "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==", + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true }, - "deep-eql": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", - "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", - "dev": true, - "requires": { - "type-detect": "^4.0.0" - } - }, - "deep-equal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz", - "integrity": "sha512-5tdhKF6DbU7iIzrIOa1AOUt39ZRm13cmL1cGEh//aqR8x9+tNfbywRf0n5FD/18OKMdo7DNEtrX2t22ZAkI+eg==", + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dev": true, - "requires": { - "is-arguments": "^1.1.1", - "is-date-object": "^1.0.5", - "is-regex": "^1.1.4", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.5.1" - }, "dependencies": { - "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, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true } } }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "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 }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "default-gateway": { + "node_modules/default-gateway": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, - "requires": { + "dependencies": { "execa": "^5.0.0" }, - "dependencies": { - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "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, - "requires": { - "path-key": "^3.0.0" - } - } + "engines": { + "node": ">= 10" } }, - "defaults": { + "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==", "dev": true, - "requires": { + "dependencies": { "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "define-data-property": { + "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, - "requires": { + "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "define-lazy-prop": { + "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { - "object-keys": "^1.0.12" + "engines": { + "node": ">=8" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, - "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, "dependencies": { - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "del": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", - "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", - "dev": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, - "dependencies": { - "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 - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "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": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", - "dev": true + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "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 + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, - "detect-node": { + "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "dev": true - }, - "dir-glob": { + "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, - "requires": { + "dependencies": { "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "dns-packet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", - "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", - "dev": true, - "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, - "requires": { - "buffer-indexof": "^1.0.0" + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" } }, - "doctrine": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", - "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, - "requires": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" } }, - "dom-converter": { + "node_modules/dom-converter": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, - "requires": { + "dependencies": { "utila": "~0.4" } }, - "dom-event-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dom-event-types/-/dom-event-types-1.1.0.tgz", - "integrity": "sha512-jNCX+uNJ3v38BKvPbpki6j5ItVlnSqVV6vDWGS6rExzCMjsc39frLjm1n91o6YaKK6AZl0wLloItW6C6mr61BQ==", - "dev": true - }, - "dom-serializer": { + "node_modules/dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, - "requires": { + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.2.0", "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "domelementtype": { + "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" } - } + ] }, - "domhandler": { + "node_modules/domhandler": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, - "requires": { + "dependencies": { "domelementtype": "^2.2.0" - } + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } }, - "domutils": { + "node_modules/domutils": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, - "requires": { + "dependencies": { "dom-serializer": "^1.0.1", "domelementtype": "^2.2.0", "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "dot-case": { + "node_modules/dot-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, - "requires": { + "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } } }, - "dot-prop": { + "node_modules/dot-prop": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", "dev": true, - "requires": { + "dependencies": { "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "editorconfig": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", - "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "lru-cache": "^4.1.5", - "semver": "^5.6.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - } - } - }, - "ee-first": { + "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==", "dev": true }, - "ejs": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.4.tgz", - "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.217", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.217.tgz", - "integrity": "sha512-iX8GbAMij7cOtJPZo02CClpaPMWjvN5meqXiJXkBgwvraNWTNH0Z7F9tkznI34JRPtWASoPM/xWamq3oNb49GA==", + "node_modules/electron-to-chromium": { + "version": "1.4.807", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz", + "integrity": "sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A==", "dev": true }, - "elementtree": { + "node_modules/elementtree": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", "dev": true, - "requires": { + "dependencies": { "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" } }, - "emittery": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", - "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", - "dev": true - }, - "emoji-regex": { + "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==", "dev": true }, - "emojis-list": { + "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "end-of-stream": { + "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==", "dev": true, - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "node_modules/enhanced-resolve": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", + "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" } }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "error-ex": { + "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==", "dev": true, - "requires": { + "dependencies": { "is-arrayish": "^0.2.1" } }, - "error-stack-parser": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", - "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "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==", "dev": true, - "requires": { - "stackframe": "^1.1.1" + "dependencies": { + "stackframe": "^1.3.4" } }, - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, - "requires": { - "call-bind": "^1.0.2", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - } - }, - "es-define-property": { + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.2.4" }, - "dependencies": { - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "engines": { + "node": ">= 0.4" } }, - "es-errors": { + "node_modules/es-errors": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "es-module-lexer": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.2.tgz", - "integrity": "sha512-7nOqkomXZEaxUDJw21XZNtRk739QvrPSoZoRtbsEfcii00vdzZUh6zh1CQwHhrib8MdEtJfv5rJiGeb4KuV/vw==", + "node_modules/es-module-lexer": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.3.tgz", + "integrity": "sha512-i1gCgmR9dCl6Vil6UKPI/trA69s08g/syhiDK9TG0Nf1RJjjFI+AzoWW7sPufzkgYAn861skuCwJa0pIIHYxvg==", "dev": true }, - "es-to-primitive": { + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "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, - "requires": { + "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" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "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==", "dev": true }, - "escape-string-regexp": { + "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "engines": { + "node": ">=0.8.0" } }, - "eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "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", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", "text-table": "^0.2.0" }, - "dependencies": { - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - }, - "dependencies": { - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - } - } - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - } - } + "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-standard": { + "version": "17.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz", + "integrity": "sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" }, - "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "dependencies": { - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } + { + "type": "patreon", + "url": "https://www.patreon.com/feross" }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } + { + "type": "consulting", + "url": "https://feross.org/support" } + ], + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.1", + "eslint-plugin-import": "^2.25.2", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", + "eslint-plugin-promise": "^6.0.0" } }, - "eslint-config-standard": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz", - "integrity": "sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ==", - "dev": true - }, - "eslint-import-resolver-node": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", - "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, - "requires": { - "debug": "^2.6.9", - "resolve": "^1.13.1" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "eslint-loader": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.2.1.tgz", - "integrity": "sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg==", - "dev": true, - "requires": { - "loader-fs-cache": "^1.0.0", - "loader-utils": "^1.0.2", - "object-assign": "^4.0.1", - "object-hash": "^1.1.4", - "rimraf": "^2.6.1" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" } }, - "eslint-module-utils": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", - "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, - "requires": { - "debug": "^2.6.9", - "pkg-dir": "^2.0.0" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true } } }, - "eslint-plugin-es": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-1.4.1.tgz", - "integrity": "sha512-5fa/gR2yR3NxQf+UXkeLeP8FBBl6tSgdrAz1+cF84v1FMM4twGwQoqTnn+QxFLcPOrF4pdKEJKDB/q9GoyJrCA==", - "dev": true, - "requires": { - "eslint-utils": "^1.4.2", - "regexpp": "^2.0.1" - } - }, - "eslint-plugin-import": { - "version": "2.22.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz", - "integrity": "sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw==", - "dev": true, - "requires": { - "array-includes": "^3.1.1", - "array.prototype.flat": "^1.2.3", - "contains-path": "^0.1.0", - "debug": "^2.6.9", - "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.4", - "eslint-module-utils": "^2.6.0", - "has": "^1.0.3", - "minimatch": "^3.0.4", - "object.values": "^1.1.1", - "read-pkg-up": "^2.0.0", - "resolve": "^1.17.0", - "tsconfig-paths": "^3.9.0" - }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true, - "requires": { - "pify": "^2.0.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true, - "requires": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - } - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - } - } + "ms": "^2.1.1" } }, - "eslint-plugin-jest": { - "version": "23.20.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz", - "integrity": "sha512-+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==", + "node_modules/eslint-plugin-es": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz", + "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==", "dev": true, - "requires": { - "@typescript-eslint/experimental-utils": "^2.5.0" + "dependencies": { + "eslint-utils": "^2.0.0", + "regexpp": "^3.0.0" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=4.19.1" } }, - "eslint-plugin-node": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-8.0.1.tgz", - "integrity": "sha512-ZjOjbjEi6jd82rIpFSgagv4CHWzG9xsQAVp1ZPlhRnnYxcTgENUVBvhYmkQ7GvT1QFijUSo69RaiOJKhMu6i8w==", + "node_modules/eslint-plugin-es/node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", "dev": true, - "requires": { - "eslint-plugin-es": "^1.3.1", - "eslint-utils": "^1.3.1", - "ignore": "^5.0.2", - "minimatch": "^3.0.4", - "resolve": "^1.8.1", - "semver": "^5.5.0" - }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "eslint-plugin-promise": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz", - "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==", - "dev": true - }, - "eslint-plugin-standard": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz", - "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==", - "dev": true - }, - "eslint-plugin-vue": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", - "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", + "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", "dev": true, - "requires": { - "vue-eslint-parser": "^5.0.0" + "engines": { + "node": ">=4" } }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, - "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" + "dependencies": { + "ms": "^2.1.1" } }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } }, - "espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "node_modules/eslint-plugin-n": { + "version": "15.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-15.7.0.tgz", + "integrity": "sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==", "dev": true, - "requires": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "dependencies": { + "builtins": "^5.0.1", + "eslint-plugin-es": "^4.1.0", + "eslint-utils": "^3.0.0", + "ignore": "^5.1.1", + "is-core-module": "^2.11.0", + "minimatch": "^3.1.2", + "resolve": "^1.22.1", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=7.0.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "node_modules/eslint-plugin-n/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "node_modules/eslint-plugin-promise": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz", + "integrity": "sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA==", "dev": true, - "requires": { - "estraverse": "^5.1.0" + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0" } }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/eslint-plugin-vue": { + "version": "9.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz", + "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==", "dev": true, - "requires": { - "estraverse": "^5.2.0" + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "globals": "^13.24.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.1.1", + "postcss-selector-parser": "^6.0.15", + "semver": "^7.6.0", + "vue-eslint-parser": "^9.4.2", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-vue/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "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, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dev": true, + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "esutils": { + "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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/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, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.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/espree/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/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, + "engines": { + "node": ">=4.0" + } + }, + "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, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { + "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "exec-sh": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", - "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", - "dev": true - }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">=0.8.x" } }, - "expect": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", - "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-styles": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-regex-util": "^26.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - } + "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" } }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", "dev": true, - "requires": { - "accepts": "~1.3.7", + "dependencies": { + "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.1", + "body-parser": "1.20.2", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.1", + "cookie": "0.6.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.6", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "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==", - "dev": true - } + "engines": { + "node": ">= 0.10.0" } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" } }, - "external-editor": { + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, - "requires": { + "dependencies": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "extract-from-css": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/extract-from-css/-/extract-from-css-0.4.4.tgz", - "integrity": "sha1-HqffLnx8brmSL6COitrqSG9vj5I=", - "dev": true, - "requires": { - "css": "^2.1.0" - } - }, - "fast-deep-equal": { + "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==", "dev": true }, - "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "requires": { + "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" } }, - "fast-json-stable-stringify": { + "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 }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "fastq": { + "node_modules/fastq": { "version": "1.17.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, - "requires": { + "dependencies": { "reusify": "^1.0.4" } }, - "faye-websocket": { + "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figures": { + "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, - "requires": { + "dependencies": { "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "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, - "requires": { - "flat-cache": "^2.0.1" + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "file-loader": { + "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "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==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "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==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } + "ms": "2.0.0" } }, - "find-babel-config": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.1.tgz", - "integrity": "sha512-mP4klVCAYHgRyY2TNSfgk8RSVvpFx5Ug0p9Bca0c5lTk1lUS5p/UcCqvIUdSPtUJgf2syBsdPGTKqTd5NjC5gg==", + "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==", + "dev": true + }, + "node_modules/find-babel-config": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-2.1.1.tgz", + "integrity": "sha512-5Ji+EAysHGe1OipH7GN4qDjok5Z1uw5KAwDCbicU/4wyTZY7CqOCzcWbG7J5ad9mazq67k89fXlbc1MuIfl9uA==", "dev": true, - "requires": { - "json5": "^2.2.3", - "path-exists": "^3.0.0" - }, "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } + "json5": "^2.2.3", + "path-exists": "^4.0.0" } }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "node_modules/find-cache-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "dependencies": { + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "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, - "requires": { - "locate-path": "^5.0.0", + "dependencies": { + "locate-path": "^6.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", - "dev": true, - "requires": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" - }, - "dependencies": { - "rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "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, + "dependencies": { + "is-callable": "^1.1.3" + } }, - "fork-ts-checker-webpack-plugin": { + "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz", "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.8.3", "@types/json-schema": "^7.0.5", "chalk": "^4.1.0", @@ -8968,501 +6399,694 @@ "semver": "^7.3.2", "tapable": "^1.0.0" }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "schema-utils": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", - "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.4", - "ajv": "^6.12.2", - "ajv-keywords": "^3.4.1" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", "dev": true, - "requires": { + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" } }, - "forwarded": { + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fraction.js": { + "node_modules/fraction.js": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", - "dev": true - }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, - "requires": { - "map-cache": "^0.2.2" + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fs-constants": { + "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" } }, - "fs-monkey": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", - "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==", + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==", "dev": true }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "fsevents": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", - "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "optional": true + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "functions-have-names": { + "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 + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "gensync": { + "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==", - "dev": true - }, - "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==", - "dev": true - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "engines": { + "node": ">=6.9.0" } }, - "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 + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "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, - "requires": { - "pump": "^3.0.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "requires": { + "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "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, - "requires": { + "dependencies": { "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" } }, - "glob-to-regexp": { + "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "globals": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "node_modules/globby": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, - "requires": { - "array-union": "^3.0.1", + "dependencies": { "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "gopd": { + "node_modules/gopd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.3" }, - "dependencies": { - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "growly": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", - "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", - "dev": true, - "optional": true + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true }, - "gzip-size": { + "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, - "requires": { + "dependencies": { "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "handle-thing": { + "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "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, - "requires": { - "ansi-regex": "^2.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "has-property-descriptors": { + "node_modules/has-property-descriptors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, - "requires": { + "dependencies": { "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-proto": { + "node_modules/has-proto": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-symbols": { + "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 + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - } - }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "hash-sum": { + "node_modules/hash-sum": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==", "dev": true }, - "hasown": { + "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.2" }, - "dependencies": { - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - } + "engines": { + "node": ">= 0.4" } }, - "he": { + "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true + "dev": true, + "bin": { + "he": "bin/he" + } }, - "hpack.js": { + "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" - }, + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/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==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "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" - } - } + "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" } }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "node_modules/hpack.js/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==", + "dev": true + }, + "node_modules/hpack.js/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==", "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "html-entities": { + "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] }, - "html-escaper": { + "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 }, - "html-minifier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", - "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", + "node_modules/html-minifier-terser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz", + "integrity": "sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA==", "dev": true, - "requires": { - "camel-case": "^3.0.0", - "clean-css": "^4.2.1", - "commander": "^2.19.0", - "he": "^1.2.0", - "param-case": "^2.1.1", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "~5.3.2", + "commander": "^10.0.0", + "entities": "^4.4.0", + "param-case": "^3.0.4", "relateurl": "^0.2.7", - "uglify-js": "^3.5.1" + "terser": "^5.15.1" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dev": true, + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" } }, - "html-minifier-terser": { + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", "dev": true, - "requires": { + "dependencies": { "camel-case": "^4.1.2", "clean-css": "^5.2.2", "commander": "^8.3.0", @@ -9471,242 +7095,223 @@ "relateurl": "^0.2.7", "terser": "^5.10.0" }, - "dependencies": { - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "clean-css": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", - "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" + "bin": { + "html-minifier-terser": "cli.js" }, - "dependencies": { - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } + "engines": { + "node": ">=12" } }, - "htmlparser2": { + "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", "dev": true, - "requires": { + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { "domelementtype": "^2.0.1", "domhandler": "^4.0.0", "domutils": "^2.5.2", "entities": "^2.0.0" } }, - "http-deceiver": { + "node_modules/htmlparser2/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "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==", "dev": true, - "requires": { - "depd": "~1.1.2", + "dependencies": { + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" } }, - "http-parser-js": { + "node_modules/http-parser-js": { "version": "0.5.8", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "http-proxy-middleware": { + "node_modules/http-proxy-middleware": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, - "requires": { + "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", "is-glob": "^4.0.1", "is-plain-obj": "^3.0.0", "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "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, - "requires": { - "agent-base": "6", - "debug": "4" + "engines": { + "node": ">=10.17.0" } }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", - "dev": true - }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-utils": { + "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "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" + } + ] }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", + "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", "dev": true }, - "import-fresh": { + "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, - "requires": { + "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "imurmurhash": { + "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } }, - "inflight": { + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "inquirer": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", - "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "node_modules/inquirer": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.2.tgz", + "integrity": "sha512-pG7I/si6K/0X7p1qU+rfWnpTE1UIkTONN1wxtzh0d+dHXtT/JG6qBgLxoyHVsQa8cFABxAPh0pD6uUUHiAoaow==", "dev": true, - "requires": { + "dependencies": { "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", @@ -9717,2203 +7322,1638 @@ "mute-stream": "0.0.8", "ora": "^5.4.1", "run-async": "^2.4.0", - "rxjs": "^7.2.0", + "rxjs": "^7.5.5", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "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==", - "dev": true - }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "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==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "loose-envify": "^1.0.0" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "ip": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", - "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", - "dev": true + "node_modules/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "node_modules/inquirer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "kind-of": "^3.0.2" + "dependencies": { + "has-flag": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-arrayish": { + "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "is-binary-path": { + "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, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "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, - "requires": { - "ci-info": "^2.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "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, - "requires": { - "has": "^1.0.3" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true - }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, - "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, "dependencies": { - "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==", - "dev": true - } + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true + "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, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "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, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "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 + "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==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-glob": { + "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, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-interactive": { + "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==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "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 - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - }, - "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==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "engines": { + "node": ">=8" } }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-string": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", - "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", - "dev": true - }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "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==", "dev": true, - "requires": { - "has-symbols": "^1.0.1" + "engines": { + "node": ">=0.12.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "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==", - "dev": true - }, - "is-whitespace": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-whitespace/-/is-whitespace-0.3.0.tgz", - "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", - "dev": true - }, - "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==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "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, - "requires": { - "is-docker": "^2.0.0" + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "isbinaryfile": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.8.tgz", - "integrity": "sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w==", - "dev": true - }, - "isexe": { + "node_modules/is-obj": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=8" + } + }, + "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, + "engines": { + "node": ">=8" } }, - "istanbul-lib-report": { + "node_modules/is-plain-obj": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "engines": { + "node": ">=10" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "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==", "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "istanbul-reports": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "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, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "javascript-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", - "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", - "dev": true + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "jest": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", - "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "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, - "requires": { - "@jest/core": "^26.6.3", - "import-local": "^3.0.2", - "jest-cli": "^26.6.3" + "engines": { + "node": ">=8" }, - "dependencies": { - "import-local": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "jest-cli": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", - "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", - "dev": true, - "requires": { - "@jest/core": "^26.6.3", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "is-ci": "^2.0.0", - "jest-config": "^26.6.3", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "prompts": "^2.0.1", - "yargs": "^15.4.1" - } - }, - "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, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "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 - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "jest-changed-files": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", - "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "execa": "^4.0.0", - "throat": "^5.0.0" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "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, - "requires": { - "path-key": "^3.0.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, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-config": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", - "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "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, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^26.6.3", - "@jest/types": "^26.6.2", - "babel-jest": "^26.6.3", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-environment-jsdom": "^26.6.2", - "jest-environment-node": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-jasmine2": "^26.6.3", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2" - } - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-docblock": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", - "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, - "requires": { - "detect-newline": "^3.0.0" + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-each": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", - "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "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==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "jest-get-type": "^26.3.0", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "jest-environment-jsdom": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", - "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "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, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2", - "jsdom": "^16.4.0" + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "jest-environment-node": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", - "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "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, - "requires": { - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "jest-mock": "^26.6.2", - "jest-util": "^26.6.2" + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true }, - "jest-haste-map": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", - "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "node_modules/isbinaryfile": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", + "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.1.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^26.0.0", - "jest-serializer": "^26.6.2", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "micromatch": "^4.0.2", - "sane": "^4.0.3", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", - "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^26.6.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "pretty-format": "^26.6.2", - "throat": "^5.0.0" - } - }, - "jest-leak-detector": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", - "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", - "dev": true, - "requires": { - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-matcher-utils": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", - "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" + "engines": { + "node": ">= 18.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" } }, - "jest-message-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", - "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.2", - "pretty-format": "^26.6.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.2" - } + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true }, - "jest-mock": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", - "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*" + "engines": { + "node": ">=0.10.0" } }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true - }, - "jest-regex-util": { - "version": "26.0.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", - "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", "dev": true }, - "jest-resolve": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", - "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^26.6.2", - "read-pkg-up": "^7.0.1", - "resolve": "^1.18.1", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", - "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-snapshot": "^26.6.2" - } - }, - "jest-runner": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", - "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "dependencies": { + "@jest/types": "^29.6.3", "@types/node": "*", "chalk": "^4.0.0", - "emittery": "^0.7.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-docblock": "^26.0.0", - "jest-haste-map": "^26.6.2", - "jest-leak-detector": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "jest-runtime": "^26.6.3", - "jest-util": "^26.6.2", - "jest-worker": "^26.6.2", - "source-map-support": "^0.5.6", - "throat": "^5.0.0" - } - }, - "jest-runtime": { - "version": "26.6.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", - "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", - "dev": true, - "requires": { - "@jest/console": "^26.6.2", - "@jest/environment": "^26.6.2", - "@jest/fake-timers": "^26.6.2", - "@jest/globals": "^26.6.2", - "@jest/source-map": "^26.6.2", - "@jest/test-result": "^26.6.2", - "@jest/transform": "^26.6.2", - "@jest/types": "^26.6.2", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^0.6.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-config": "^26.6.3", - "jest-haste-map": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-mock": "^26.6.2", - "jest-regex-util": "^26.0.0", - "jest-resolve": "^26.6.2", - "jest-snapshot": "^26.6.2", - "jest-util": "^26.6.2", - "jest-validate": "^26.6.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^15.4.1" - } - }, - "jest-serializer": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", - "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" + "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" } }, - "jest-serializer-vue": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/jest-serializer-vue/-/jest-serializer-vue-2.0.2.tgz", - "integrity": "sha1-sjjvKGNX7GtIBCG9RxRQUJh9WbM=", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "pretty": "2.0.0" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "jest-snapshot": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", - "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@babel/types": "^7.0.0", - "@jest/types": "^26.6.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.0.0", - "chalk": "^4.0.0", - "expect": "^26.6.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^26.6.2", - "jest-get-type": "^26.3.0", - "jest-haste-map": "^26.6.2", - "jest-matcher-utils": "^26.6.2", - "jest-message-util": "^26.6.2", - "jest-resolve": "^26.6.2", - "natural-compare": "^1.4.0", - "pretty-format": "^26.6.2", - "semver": "^7.3.2" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "jest-transform-stub": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jest-transform-stub/-/jest-transform-stub-2.0.0.tgz", - "integrity": "sha512-lspHaCRx/mBbnm3h4uMMS3R5aZzMwyNpNIJLXj4cEsV0mIUtS4IjYJLSoyjRCtnxb6RIGJ4NL2quZzfIeNhbkg==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "jest-util": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", - "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^2.0.0", - "micromatch": "^4.0.2" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "@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" - }, "dependencies": { - "camelcase": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "jest-watcher": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", - "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, - "requires": { - "@jest/test-result": "^26.6.2", - "@jest/types": "^26.6.2", + "dependencies": { "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^26.6.2", - "string-length": "^4.0.1" + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "jest-worker": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", - "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "engines": { + "node": ">=8" } }, - "js-beautify": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.5.tgz", - "integrity": "sha512-MsXlH6Z/BiRYSkSRW3clNDqDjSpiSNOiG8xYVUBXt4k0LnGvDhlTGOlHX1VFtAdoLmtwjxMG5qiWKy/g+Ipv5w==", + "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, - "requires": { - "config-chain": "^1.1.12", - "editorconfig": "^0.15.3", - "glob": "^7.1.3", - "mkdirp": "^1.0.4", - "nopt": "^5.0.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "js-tokens": { + "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==", "dev": true }, - "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==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "dev": true - } + "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" } }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "json-parse-even-better-errors": { + "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 }, - "json-schema-traverse": { + "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 }, - "json-stable-stringify-without-jsonify": { + "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": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" } }, - "kind-of": { + "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==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "klona": { + "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 8" + } }, - "launch-editor": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", - "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "node_modules/launch-editor": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", + "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", "dev": true, - "requires": { + "dependencies": { "picocolors": "^1.0.0", "shell-quote": "^1.8.1" } }, - "launch-editor-middleware": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.3.0.tgz", - "integrity": "sha512-GJR64trLdFFwCoL9DMn/d1SZX0OzTDPixu4mcfWTShQ4tIqCHCGvlg9fOEYQXyBlrSMQwylsJfUWncheShfV2w==", + "node_modules/launch-editor-middleware": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor-middleware/-/launch-editor-middleware-2.6.1.tgz", + "integrity": "sha512-Fg/xYhf7ARmRp40n18wIfJyuAMEjXo67Yull7uF7d0OJ3qA4EYJISt1XfPPn69IIJ5jKgQwzcg6DqHYo95LL/g==", "dev": true, - "requires": { - "launch-editor": "^2.3.0" + "dependencies": { + "launch-editor": "^2.6.1" } }, - "lazystream": { + "node_modules/lazystream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, - "requires": { + "dependencies": { "readable-stream": "^2.0.5" }, - "dependencies": { - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "requires": { - "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" - } - } + "engines": { + "node": ">= 0.6.3" } }, - "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==", + "node_modules/lazystream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "node_modules/lazystream/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==", "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "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" } }, - "lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "node_modules/lazystream/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==", "dev": true }, - "lines-and-columns": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", - "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", - "dev": true + "node_modules/lazystream/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "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, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, "dependencies": { - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" } }, - "loader-fs-cache": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", - "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", - "dev": true, - "requires": { - "find-cache-dir": "^0.1.1", - "mkdirp": "^0.5.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" - } - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, - "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } - }, - "pkg-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", - "dev": true, - "requires": { - "find-up": "^1.0.0" - } - } + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" } }, - "loader-runner": { + "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 + }, + "node_modules/loader-runner": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.11.5" + } }, - "loader-utils": { + "node_modules/loader-utils": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", "dev": true, - "requires": { + "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" } }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "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, - "requires": { - "p-locate": "^4.1.0" + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.debounce": { + "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==", "dev": true }, - "lodash.defaults": { + "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", "dev": true }, - "lodash.difference": { + "node_modules/lodash.difference": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", "dev": true }, - "lodash.flatten": { + "node_modules/lodash.flatten": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", "dev": true }, - "lodash.isplainobject": { + "node_modules/lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "dev": true }, - "lodash.memoize": { + "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0", - "lodash.templatesettings": "^4.0.0" - } - }, - "lodash.templatesettings": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", - "dev": true, - "requires": { - "lodash._reinterpolate": "^3.0.0" - } - }, - "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/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 }, - "lodash.truncate": { + "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, - "lodash.union": { + "node_modules/lodash.union": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", "dev": true }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, - "log-symbols": { + "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==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "log-update": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", - "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "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==", + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "lower-case": { + "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "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==", + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "yallist": "^4.0.0" + "engines": { + "node": ">=8" } }, - "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==", + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "semver": "^6.0.0" - }, "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "makeerror": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "node_modules/log-update": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, - "requires": { - "tmpl": "1.0.x" + "dependencies": { + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "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==", "dev": true, - "requires": { - "object-visit": "^1.0.0" + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" } }, - "mdn-data": { + "node_modules/mdn-data": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "dev": true }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "memfs": { + "node_modules/memfs": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", "dev": true, - "requires": { + "dependencies": { "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" } }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "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" - } - } - } - }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, - "merge-stream": { + "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==", "dev": true }, - "merge2": { + "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 + "dev": true, + "engines": { + "node": ">= 8" + } }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, - "requires": { - "braces": "^3.0.2", + "dependencies": { + "braces": "^3.0.3", "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" } }, - "mime": { + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { + "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==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "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==", - "requires": { + "dependencies": { "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mimic-fn": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "mini-css-extract-plugin": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.0.tgz", - "integrity": "sha512-nPFKI7NSy6uONUo9yn2hIfb9vyYvkFu95qki0e21DQ9uaqNKDP15DGpK0KnV6wDroWxPHtExrdEwx/yDQ8nVRw==", + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - } + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimatch": { + "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true - }, - "moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==" + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "mrmime": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", - "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true + "node_modules/mrmime": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz", + "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "ms": { + "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==", "dev": true }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, - "requires": { - "dns-packet": "^1.3.1", + "dependencies": { + "dns-packet": "^5.2.2", "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", - "dev": true - }, - "mute-stream": { + "node_modules/mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "nanoid": { + "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "requires": { - "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" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "natural-compare": { + "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "negotiator": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "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==", "dev": true }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true - }, - "node-cache": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-4.2.1.tgz", - "integrity": "sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A==", + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", "dev": true, - "requires": { - "clone": "2.x", - "lodash": "^4.17.15" - }, "dependencies": { - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", - "dev": true - } + "lower-case": "^2.0.2", + "tslib": "^2.0.3" } }, - "node-forge": { + "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.13.0" + } }, - "node-loader": { + "node_modules/node-loader": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/node-loader/-/node-loader-2.0.0.tgz", "integrity": "sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node-modules-regexp": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-notifier": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", - "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", - "dev": true, - "optional": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "normalize-path": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-range": { + "node_modules/normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "normalize-url": { + "node_modules/normalize-url": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, - "requires": { - "path-key": "^2.0.0" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, "dependencies": { - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - } + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "nth-check": { + "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, - "requires": { + "dependencies": { "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "null-loader": { + "node_modules/null-loader": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/null-loader/-/null-loader-4.0.1.tgz", "integrity": "sha512-pxqVbi4U6N26lq+LmgIbB5XATP0VdZKOG25DhHi8btMmJJefGArFyDg1yc4U3hWCJbMqSrw0qyrz1UQX+qYXqg==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0" }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "node_modules/null-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "object-hash": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", - "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", - "dev": true - }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "object-is": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, - "requires": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "dependencies": { - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "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 - }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, - "requires": { - "isobject": "^3.0.0" + "engines": { + "node": ">= 0.4" } }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, - "requires": { - "isobject": "^3.0.1" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "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==", + "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==", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "onetime": { + "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "requires": { + "dependencies": { "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "open": { + "node_modules/open": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, - "requires": { + "dependencies": { "define-lazy-prop": "^2.0.0", "is-docker": "^2.1.1", "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "opener": { + "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "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.5" + }, + "engines": { + "node": ">= 0.8.0" } }, - "ora": { + "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==", "dev": true, - "requires": { + "dependencies": { "bl": "^4.1.0", "chalk": "^4.1.0", "cli-cursor": "^3.1.0", @@ -11923,1461 +8963,1369 @@ "log-symbols": "^4.1.0", "strip-ansi": "^6.0.0", "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } }, - "ouch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ouch/-/ouch-2.0.0.tgz", - "integrity": "sha512-kaAZtzpV3iSDdGHQKz7/dRVWd7nXNO1OUNHNtZIW9ryoBvb6y8QtYfpWdcBUFgBzMbMYVA/PGPeoeJU95VHK7Q==", + "node_modules/ora/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@positron/stack-trace": "1.0.0", - "ejs": "^2.3.1", - "escape-html": "^1.0.1", - "lodash": "^4.17.10" + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "owasp-password-strength-test": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/owasp-password-strength-test/-/owasp-password-strength-test-1.3.0.tgz", - "integrity": "sha1-T2KeQpA+j20nmyMNZXq2HljkSxI=" + "node_modules/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "p-each-series": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "node_modules/ora/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/ora/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "p-try": "^2.0.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "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==", + "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==", "dev": true, - "requires": { - "p-limit": "^2.2.0" + "engines": { + "node": ">=0.10.0" } }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, - "requires": { - "aggregate-error": "^3.0.0" + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-retry": { + "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, - "requires": { + "dependencies": { "@types/retry": "0.12.0", "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" } }, - "p-try": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", "dev": true, - "requires": { - "no-case": "^2.2.0" + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, - "parent-module": { + "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, - "requires": { + "dependencies": { "callsites": "^3.0.0" }, - "dependencies": { - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "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, - "requires": { + "dependencies": { + "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.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" } }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "pascal-case": { + "node_modules/pascal-case": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, - "requires": { + "dependencies": { "no-case": "^3.0.4", "tslib": "^2.0.3" - }, - "dependencies": { - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true - } } }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-exists": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-key": { + "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 + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-parse": { + "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==", "dev": true }, - "path-to-regexp": { + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, - "path-type": { + "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 - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true + "node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "node_modules/pkg-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", "dev": true, - "requires": { - "pinkie": "^2.0.0" + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "pirates": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", + "node_modules/pkg-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/pkg-dir/node_modules/yocto-queue": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz", + "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==", "dev": true, - "requires": { - "find-up": "^4.0.0" + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "pkg-up": { + "node_modules/pkg-up": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, - "requires": { + "dependencies": { "find-up": "^3.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/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==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/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==", + "dev": true, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "portfinder": { - "version": "1.0.32", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", - "integrity": "sha512-on2ZJVVDXRADWE6jnQaX0ioEylzgBpQk8r55NE4wjXW1ZxO+BgDlY6DXwj20i0V8eB4SenDQ00WEaxfiIQPcxg==", + "node_modules/pkg-up/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==", "dev": true, - "requires": { - "async": "^2.6.4", - "debug": "^3.2.7", - "mkdirp": "^0.5.6" + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/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==", + "dev": true, "dependencies": { - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - } + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "node_modules/pkg-up/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "postcss": { + "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", - "dev": true, - "requires": { + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" } }, - "postcss-calc": { + "node_modules/postcss-calc": { "version": "8.2.4", "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.9", "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" } }, - "postcss-colormin": { + "node_modules/postcss-colormin": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-convert-values": { + "node_modules/postcss-convert-values": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-discard-comments": { + "node_modules/postcss-discard-comments": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-duplicates": { + "node_modules/postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-empty": { + "node_modules/postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-discard-overridden": { + "node_modules/postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-loader": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", - "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "node_modules/postcss-loader": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", + "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", "dev": true, - "requires": { + "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", - "semver": "^7.3.5" - }, - "dependencies": { - "cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", - "dev": true, - "requires": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" - } - }, - "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, - "requires": { - "@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" - } - } + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "postcss-merge-longhand": { + "node_modules/postcss-merge-longhand": { "version": "5.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-merge-rules": { + "node_modules/postcss-merge-rules": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-font-values": { + "node_modules/postcss-minify-font-values": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-gradients": { + "node_modules/postcss-minify-gradients": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, - "requires": { + "dependencies": { "colord": "^2.9.1", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-params": { + "node_modules/postcss-minify-params": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-minify-selectors": { + "node_modules/postcss-minify-selectors": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-local-by-default": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.4.tgz", - "integrity": "sha512-L4QzMnOdVwRm1Qb8m4x8jsZzKAaPAgrUF1r/hjDR2Xj7R+8Zsf97jAlSQzWtKx5YNiNGN8QxmPFIc/sh+RQl+Q==", + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-scope": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.1.tgz", - "integrity": "sha512-uZgqzdTleelWjzJY+Fhti6F3C9iF1JR/dODLs/JDefozYcKTBCdD8BIl6nNPbTbcLnGrk56hzwZC2DaGNvYjzA==", + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-values": { + "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-normalize-charset": { + "node_modules/postcss-normalize-charset": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } }, - "postcss-normalize-display-values": { + "node_modules/postcss-normalize-display-values": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-positions": { + "node_modules/postcss-normalize-positions": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-repeat-style": { + "node_modules/postcss-normalize-repeat-style": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-string": { + "node_modules/postcss-normalize-string": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-timing-functions": { + "node_modules/postcss-normalize-timing-functions": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-unicode": { + "node_modules/postcss-normalize-unicode": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-url": { + "node_modules/postcss-normalize-url": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, - "requires": { + "dependencies": { "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-normalize-whitespace": { + "node_modules/postcss-normalize-whitespace": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-ordered-values": { + "node_modules/postcss-ordered-values": { "version": "5.1.3", "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, - "requires": { + "dependencies": { "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-reduce-initial": { + "node_modules/postcss-reduce-initial": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-reduce-transforms": { + "node_modules/postcss-reduce-transforms": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-rtlcss": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-3.5.2.tgz", - "integrity": "sha512-pB61iOFAIOxtE3DnzMZ627jjVTBoUfLUZv8Syfv5F0/H/YYwG30TyNfW0v6L958xqkGRTpBqLdlejh9pzRnyHA==", + "node_modules/postcss-rtlcss": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-rtlcss/-/postcss-rtlcss-4.0.1.tgz", + "integrity": "sha512-x92gkPeo4Mt9K6oP02EghAkQkq3/dr19SWGQZdEOWfmFnjoUvET5+aoTr85eM+JH+hupSSXZhc+kqVrvAJrkvg==", "dev": true, - "requires": { - "rtlcss": "^3.5.0" + "dependencies": { + "rtlcss": "4.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" } }, - "postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-svgo": { + "node_modules/postcss-svgo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, - "requires": { + "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-unique-selectors": { + "node_modules/postcss-unique-selectors": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pretty/-/pretty-2.0.0.tgz", - "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", - "dev": true, - "requires": { - "condense-newlines": "^0.2.1", - "extend-shallow": "^2.0.1", - "js-beautify": "^1.6.12" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.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, + "engines": { + "node": ">= 0.8.0" } }, - "pretty-error": { + "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, - "requires": { + "dependencies": { "lodash": "^4.17.20", "renderkid": "^3.0.0" } }, - "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==", - "dev": true, - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - } - } - }, - "process-nextick-args": { + "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==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "promise": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", - "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", - "dev": true, - "requires": { - "asap": "~2.0.6" - } - }, - "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", - "dev": true - }, - "proxy-addr": { + "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "proxy-from-env": { + "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "engines": { + "node": ">=6" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "quasar": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/quasar/-/quasar-1.22.10.tgz", - "integrity": "sha512-AMZ4SZ9i8+b5wdphzmgy60qYFkdTK/dB8KNgdqJ2t8+Hnnhi1IncldEFQlcqLT9diyg5RHgAHAW4GoAZMswgOw==" + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "node_modules/quasar": { + "version": "2.16.4", + "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.16.4.tgz", + "integrity": "sha512-ICntco9uZ4PeyLgzVckjK3fsS+LG7+rOUmRyR7Gq3XpfeCADs1edIRjlxsPpWBBJvK/9AHLGPO6XNmnJmdJm0A==", + "engines": { + "node": ">= 10.18.1", + "npm": ">= 6.13.4", + "yarn": ">= 1.21.1" + }, + "funding": { + "type": "github", + "url": "https://donate.quasar.dev" + } }, - "queue-microtask": { + "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 + "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" + } + ] }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "range-parser": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "react-is": { - "version": "17.0.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", - "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", - "dev": true - }, - "read-pkg": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", - "dev": true, - "requires": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - } - }, - "read-pkg-up": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", - "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", - "dev": true, - "requires": { - "find-up": "^4.1.0", - "read-pkg": "^5.2.0", - "type-fest": "^0.8.1" - }, - "dependencies": { - "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, - "requires": { - "@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" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "dev": true, - "requires": { - "@types/normalize-package-data": "^2.4.0", - "normalize-package-data": "^2.5.0", - "parse-json": "^5.0.0", - "type-fest": "^0.6.0" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - } - } - }, - "readable-stream": { + "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==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readdir-glob": { + "node_modules/readdir-glob": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, - "requires": { + "dependencies": { "minimatch": "^5.1.0" - }, + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } + "balanced-match": "^1.0.0" } }, - "readdirp": { + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, - "requires": { + "dependencies": { "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "regenerate": { + "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==", "dev": true }, - "regenerate-unicode-properties": { + "node_modules/regenerate-unicode-properties": { "version": "10.1.1", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", "dev": true, - "requires": { + "dependencies": { "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", "dev": true }, - "regenerator-transform": { + "node_modules/regenerator-transform": { "version": "0.15.2", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - } - }, - "regexp.prototype.flags": { + "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.6", "define-properties": "^1.2.1", "es-errors": "^1.3.0", "set-function-name": "^2.0.1" }, - "dependencies": { - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dev": true, - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" } }, - "regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true - }, - "regexpu-core": { + "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==", "dev": true, - "requires": { + "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" } }, - "register-service-worker": { + "node_modules/register-service-worker": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/register-service-worker/-/register-service-worker-1.7.2.tgz", "integrity": "sha512-CiD3ZSanZqcMPRhtfct5K9f7i3OLCcBBWsJjLh1gW9RO/nS94sVzY59iS+fgYBOBqaBpf4EzfqUF3j9IG+xo8A==", "dev": true }, - "regjsparser": { + "node_modules/regjsparser": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } + "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==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" } }, - "relateurl": { + "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true - }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "renderkid": { + "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, - "requires": { + "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", @@ -13385,502 +10333,423 @@ "strip-ansi": "^6.0.1" } }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true - }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-from-string": { + "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, - "reselect": { + "node_modules/reselect": { "version": "4.1.8", "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==", "dev": true }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-from": { + "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 - }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "restore-cursor": { + "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==", "dev": true, - "requires": { + "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { + "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "reusify": { + "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 + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" - } - }, - "rrule": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/rrule/-/rrule-2.8.1.tgz", - "integrity": "sha512-hM3dHSBMeaJ0Ktp7W38BJZ7O1zOgaFEsn41PDk+yHoEtfLV+PoJt9E9xAlZiWgf/iqEqionN0ebHFZIDAp+iGw==", - "requires": { - "tslib": "^2.4.0" }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - } + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "rtlcss": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-3.5.0.tgz", - "integrity": "sha512-wzgMaMFHQTnyi9YOwsx9LjOxYXJPzS8sYnFaKm6R5ysvTkwzHiB0vxnbHwchHQT65PTdBjDG21/kQBWI7q9O7A==", + "node_modules/rtlcss": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/rtlcss/-/rtlcss-4.0.0.tgz", + "integrity": "sha512-j6oypPP+mgFwDXL1JkLCtm6U/DQntMUqlv5SOhpgHhdIE+PmBcjrtAHIpXfbIup47kD5Sgja9JDsDF1NNOsBwQ==", "dev": true, - "requires": { - "find-up": "^5.0.0", + "dependencies": { + "escalade": "^3.1.1", "picocolors": "^1.0.0", - "postcss": "^8.3.11", + "postcss": "^8.4.6", "strip-json-comments": "^3.1.1" }, - "dependencies": { - "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, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "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, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "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, - "requires": { - "p-limit": "^3.0.2" - } - }, - "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 - } + "bin": { + "rtlcss": "bin/rtlcss.js" + }, + "engines": { + "node": ">=12.0.0" } }, - "run-async": { + "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "run-parallel": { + "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, - "requires": { + "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": { "queue-microtask": "^1.2.2" } }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, - "requires": { - "tslib": "^1.9.0" + "dependencies": { + "tslib": "^2.1.0" } }, - "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==", - "dev": true + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "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==", + "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" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, - "requires": { - "ret": "~0.1.10" + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "sane": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", - "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", - "dev": true, - "requires": { - "@cnakazawa/watch": "^1.0.3", - "anymatch": "^2.0.0", - "capture-exit": "^2.0.0", - "exec-sh": "^0.3.2", - "execa": "^1.0.0", - "fb-watchman": "^2.0.0", - "micromatch": "^3.1.4", - "minimist": "^1.1.1", - "walker": "~1.0.5" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } - } - }, - "sass": { - "version": "1.32.12", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.12.tgz", - "integrity": "sha512-zmXn03k3hN0KaiVTjohgkg98C3UowhL1/VSGdj4/VAAiMKGQOE80PFPxFP2Kyq0OUskPKcY5lImkhBKEHlypJA==", + "node_modules/sass": { + "version": "1.77.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.6.tgz", + "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0" + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=14.0.0" } }, - "sass-loader": { - "version": "12.4.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", - "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "node_modules/sass-loader": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", "dev": true, - "requires": { + "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 14.15.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } } }, - "sax": { + "node_modules/sax": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", "dev": true }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", "dev": true, - "requires": { - "xmlchars": "^2.2.0" + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "select-hose": { + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, - "selfsigned": { + "node_modules/selfsigned": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, - "requires": { + "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" + }, + "engines": { + "node": ">=10" } }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "requires": { - "lru-cache": "^6.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "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==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } + "ms": "2.0.0" } }, - "serialize-javascript": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", - "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "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==", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -13889,72 +10758,91 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" } }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "set-blocking": { + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, - "set-function-length": { + "node_modules/serve-index/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==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "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-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "dev": true, - "requires": { + "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "function-bind": "^1.1.2", @@ -13962,423 +10850,233 @@ "gopd": "^1.0.1", "has-property-descriptors": "^1.0.2" }, - "dependencies": { - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dev": true, - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - } + "engines": { + "node": ">= 0.4" } }, - "set-function-name": { + "node_modules/set-function-name": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, - "requires": { + "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" } }, - "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==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "shallow-clone": { + "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==", "dev": true, - "requires": { + "dependencies": { "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" } }, - "shebang-command": { + "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, - "requires": { + "dependencies": { "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "shebang-regex": { + "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 + "dev": true, + "engines": { + "node": ">=8" + } }, - "shell-quote": { + "node_modules/shell-quote": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", - "dev": true - }, - "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 - }, - "sigmund": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", - "dev": true - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "sirv": { - "version": "1.0.19", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", - "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, - "requires": { - "@polka/url": "^1.0.0-next.20", - "mrmime": "^1.0.0", - "totalist": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "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==", "dev": true }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true + "node_modules/sirv": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz", + "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.24", + "mrmime": "^2.0.0", + "totalist": "^3.0.0" + }, + "engines": { + "node": ">= 10" + } }, - "slice-ansi": { + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "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==", - "dev": true - } + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "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" - }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "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==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "sockjs": { + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, - "requires": { + "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "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" + "engines": { + "node": ">=0.10.0" } }, - "source-map-support": { + "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==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } - } - }, - "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==", - "dev": true - }, - "spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" } }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", "http-deceiver": "^1.2.7", "select-hose": "^2.0.0", "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", @@ -14387,272 +11085,197 @@ "wbuf": "^1.7.3" } }, - "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==", - "dev": true, - "requires": { - "extend-shallow": "^3.0.0" - } - }, - "stable": { + "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, - "stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "node_modules/stack-trace": { + "version": "1.0.0-pre2", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz", + "integrity": "sha512-2ztBJRek8IVofG9DBJqdy2N5kulaacX30Nz7xmkYF6ale9WBVmIy6mFBchvGX7Vx/MyjBhx+Rcxqrj+dbOnQ6A==", "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "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==", - "dev": true - } + "engines": { + "node": ">=16" } }, - "stackframe": { + "node_modules/stackframe": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - }, - "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==", + "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==", "dev": true, - "requires": { - "safe-buffer": "~5.1.0" + "dependencies": { + "safe-buffer": "~5.2.0" } }, - "string-length": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz", - "integrity": "sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==", + "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==", "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "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==", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - } + "engines": { + "node": ">=8" } }, - "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 - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "strip-final-newline": { + "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 + "dev": true, + "engines": { + "node": ">=6" + } }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true + "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, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "stylehacks": { + "node_modules/stylehacks": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, - "dependencies": { - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - } + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" } }, - "supports-color": { + "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==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "supports-hyperlinks": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz", - "integrity": "sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==", + "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==", "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" + "engines": { + "node": ">= 0.4" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "svgo": { + "node_modules/svgo": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", "dev": true, - "requires": { + "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", @@ -14661,929 +11284,1031 @@ "picocolors": "^1.0.0", "stable": "^0.1.8" }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" } }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } }, - "table": { - "version": "6.8.0", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", - "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", "dev": true, - "requires": { + "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1" }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "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==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "tar-stream": { + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, - "requires": { + "dependencies": { "bl": "^4.0.3", "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" } }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "terser": { - "version": "5.29.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", - "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", + "node_modules/terser": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", + "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", "dev": true, - "requires": { + "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, - "dependencies": { - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" } }, - "terser-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-GvlZdT6wPQKbDNW/GDQzZFg/j4vKU96yl2q6mcUkzKOgW4gwf1Z8cZToUCrz31XHlPWH8MVb1r2tFtdDtTGJ7g==", + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", "dev": true, - "requires": { + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "esbuild": { + "optional": true }, - "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, - "requires": { - "has-flag": "^4.0.0" - } + "uglify-js": { + "optional": true } } }, - "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==", + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "engines": { + "node": ">=8" } }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "node_modules/terser-webpack-plugin/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==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser-webpack-plugin/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, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "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==", "dev": true }, - "throat": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", - "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "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 }, - "through": { + "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "tmp": { + "node_modules/tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" } }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "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==", "dev": true, - "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "engines": { + "node": ">=4" } }, - "to-regex-range": { + "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==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "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==", - "dev": true - }, - "totalist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", - "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "dev": true - }, - "tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true - } + "engines": { + "node": ">=0.6" } }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "node_modules/totalist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", + "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-jest": { - "version": "26.5.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.5.1.tgz", - "integrity": "sha512-G7Rmo3OJMvlqE79amJX8VJKDiRcd7/r61wh9fnvvG8cAjhA9edklGw/dCxRSQmfZ/z8NDums5srSVgwZos1qfg==", - "dev": true, - "requires": { - "@types/jest": "26.x", - "bs-logger": "0.x", - "buffer-from": "1.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^26.1.0", - "json5": "2.x", - "lodash": "4.x", - "make-error": "1.x", - "mkdirp": "1.x", - "semver": "7.x", - "yargs-parser": "20.x" - }, - "dependencies": { - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "dev": true - } + "engines": { + "node": ">=6" } }, - "ts-loader": { - "version": "9.2.6", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz", - "integrity": "sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==", + "node_modules/ts-loader": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", + "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", "dev": true, - "requires": { + "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", "semver": "^7.3.4" }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "typescript": "*", + "webpack": "^5.0.0" + } + }, + "node_modules/ts-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", + "node_modules/ts-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" + "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/ts-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ts-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ts-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ts-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "tsconfig-paths": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", - "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, - "requires": { + "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.0", + "json5": "^1.0.2", + "minimist": "^1.2.6", "strip-bom": "^3.0.0" - }, + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, "dependencies": { - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - } + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==", "dev": true }, - "tsutils": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.20.0.tgz", - "integrity": "sha512-RYbuQuvkhuqVeXweWT3tJLKOEJ/UUw9GjNEZGWdrLLlM+611o1gwLHBpxoFJKKl25fLprp2eVthtKs5JOrNeXg==", + "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, - "requires": { - "tslib": "^1.8.1" + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "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, - "requires": { - "prelude-ls": "~1.1.2" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "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==", - "dev": true - }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "requires": { - "is-typedarray": "^1.0.0" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" } }, - "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", - "dev": true + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "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, + "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" + } }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", "dev": true }, - "unicode-canonical-property-names-ecmascript": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "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==", "dev": true, - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { + "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==", - "dev": true - }, - "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==", "dev": true, - "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "engines": { + "node": ">=4" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } + "dev": true, + "engines": { + "node": ">= 0.8" } }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "uri-js": { + "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, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "url-loader": { + "node_modules/url-loader": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-4.1.1.tgz", "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0", "mime-types": "^2.1.27", "schema-utils": "^3.0.0" }, - "dependencies": { - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "file-loader": "*", + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "file-loader": { + "optional": true } } }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/url-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true - }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "utila": { + "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, - "utils-merge": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { + "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 + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } }, - "v8-to-istanbul": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz", - "integrity": "sha512-uXUVqNUCLa0AH1vuVxzi+MI4RfxEOKt9pBgKwHbgH7st8Kv2P1m+jvWNnektzBh5QShF3ODgKmUFCf38LnVz1g==", + "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==", "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true } } }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "node_modules/vue-eslint-parser": { + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", + "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "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" + } }, - "vue-chartjs": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-3.5.1.tgz", - "integrity": "sha512-foocQbJ7FtveICxb4EV5QuVpo6d8CmZFmAopBppDIGKY+esJV8IJgwmEW0RexQhxqXaL/E1xNURsgFFYyKzS/g==", - "requires": { - "@types/chart.js": "^2.7.55" + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "vue-eslint-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", - "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", + "node_modules/vue-eslint-parser/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, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-i18n": { + "version": "9.13.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.13.1.tgz", + "integrity": "sha512-mh0GIxx0wPtPlcB1q4k277y0iKgo25xmDPWioVVYanjPufDBpvu5ySTjP5wOrSvlYQ2m1xI+CFhGdauv/61uQg==", + "dependencies": { + "@intlify/core-base": "9.13.1", + "@intlify/shared": "9.13.1", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-loader": { + "version": "17.4.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.4.2.tgz", + "integrity": "sha512-yTKOA4R/VN4jqjw4y5HrynFL8AK0Z3/Jt7eOJXEitsm0GMRHDBjCfCiuTiLP7OESvsZYo2pATCWhDqxC5ZrM6w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "watchpack": "^2.4.0" + }, + "peerDependencies": { + "webpack": "^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/vue-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/vue-loader/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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/vue-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "requires": { - "debug": "^4.1.0", - "eslint-scope": "^4.0.0", - "eslint-visitor-keys": "^1.0.0", - "espree": "^4.1.0", - "esquery": "^1.0.1", - "lodash": "^4.17.11" - }, - "dependencies": { - "espree": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", - "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", - "dev": true, - "requires": { - "acorn": "^6.0.2", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" - } - } + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "vue-i18n": { - "version": "8.28.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.28.2.tgz", - "integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA==" + "node_modules/vue-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, - "vue-jest": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz", - "integrity": "sha512-PIOxFM+wsBMry26ZpfBvUQ/DGH2hvp5khDQ1n51g3bN0TwFwTy4J85XVfxTRMukqHji/GnAoGUnlZ5Ao73K62w==", - "dev": true, - "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0", - "chalk": "^2.1.0", - "deasync": "^0.1.15", - "extract-from-css": "^0.4.4", - "find-babel-config": "^1.1.0", - "js-beautify": "^1.6.14", - "node-cache": "^4.1.1", - "object-assign": "^4.1.1", - "source-map": "^0.5.6", - "tsconfig": "^7.0.0", - "vue-template-es2015-compiler": "^1.6.0" - }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "node_modules/vue-loader/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" } }, - "vue-loader": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-17.0.0.tgz", - "integrity": "sha512-OWSXjrzIvbF2LtOUmxT3HYgwwubbfFelN8PAP9R9dwpIkj48TVioHhWWSx7W7fk+iF5cgg3CBJRxwTdtLU4Ecg==", + "node_modules/vue-loader/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vue-router": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.3.tgz", + "integrity": "sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" } }, - "vue-style-loader": { + "node_modules/vue-style-loader": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.3.tgz", "integrity": "sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==", "dev": true, - "requires": { + "dependencies": { "hash-sum": "^1.0.2", "loader-utils": "^1.0.2" - }, - "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", - "dev": true - }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - } - } } }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "node_modules/vue-style-loader/node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", "dev": true }, - "vuelidate": { - "version": "0.7.7", - "resolved": "https://registry.npmjs.org/vuelidate/-/vuelidate-0.7.7.tgz", - "integrity": "sha512-pT/U2lDI67wkIqI4tum7cMSIfGcAMfB+Phtqh2ttdXURwvHRBJEAQ0tVbUsW9Upg83Q5QH59bnCoXI7A9JDGnA==" - }, - "w3c-hr-time": { + "node_modules/vue-style-loader/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "walker": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "node_modules/vue-style-loader/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", "dev": true, - "requires": { - "makeerror": "1.0.x" + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "watchpack": { + "node_modules/watchpack": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", "dev": true, - "requires": { + "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" } }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { + "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", "dev": true, - "requires": { + "dependencies": { "defaults": "^1.0.3" } }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "node_modules/webpack": { + "version": "5.92.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.92.1.tgz", + "integrity": "sha512-JECQ7IwJb+7fgUFBlrJzbyu3GEuNBcdqr1LD7IbSzwkSmIevTm8PF+wej3Oxuz/JFBUZ6O1o43zsPkwm1C4TmA==", "dev": true, - "requires": { + "dependencies": { "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", + "enhanced-resolve": "^5.17.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -15599,691 +12324,482 @@ "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - } - }, - "caniuse-lite": { - "version": "1.0.30001600", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz", - "integrity": "sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.715", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.715.tgz", - "integrity": "sha512-XzWNH4ZSa9BwVUQSDorPWAUQ5WGuYz7zJUNpNif40zFCiCl20t8zgylmreNmn26h5kiyw2lg7RfTmeMBsDklqg==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "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, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true - }, - "schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "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, - "requires": { - "has-flag": "^4.0.0" - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - } - }, - "update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-bundle-analyzer": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", - "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "node_modules/webpack-bundle-analyzer": { + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", "dev": true, - "requires": { + "dependencies": { + "@discoveryjs/json-ext": "0.5.7", "acorn": "^8.0.4", "acorn-walk": "^8.0.0", - "chalk": "^4.1.0", "commander": "^7.2.0", + "debounce": "^1.2.1", + "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", - "lodash": "^4.17.20", + "html-escaper": "^2.0.2", "opener": "^1.5.2", - "sirv": "^1.0.7", + "picocolors": "^1.0.0", + "sirv": "^2.0.3", "ws": "^7.3.1" }, - "dependencies": { - "acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true - }, - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "webpack-chain": { + "node_modules/webpack-chain": { "version": "6.5.1", "resolved": "https://registry.npmjs.org/webpack-chain/-/webpack-chain-6.5.1.tgz", "integrity": "sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", "dev": true, - "requires": { + "dependencies": { "deepmerge": "^1.5.2", "javascript-stringify": "^2.0.1" }, - "dependencies": { - "deepmerge": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", - "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", - "dev": true - } + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-chain/node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-1.5.2.tgz", + "integrity": "sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "webpack-dev-middleware": { + "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", "dev": true, - "requires": { + "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - } + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" } }, - "webpack-dev-server": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.4.tgz", - "integrity": "sha512-nfdsb02Zi2qzkNmgtZjkrMOcXnYZ6FLKcQwpxT7MvmHKc+oTtDsBju8j+NMyAygZ9GW1jMEUpy3itHtqgEhe1A==", + "node_modules/webpack-dev-server": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dev": true, - "requires": { + "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", - "@types/ws": "^8.2.2", + "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", - "bonjour": "^3.5.0", + "bonjour-service": "^1.0.11", "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", - "del": "^6.0.0", - "express": "^4.17.1", + "express": "^4.17.3", "graceful-fs": "^4.2.6", "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.0", + "http-proxy-middleware": "^2.0.3", "ipaddr.js": "^2.0.1", "open": "^8.0.9", "p-retry": "^4.5.0", - "portfinder": "^1.0.28", + "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.0", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", - "strip-ansi": "^7.0.0", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true - }, - "ipaddr.js": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", - "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", - "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.9.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.1.0" - } - }, - "strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "dev": true + "utf-8-validate": { + "optional": true } } }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "node_modules/webpack-merge": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", + "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", "dev": true, - "requires": { + "dependencies": { "clone-deep": "^4.0.1", + "flat": "^5.0.2", "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" } }, - "webpack-node-externals": { + "node_modules/webpack-node-externals": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz", "integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } }, - "websocket-driver": { + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" + "engines": { + "node": ">=0.8.0" } }, - "which": { + "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, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" } }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true + "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, + "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-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "wildcard": { + "node_modules/wildcard": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", "dev": true }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "wrap-ansi": { + "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==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "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==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } + "engines": { + "node": ">=8" } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "requires": { - "mkdirp": "^0.5.1" - }, "dependencies": { - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "dev": true + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "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==", "dev": true }, - "y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "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 + } + } }, - "yallist": { + "node_modules/xml-name-validator": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "yaml": { + "node_modules/yaml": { "version": "1.10.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "15.4.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", - "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", - "dev": true, - "requires": { - "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" - }, - "dependencies": { - "cliui": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" - } - }, - "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==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs-parser": { - "version": "18.1.3", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "engines": { + "node": ">= 6" } }, - "yocto-queue": { + "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==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "zip-stream": { + "node_modules/zip-stream": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", "dev": true, - "requires": { + "dependencies": { "archiver-utils": "^3.0.4", "compress-commons": "^4.1.2", "readable-stream": "^3.6.0" }, - "dependencies": { - "archiver-utils": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", - "dev": true, - "requires": { - "glob": "^7.2.3", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^3.6.0" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "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": ">= 10" } }, - "zxcvbn": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz", - "integrity": "sha1-KOwXzwl0PtyrBW3dixsGJizHPDA=" + "node_modules/zip-stream/node_modules/archiver-utils": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", + "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", + "dev": true, + "dependencies": { + "glob": "^7.2.3", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } } } } diff --git a/package.json b/package.json index c7c96b45..8fb38c89 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "productName": "Mobistudy App", "cordovaId": "org.mobistudy.org", "author": "Dario Salvi ", - "private": true, + "private": false, "scripts": { "dev": "quasar dev", "lint": "eslint --ext .js,.vue src", @@ -16,31 +16,24 @@ "dev:test": "concurrently \"quasar dev\" \"jest --watch\"" }, "dependencies": { - "@quasar/extras": "^1.16.11", - "axios": "^1.6.4", - "chart.js": "^2.9.4", - "moment": "^2.30.1", - "owasp-password-strength-test": "^1.3.0", - "quasar": "^1.22.10", - "rrule": "^2.8.1", - "vue-chartjs": "^3.5.1", - "vue-i18n": "^8.28.2", - "vuelidate": "^0.7.7", - "zxcvbn": "^4.4.2" + "axios": "^1.2.1", + "vue-i18n": "^9.0.0", + "@quasar/extras": "^1.16.4", + "core-js": "^3.31.1", + "quasar": "^2.16.0", + "vue": "^3.4.18", + "vue-router": "^4.0.12" }, "devDependencies": { - "@quasar/app": "3.3.3", - "@quasar/quasar-app-extension-testing": "^1.0.3", - "@quasar/quasar-app-extension-testing-unit-jest": "^1.1.0-beta.7", - "@types/babel__core": "^7.20.0", - "@vue/eslint-config-standard": "^4.0.0", - "@vue/test-utils": "^1.3.0", - "babel-eslint": "^10.1.0", - "eslint": "^5.10.0", - "eslint-loader": "^2.1.1", - "eslint-plugin-jest": "^23.8.2", - "eslint-plugin-vue": "^5.0.0", - "vue-jest": "^3.0.7" + "@babel/eslint-parser": "^7.13.14", + "eslint": "^8.57.0", + "eslint-plugin-vue": "^9.0.0", + "eslint-webpack-plugin": "^3.1.1", + "eslint-config-standard": "^17.0.0", + "eslint-plugin-import": "^2.19.1", + "eslint-plugin-n": "^15.0.0", + "eslint-plugin-promise": "^6.0.0", + "@quasar/app-webpack": "^3.13.0" }, "browserslist": [ "last 10 Chrome versions", @@ -54,8 +47,8 @@ "last 5 Opera versions" ], "engines": { - "node": ">= 10.18.1", + "node": "^20 || ^18 || ^16", "npm": ">= 6.13.4", "yarn": ">= 1.21.1" } -} \ No newline at end of file +} diff --git a/.postcssrc.js b/postcss.config.cjs old mode 100755 new mode 100644 similarity index 90% rename from .postcssrc.js rename to postcss.config.cjs index 1174fe52..0ee0d8c2 --- a/.postcssrc.js +++ b/postcss.config.cjs @@ -1,3 +1,4 @@ +/* eslint-disable */ // https://github.com/michael-ciniawsky/postcss-load-config module.exports = { diff --git a/project.config.js b/project.config.js new file mode 100755 index 00000000..def4dfca --- /dev/null +++ b/project.config.js @@ -0,0 +1,23 @@ +module.exports = { + API_ENDPOINT: 'MOCK', // 'MOCK', // 'http://localhost:3000/api', // /api for local server + HEALTHSTORE: 'MOCK', + NOTIFICATIONS: 'MOCK', + STORAGE: 'MOCK', + FILES: 'MOCK', + PHONE: 'MOCK', + MIBAND3: 'MOCK', + PO60: 'MOCK', + PEAKFLOW: 'MOCK' +} + +// module.exports = { +// API_ENDPOINT: 'https://app.mobistudy.org/api', +// HEALTHSTORE: 'cordova', +// NOTIFICATIONS: 'cordova', +// STORAGE: 'encrypted', +// FILES: 'cordova', +// PHONE: 'cordova', +// MIBAND3: 'cordova', +// PO60: 'cordova', +// PEAKFLOW: 'cordova' +// } diff --git a/project.config.template.js b/project.config.template.js index e5c89bf0..91b94db4 100755 --- a/project.config.template.js +++ b/project.config.template.js @@ -1,4 +1,3 @@ - // USE THESE TO TWEAK THE COMPILATION OPTIONS module.exports = { // use 'MOCK' for mock api, '/api' for local server, 'https://app.mobistudy.org/api' for real server diff --git a/public/imgs/MobistudyIntroScreens_1.svg b/public/imgs/MobistudyIntroScreens_1.svg deleted file mode 100755 index ab20f8a3..00000000 --- a/public/imgs/MobistudyIntroScreens_1.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/imgs/MobistudyIntroScreens_2.svg b/public/imgs/MobistudyIntroScreens_2.svg deleted file mode 100755 index 41b2ec9f..00000000 --- a/public/imgs/MobistudyIntroScreens_2.svg +++ /dev/null @@ -1,2 +0,0 @@ - -New Study! \ No newline at end of file diff --git a/public/imgs/MobistudyIntroScreens_3.svg b/public/imgs/MobistudyIntroScreens_3.svg deleted file mode 100755 index 567c881a..00000000 --- a/public/imgs/MobistudyIntroScreens_3.svg +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/public/imgs/MobistudyIntroScreens_4.svg b/public/imgs/MobistudyIntroScreens_4.svg deleted file mode 100755 index 9eeeab30..00000000 --- a/public/imgs/MobistudyIntroScreens_4.svg +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/public/imgs/confetti.svg b/public/imgs/confetti.svg deleted file mode 100755 index 1e50d45d..00000000 --- a/public/imgs/confetti.svg +++ /dev/null @@ -1,95 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/6mwt1.svg b/public/instructions/6mwt1.svg deleted file mode 100644 index 96452a90..00000000 --- a/public/instructions/6mwt1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/6mwt2.svg b/public/instructions/6mwt2.svg deleted file mode 100644 index 66eadf23..00000000 --- a/public/instructions/6mwt2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/6mwt3.svg b/public/instructions/6mwt3.svg deleted file mode 100644 index 6b4a4f29..00000000 --- a/public/instructions/6mwt3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/6mwt4.svg b/public/instructions/6mwt4.svg deleted file mode 100644 index e2bdb250..00000000 --- a/public/instructions/6mwt4.svg +++ /dev/null @@ -1 +0,0 @@ -Complete \ No newline at end of file diff --git a/public/instructions/6mwt5.svg b/public/instructions/6mwt5.svg deleted file mode 100644 index 3b50fc13..00000000 --- a/public/instructions/6mwt5.svg +++ /dev/null @@ -1 +0,0 @@ -GPS location \ No newline at end of file diff --git a/public/instructions/6mwt6.svg b/public/instructions/6mwt6.svg deleted file mode 100644 index f41672be..00000000 --- a/public/instructions/6mwt6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/6mwt7.svg b/public/instructions/6mwt7.svg deleted file mode 100644 index 8a1157cc..00000000 --- a/public/instructions/6mwt7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/Drawing_task-01.svg b/public/instructions/Drawing_task-01.svg deleted file mode 100644 index d9198698..00000000 --- a/public/instructions/Drawing_task-01.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/Drawing_task-02.svg b/public/instructions/Drawing_task-02.svg deleted file mode 100644 index 2f9f8a29..00000000 --- a/public/instructions/Drawing_task-02.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/Drawing_task-03.svg b/public/instructions/Drawing_task-03.svg deleted file mode 100644 index 4e11c7cc..00000000 --- a/public/instructions/Drawing_task-03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/HoldYourPhone_task-01.svg b/public/instructions/HoldYourPhone_task-01.svg deleted file mode 100644 index d779963c..00000000 --- a/public/instructions/HoldYourPhone_task-01.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/HoldYourPhone_task-02.svg b/public/instructions/HoldYourPhone_task-02.svg deleted file mode 100644 index c9fccd93..00000000 --- a/public/instructions/HoldYourPhone_task-02.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/HoldYourPhone_task-03.svg b/public/instructions/HoldYourPhone_task-03.svg deleted file mode 100644 index b23d9ede..00000000 --- a/public/instructions/HoldYourPhone_task-03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/HoldYourPhone_task-04.svg b/public/instructions/HoldYourPhone_task-04.svg deleted file mode 100644 index 666866ab..00000000 --- a/public/instructions/HoldYourPhone_task-04.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/HoldYourPhone_task-05.svg b/public/instructions/HoldYourPhone_task-05.svg deleted file mode 100644 index 80b4c948..00000000 --- a/public/instructions/HoldYourPhone_task-05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-01.svg b/public/instructions/QCST-01.svg deleted file mode 100644 index 682469c1..00000000 --- a/public/instructions/QCST-01.svg +++ /dev/null @@ -1 +0,0 @@ -40cm \ No newline at end of file diff --git a/public/instructions/QCST-02.svg b/public/instructions/QCST-02.svg deleted file mode 100644 index fd9a072f..00000000 --- a/public/instructions/QCST-02.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-03.svg b/public/instructions/QCST-03.svg deleted file mode 100644 index 8de2ed9b..00000000 --- a/public/instructions/QCST-03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-04.svg b/public/instructions/QCST-04.svg deleted file mode 100644 index c3c1d94b..00000000 --- a/public/instructions/QCST-04.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-05.svg b/public/instructions/QCST-05.svg deleted file mode 100644 index cd5f3fcc..00000000 --- a/public/instructions/QCST-05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-06.svg b/public/instructions/QCST-06.svg deleted file mode 100644 index c7fd2d3e..00000000 --- a/public/instructions/QCST-06.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-07.svg b/public/instructions/QCST-07.svg deleted file mode 100644 index 948eda60..00000000 --- a/public/instructions/QCST-07.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/QCST-08.svg b/public/instructions/QCST-08.svg deleted file mode 100644 index ce14f213..00000000 --- a/public/instructions/QCST-08.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/TUGtask-01.svg b/public/instructions/TUGtask-01.svg deleted file mode 100644 index 7e0045fe..00000000 --- a/public/instructions/TUGtask-01.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/TUGtask-02.svg b/public/instructions/TUGtask-02.svg deleted file mode 100644 index 35a72474..00000000 --- a/public/instructions/TUGtask-02.svg +++ /dev/null @@ -1 +0,0 @@ -3 m \ No newline at end of file diff --git a/public/instructions/TUGtask-03.svg b/public/instructions/TUGtask-03.svg deleted file mode 100644 index 772adf05..00000000 --- a/public/instructions/TUGtask-03.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/TUGtask-04.svg b/public/instructions/TUGtask-04.svg deleted file mode 100644 index 9dc31d3e..00000000 --- a/public/instructions/TUGtask-04.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/TUGtask-05.svg b/public/instructions/TUGtask-05.svg deleted file mode 100644 index ac83bfaf..00000000 --- a/public/instructions/TUGtask-05.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/dataquery1.svg b/public/instructions/dataquery1.svg deleted file mode 100644 index a6dc2636..00000000 --- a/public/instructions/dataquery1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/dataquery2.svg b/public/instructions/dataquery2.svg deleted file mode 100644 index 0f495041..00000000 --- a/public/instructions/dataquery2.svg +++ /dev/null @@ -1 +0,0 @@ -SendDiscard \ No newline at end of file diff --git a/public/instructions/fingertapping1.svg b/public/instructions/fingertapping1.svg deleted file mode 100644 index 0add1787..00000000 --- a/public/instructions/fingertapping1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/fingertapping2.svg b/public/instructions/fingertapping2.svg deleted file mode 100644 index bd7889b0..00000000 --- a/public/instructions/fingertapping2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/holdphone.svg b/public/instructions/holdphone.svg deleted file mode 100644 index e02356fb..00000000 --- a/public/instructions/holdphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/miband3_1.svg b/public/instructions/miband3_1.svg deleted file mode 100755 index 8f06e836..00000000 --- a/public/instructions/miband3_1.svg +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/miband3_2.svg b/public/instructions/miband3_2.svg deleted file mode 100755 index c5a42fb5..00000000 --- a/public/instructions/miband3_2.svg +++ /dev/null @@ -1,66 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/miband3_tap.svg b/public/instructions/miband3_tap.svg deleted file mode 100755 index dceddb43..00000000 --- a/public/instructions/miband3_tap.svg +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/peakflow_1.svg b/public/instructions/peakflow_1.svg deleted file mode 100644 index 00ff2c04..00000000 --- a/public/instructions/peakflow_1.svg +++ /dev/null @@ -1,127 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/peakflow_2.svg b/public/instructions/peakflow_2.svg deleted file mode 100644 index f8008867..00000000 --- a/public/instructions/peakflow_2.svg +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/peakflow_3.svg b/public/instructions/peakflow_3.svg deleted file mode 100644 index 6542a9c9..00000000 --- a/public/instructions/peakflow_3.svg +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/peakflow_4.svg b/public/instructions/peakflow_4.svg deleted file mode 100644 index 4b26d80e..00000000 --- a/public/instructions/peakflow_4.svg +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/instructions/po60_1.jpg b/public/instructions/po60_1.jpg deleted file mode 100755 index 60ad53b43ab91c0f99767767ee30dbfe8a978bb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12470 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 diff --git a/public/instructions/po60_2.jpg b/public/instructions/po60_2.jpg deleted file mode 100755 index f9d4da00bd2e27d640b2410d945b7e17aeb06283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18108 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 ?h=~b_EnrWVq#&l6ux} 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 diff --git a/public/instructions/po60_3_ios.jpg b/public/instructions/po60_3_ios.jpg deleted file mode 100755 index 7682d62359d60cd8b388c70c0327db55c6f8abb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72773 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 \ No newline at end of file diff --git a/public/instructions/position-02.svg b/public/instructions/position-02.svg deleted file mode 100644 index 161efec4..00000000 --- a/public/instructions/position-02.svg +++ /dev/null @@ -1 +0,0 @@ - GPS location \ No newline at end of file diff --git a/public/instructions/vocalization_1.svg b/public/instructions/vocalization_1.svg deleted file mode 100644 index ba67b4f7..00000000 --- a/public/instructions/vocalization_1.svg +++ /dev/null @@ -1 +0,0 @@ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... \ No newline at end of file diff --git a/public/instructions/vocalization_2.svg b/public/instructions/vocalization_2.svg deleted file mode 100644 index 827dfa5c..00000000 --- a/public/instructions/vocalization_2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/instructions/vocalization_3.svg b/public/instructions/vocalization_3.svg deleted file mode 100644 index 6ac1cf18..00000000 --- a/public/instructions/vocalization_3.svg +++ /dev/null @@ -1 +0,0 @@ -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA... \ No newline at end of file diff --git a/public/instructions/vocalization_4.svg b/public/instructions/vocalization_4.svg deleted file mode 100644 index 85c388b6..00000000 --- a/public/instructions/vocalization_4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/logo-1024.png b/public/logos/logo-1024.png deleted file mode 100755 index 322658d95d0ea6259ee71223ebd643019d70833c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36520 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 diff --git a/public/logos/logo.svg b/public/logos/logo.svg deleted file mode 100755 index 3f05576f..00000000 --- a/public/logos/logo.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - diff --git a/public/logos/malmo_logo.png b/public/logos/malmo_logo.png deleted file mode 100755 index 606bb5a7aeb277371fddd6f36e4ab94938578d7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9068 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 - - - - - - - - - - - - - - diff --git a/public/sounds/dingbell.wav b/public/sounds/dingbell.wav deleted file mode 100644 index 969d490261941072ad72c05544cd06d72e3b731a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 111354 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

)U|MyB(kn(fTxVO~*-VHf_qH!;TRi)D9Oj3O(0 z&5=|$et}SyjRkp}o!Edk*nadAdr4$|`mOZx(IDE!_7yAh&!{bq;RsM;b8)Mv6f3GG zX$6swtK+W_S2{34K;WlSgYfVK+(>?y^A#sjN&iXi3Ku*L#A6_&kBGKVx)?c8Nylry z)1PRm)+M^Mmx>+lZ_gLU+l)3MOPfJJ++-pWRcK-fz?muMh5tZm>Fn zE!0H3&x*0K;lj)ZzB;#xu=?`Qhu})J3dtf|l<$bW*bp4V3>Buyo27!Rj^3*4qj`)! zDMjq#?JZrWe>tD+>`otYlypbG)OEr08J8lr&~5IMTvVc&`#q*5YtDRL5a5eHSH9#fP$p5mEiJ4AINaNmps5d_x8q{(DTgmkzJ;aUy}At z9{Ua&1ILR+eFweU`3d-rwm?ZV+fwy~VN#sXk=X(pGhQJod899NUaNBWYsUBRK&unH z#l|zYNj@~y#?Auj8Jt3z8GXVhf)OQz-w8c^S$yZkI?Nx`9SX8-`HAcp^2R8loi*Q5 zL#3K7ra8q|AZv|OZG?Fky+gbSlo#P2%6L?d?INF%b8*9+nHsP9%^!Fo%nL`5v(6e) znceCs8e1mzoxG9SYjjkr8$P@e4x$M2 zwSL#3F4iQwwB+a+<)cv+JweN?^ZEdNgH6-R#rM)y_9XhKya~@yRO=;WvpU>PzQc^v+ z3YQ)8`tN8SRWZ7tJE)-5RQDRH!|~I68v^4zE1BD9nK9e^8(*VKasM!1z&z3$Ru#H= zy}lA+DR4;J9hx6{pq@g%!Dvv$`C>7s7BHDhoWvAyBsDhFHGIct4J(Uxq^3fE4bi9A zu<%fFgpcrym9G4u&a{UztX#!2SXd8JoGPf7(~`Wwi>)WoZ<&jN9km?5Cn!>VVHCWI zN?FhCqof5)rsA9lW=)sZlEr@m@o_i&xrAM$tYw(}ox|W1XzvU)ryGvl5q1*xO8xjh z$!GOL&>yO!4z+cB1%E}2(Kq}zGf_(ShU81kLHni}(6Bv|ULwpATk(UKUUXgdyzoxy zAe;fLUNN*U2-SBeJKdaZPnRH;9YFCU2fRtWLAO;DdKzwGT&0Ri^?bR#g#{B*)C2g6 zox@4A=(ICl>OD|R=Cqu{Kg$!#K0vf#xyto8l;7^CKa4hu*3`o|JAYhGlKk{jOHoH^ zkFD9{JynD1Kvv`Yu14M8Hz+nwptLX&Khalf5fhN5@EaTeW;>G84$NW~2!&l0tFd}5 z^JPYx$Q5%ocujM3W$*##p?L0)XbBVPh}}+`r8)Y&b#jE^HYNdVL*kD#h8=V?xv2jfK5UpnTsC`nyKwEzsu@-#m{Lc}< zQ@ENQK|OLd+c%vS%uo4?f3a6#Zy-nA72U4xH4mWG=$$!Pe`xf_li4rg6=4Y+VdYS! zN8&Zg8A1QaWo5U)?XVCxKtAW&@4diRBWLs#N;|z4F3Xk>+^PWMNqMq?I!Hf<1@Hy! zUeKR$-JPZB1}E{=_<8heavHY-etIc$2i|uY7>zW^IszZccA#ybfP9+Nj@oJt>nOTwXBxxxdRBg_ym-t9{Q0C(FpJ&Jcwn^w zN14A^p56lxSj?OjD|qL5j=S8zM5Rfnd*olE0^R~Tkx%HgJ=qya)nY|1KOAFuqt!x6 z)Q5&JZN*G+AD_f_W@>RA#GXodb3V)dZQ;c@l3`Q3iysN8egS znH_Rd-+0-z$iQvXFZwGRWpwb(o@dlB_v15M8}9{QE~zr?Vs|qrGuFOlXSa@Nv@%ec zZr-J`iaq6}d~wj!Y^I&nFWYa)6^f$%ATi`8yeo=kf1V6z=e3PQHGE*~~Djf2|FSJ1|ba^BT=I0sl0hgC*Y<*T2x+t&?Tgg+| z*HK>2&7^D5SDBIQIJzaCs<)4*;i~#M@__p#>|#F=WF?!4Ruxp$#Z`an`CaE-VS5I% z#dF(V&RdojsAbMwX9cK6x2OAnSEw8+1xoPcz3+WFd*9`PDi*=6A3qhhq2(TDVBcCi9;7sfG9_-vj$K1FWD-bS^xBI-j^0S&mRyoa4f zjU?~MJE|*vmP$YkmBE==GOtDdhcf9Bd@=4YoKJ4!U0^)jh$%&FwM*%P^jPNtTf@6A z0Q^(M26RR8%4P1)Qe(()>#G{C2F#)$gDWf*79LX2x}sE4=IDj(>S&EM!Psl8L9^&H zQi|`J_Z&Zo95gNC9(qk(W0odbHWR?zwu#qx42)_xxblVOacCv*iT%`G|rtkVe}Y(#*1vEb_ov(bx?e01anthA?{&D;&WC_yF6YECV_%@r2W&Xhzqg#ykcy& zm?Kh8*aj`Px}tO(4{qWNJH<@54v=^*QCcV5r@ZEb$j(ro=s+WgY}^_L(JAK_6)Vi} z=<*b9C+=aa()O6&NEvRH_@D5GJwb1CPa{S;BD{vTt;^9vp+I!5`5(x_u3-*Y|k|_)XUL3YHu`!NflWsiA};C+`QGzc!!>YS5y;l2p0rRSSO26YOa!sjD=B02Tvq0#h)*0W2ema@DM4khIslz9` zm^q2eGsdg=jd|o1pW-R$r6rA>O8-r-V!}*w*dOgs--i!G|FRmxX?!Z5huMrPSa*yL z)+VH&9M(_Oj(*XqVUz3T{p_19cVq{W@2EQ7M6IF!f)v?;o;inMHt~Y@4_`Gg0`?g> zlpD$%gGW2jW9x&_+;5(p;g*G%(310CG1}6CVq<-xR|Lm zor8F-4th&-Kl#Xy_niw|@($p~Qg`q?Qk}{KXPhD?r;XOK*vYWGP(oV7#gNx}AEkx5 z*r;kRvva%u?^UyjTb&ws{C-0|$`p6%n|Z9fcnxwUrBA{+mS*a^b?lJ1l`jSl zx_2}|KW`VOFNu^#7JJi+@MCn?*^du6Q4=eFhTZ7bUf|##;Z?V1+{=GqMCJ(FRp{kbfD_=Yu^|!@j#V3? ztFSEFkzPw^=P6o_`vOE3pxpYgh&u;rd;@W!aJu>1h@z?t zCx7>@mS?jI@fI_manL+!PqLR8$?6a#k5QCl<8F(qh01gTR9J7TZ8JyVu~ZN05Gg@| zR8yYzCIzM+GcfgHCfx)MQ8GF`7JPLT~zW#hiF|%O9gt0>>B5S-zdd zh+P84TNzq*L&9^}ZLSJdichDK@EbJIDTy;svRO*W9ex(6V6LSe^A*Hc?m6gEvWO3g3iG?hP}NG1xfae?nuI|M;Z+ z40njE(P!XU^j>Bx%uQ~fb7&)O2&$8;_HK1yq?hv3szX!KHjgFU;%>tdR2MjqS;}mu zDCdCL$Eri(xZQFKZz*XleI6Y)W*Y0PU-mWYy53EV(OOzRfx#^o8}NRrsx?lltk<^t zk>+lu`b5fsI`qH70`Cd`PtOH*gVV*Z^_g}YxDRi@6p%O zRrr;QAosC7n3f`eQuH)?@s=?fnxBC0~x{C+suOtmWCd(;%d9dbmgh}9Di~-^Zm{T^bhVvou`}8qewaPY_w9us||DxF?R%3 ze97%&+A?R@75r{~7V{L>H*@KhISv%y4@;)#J~aiVItx&L$B*lvus$ss3dgH&?WQy< z^c9{n)5vgpnzaxOAS1yWJOJ%?E5Jmiusp%v*MG;2sYcEm>!`g9_XZnDX=jXG1HC1? z8CICXuX1(ld`ge-@Ms6)Ka}Zqx<0%PkETNG1+ktq&UJJB&kX3h%)X=qJ4skA?Bw<^ ztr?M%ge`nOx;C1n4vVx_?ztYL!pwFi5st?Fkl!guii2c4!*rCH(dk-2$6@YD!#r=r zD(nG@rOv|oF7sa#bV1!L3bE7_zKQ3Sr@JtiYHJ@e8k$M=LDvO#TQ8}N(6gesFv=Gf z2eI!kZ64Bk8&%P5GK|VW)d4?1EoP?Z^&NNpuUTl$J-vvr3S9xE=x^{Q;K+Wm22N#H zv16&Z*0X5)(DLvWt&sBvJW1DsO+Xas6F~MIo!F{>vDPZ?ltS;2k0r<;u|~ z;ad8wd!|jC!fr2HS|z3m=5W9HOH3>B#j0e=)(*QAx@P4t+G|(zs;+PJUwMJ|t@J0G zNoqMKoFq^iPK7(cFgymorAF~sKIgeD?4^ddoke5ygR5XPb2g$QR#9seYDpbr0bi8q zhOu5*xvF$GSCC4~Ja#+Kp3|dNcQnr~WnHzp;{41mv5V)l)RsMt z7_F0wpNkTccM@i}TEJ>F#j zj_YHho1!CJgn5=t6V3=TU9?|1nQHPP61TI$pHVd8GJ>qE_i12jpmO$Qrwr`o$4e9>4)=@`fxY5NBk|6X3jfr zjURf9eGusEEn$$5-_?xAFkQL*d>*a_wc5(7c5`QCN8A5Ux0nu0cIuS#4_fZH+jd-~ ze2$A+mMP_p!ek>iT;3{I5x&zkTz+Oh97}hB-AGxKZdG=6z{kQsPaQcww~(x~E*WD? z%^GFrvwr9=v{S}6=MSc|@PYq}uH}p~V)O*_C+ZHKQ01s0;1so<-6Y-hs-A#QlqzTs zFm{>ioYT~DdL3*9nviv%16_^H%giT9X6@+RP$;s*NW-7uc=|H+7kCFGx;{I@#WqFo zGV`L|!&(QX@lWMAPabg;E7H?pUfP1kKoc}g_o|Py7U%**oW*sg$KWL{0*JS+*agsd z>zAIc%{AAO9o#y3jHib9l@>@U`s7Rp|G=EEFj#~4k_Gfs;gZ}zc4uBlWpkz)R=s8& z)WzwF6sx`+i_60~tj!*U`%$`9RpGVjb`*?dTC;tbOj=@h^0L%bs=$|{zF711L&h)% z(#yFI++m@oB^+SzbL*%v$!zW1gW37)ZZ_S67aPM=Lp@=%vP-zJpJA0n zpGZA6i*!r&i+|DuoZsegs}U{=Cot=oDfCMir60ST8I%TaJIG?Ag)&Gn^zEoHNTR-x z{P>PDlVpR%XdML5UhQ|Zy4ukK)Jo1T))KC`T}?&iDSMBr#!6IGl+9dW?s2x#$A$k% zS%i+Xif^OeXuNY9#aip!?~|?+G>?))Y!hKBcZVwBytIbeE1foE7HNR9JD;6Z)Fl3{ z=f1CurwvDlVkg`GA(6y^#$=9j8nwd}VNR|Y-+`%!kL&%SPDEEHT2=80*SB~Qi(oKa ziO&#{`Fd~zdS{$6{&BgHU))dO4ZoIc%tV+0?$lT}W*`}6(rQs|NEuRsG zF{5!2H}=N22Hl^=Z}>0@)3GE$#%Bh=5T|e`>yRapO_9dPG1Pe9uLtR8LvC z5Vwc4vD}Jo{lZ;fSGq790%AdXY9{>;vkz*{3H@wjR``-K!Qz1ed3qbQ8|0xJc!KH0 zOr`!qz#MCoL}TIK!hE@)TvK?>Y=UK6ov}2WM-psF*VMa4EqsQ)%;n~q!=+A~8~fd@ z|J?fYpZQ5oHkP~jaw9)b?kFGP`@-z_1^O3%2L<3f$|k)C0aqDEXe|dMm5IUCjYle@ zC%S!d6K5`ZXiq_|s~k>XZ3a?4yS9sm4(V6XL24`0nBDH;;D6a`{1vgFSch#$vRh@0 za@G%go8H5%<;pP4sr&Ak{sQ$u!0{OOqmv`a>Ot$9%K%j7T%`qU#K&+QP>pHjJE0&2ky>m2fMwiJ40mq<1i*_|f8GA(=VqoYAikaW`BO6oSdHHQ8Zx)egB>DhbVlo%q+nIKB$&VP-NX*z4?7`W?A%uQ5Ma z?MN=Rws=T9%~gd<@lW&y>Bw^5M)*hjsC3sV+heJA+*saZmV^BWTL_`ik1d>?iX6UY8!C$R5e*coF8YJauAY2dQ- z0OmUUM)o?1ZoTh_mpM{3VZ&2J%^$dN2p<28+90Ru-#HuBo6u8CScQ+4`4gK5OBVkR(|Y@$#| zoXi)Y-#Y1LjJeV-1LiRoxL9sDtpXY}1`~ly7TPs*MmZe)sf|J9;1+fr8=y==sA_+0`@v*oLp+vSbT>i(Xp=twQK;kl~*E3D?zj%-*6G z(rW7a%+q!^lnZr0^YKMki+?LRLLN3s-q};F>gXQv(VLj&%rN>GJ%jy^KO)@cioz8n&q zZ(`>If71b`0bEWNJAXLW9UtC?UYL3H&01Y^9PY_n65^$fLYPUT_PY5tjap0HBHNsM zsJ~l(u5sT*McmD`qy9!4%s%EYtGIpL+GLh8=UZt`bGV=b!Sf@YO1TE+~ynzWC!wGZ-+(njJr`4X((MmsKkn7(m zOFw`MDTYd++PHmWh?<5A+o#Q@t}0m6?bXtyabhcOHQfRhg6Am!47A&PrXMi=L}jQP zY#A<-e((AsMT@oWTBYor)jK<7iXm&go z5WK=Ic0BbPJvTp^KU{^lEIWZK&whX!s0vDhQ{;*BkF`l_sQgs!7#(p%x(~b0)sqRy zz@^A{@`dcgD^Op18CnVycBoX+vrf9sEr2V@V7w1!;&ON>3RxxXH;zI5&GzIfGxy0S zYkP(r55+Teqq^r$9%#Gvj5h(4(1x+#&unUyB_K zKD+G5NB7Mm!)`^Mf+=7D$x8N-o1h96a{1mJhOEues#=H12Bs^&k8i}CVH~;vvz)m` z|3S@hEK9IiyaC?k_6QsJe#}O2-#Li3p^9j`Rmzy4$$BBnN4C?2xlQakxDWrbo7rnz zztKm$2p7i%38C`4+&%5NB(3F!QH`9d_FU8ok8=^xbG!uaA!*boSBpDDS0y*hOX?nF zlBSupoT?;D^0;~VJ*>>`;I^|B;8|ykWtxl7ZSa-p#;@f^amCmROd=b@wxhQaVhz?O zX}3# zW;hhjWQX&`=|&!dKdDP#EI2?7 zWES&{#MZ)crU#i}ozwT}>rBJ$zW}?bcuwfI;ie)$+^jAG{DTGJyxb^kE{=57ae3m z^ik>>`H4%D>!b~N=M+VsY~s|1`S^uW7rCi8h22i&CFAjB>~1%6C{)KDin=!Oi$0{8hG(8~gQL zAL$NwojgPB?8aync|$kiy9md)M)V^WOMGsp~oQKE_Xb8W_N&vn!bT)D!2G zeaBW^m-b9N1ncz|Lfuz!)5TNf~)W*^Mc6^$GP*B zH`UeZd0n$!IP=N>v2+&DQXE?suBz^tdvOR7+%>obcMk*&9tiFdBsjr?ThQR{8r&s7 zaCdhLZg*z7tLp!F>t9(f@4b+j+g){PpMCb(r*1OQP2hTW76cLnbGoCMR_I0zy<6Xx z;{pwt41Y;i?h#njzi$+(7RWqupbJ+~>bU0CD2eCgjk}|S4 zl2e}(N!&Vt%T5hZ#vdI15}Frjp^wQ%z8v#X`SMsLbb^pIXGM^7h%>u=sdty8K6WQoGbSIovMw|BfW|(wRFd zSJdEGrDIi#I_rK>FJ*06P$V{$y@KI1;mO_{+sMfm_{E(h6PgxY$w<4%=g93yhREjd z#mH;jSxpFDi>?tpF>plgGD~$GbH$z)&&3@2{D)MRz{{xZ(K`4}-PYT~*JCDxCPaSo z>+9}%iC$&Kh^eZd(@>=ZOP%alE&@}gkL|RaB zHgx(0`oWPisDDLaao!Fv|9b60bOJw@3{CVu3(uM2mUoiUtBqqj+evnp$)=O|`}|?{ zq+_F&#vT*V3MId#nHa8WO_zrmlZ zd)i^@c;HG@i>N_veeu$t<*lVoxhRJ_$=!r*Be!+nP_PWHzc(_Ojup-qlOS|7@=WIv zmqk^v)NZt`!~?wX19XnateE^UjlxrPF||7oH>zJS5Xk1nb7Anm^?{bRCJ^$so!}i{qJ;g)5{Dqacs2g z?G}ih61zULoEh=gT=l#A{q=Fv#a6co?4P!dob2p!k2%9dEI%sr?sKazw?oSBOFl>? zPKq+Blshqyj@7PYmA@=>kzzKYCH@mH!bt1<9J-jw%QfQ?&-;Pnu zorEW%DxYtM-%}s@~mv6HmK{el&$2oi>dJW_2+OXE{rG#PQM3o zraUJbsvqDC{moNvKd0uPO+iM_603J~*I+7lgxV~%m}N8QHIWA4B9Wx}ig@hYaYs7+ zM0uUw>kH~fd4EP!Bwr-rwYO`XqTW{_NcCTqHmc*;%~8^)m+K#TB(C^q7z21 z3>1@-{F>okLcPMJyp!~5Ht4LTzAYgipnv=z|Itq5X-xUhgUBFrR$g}IxclAsf!Bev z!BxRcZc#a0=k`i@1N3|G#_1H$ZgXdqTq}x;K6ZxQh9aEd%Q+@ejeaTfyWhHPRTojg zen+L9(8e`~{h$3g`iOYzZj5e3<<%|tQk4d*H7GTY^^XiJNo82b#* zZ%oYAP}ax{ucaTYvzb<6q|-P!G%7crEQ-V6gV$7}S*iKX2gf*z+)IHM!G*#4ZXFTw zHidS^BqOt3G=s%jkyISD>BM@mNaV9a{GptwNX+3#dfUQ@7hD=V8Q91S(pzV_Gg=K3 zp8no1<_|N))t*4#s8hkZZaw+VjL>_0>F4QcVjSiOv~2O{^z@OR}BWKs3zO{UMQ40 zbR?WZ&lX3NaJI?kcCfjrXX{vcmA5n8HuOHU%Zn{Ky5*y;FuRzqpS?0d)Gje zlgZUoXIWrx)TQV!XX+o3Qn&JipV9Oaj_RtismoGx28OD1(&}#_cfTC^Tqx$(NILUL z)KsO^4mnglm$lS28Jn)jaIdmgTgQ_LakyWKUK}+b(9fTYplR#3iaZY2^SUv= zRgVe(ajK_X?5FZhFcl9d-tVEhp|X+mdYoM#{-7Gywyszv(&8vs#F^R?^IxcnKT*Jyf;ofL1FhZr z&L-!3=b>C@JL$ZBKwq|-6@WT`rEw($0MMlv~$nEOP5o_-dr-Dtowzf=z=5LH+e^A9tOz zLbftN?^5V-=v%KH>vC5ur(fI2Rx%g$SiRPd?^O@43cU)a)IZ6rfhtiY(2UYJP2^!* zq~pXkyUgSi zC~`ZyoPSg@xtBU1q5W*ynx=ZZpNB{+Zia3SYt)phHDP#KRnf@yOJ9ANV zz{4Tks&a?!9XS%Z6p9t;=+*J>`up?>TUEVve+%L+ak_{hI=BB6Wuyi;*~i)LlydU~ zvIpw~Z!t4fll<~(wfS8u0O*|7`Ys}9hx0^svF9uPFMGZ zDkS#krhXT{toC&|I8SMtLq@r=qrODHi(VPTyK39&02S3g<_Fu_4z^jv7@5V1>sD|k zilu(Wa20y_6T?aTY-SK1ffpj7n&~WbtGXps5j)WDK*mdAe^k%hl)+fR`hiXEIJb}+ z$C)o0>mHGW;ltsIeoq@$y-`J}8Xa52e9`T6DSt|&a5!h!MtYdv)uliNQ2#f#p-L`y zi1}pcHg=q8ZI;^tsu;bzaZ$qpO8sHd;#$t+{p_{!N_cIk&ClZnJLb4<9+liC_3KCK zN3MF$_22e|m?w{@0q*qRm#70#{rK!qQyIS6N3XOaWiwSy-IedC2PWbd&26uE8$$QL zl!GP4)k(xLzh!ix*mZIlUBK5zjcmJNF5TIl(`~#PpiY@5`=zD(HP?myM*MIE;-H_I1~eiMjMLq!RDliDza`Cf1FE9%U4nY==c zQP?RXmisZ`N1;yPC6S}v5I>7iw4H1AM6Xi5odQJuK)MUN&JJ-Qz;;W zX9JI%!D7CDIQ%da6=~(~GNs6U^+haVzmI4kQrQE37S6@9&`;i5Ge~`M_XbJ@D!X%? zHcn=qxR%Ia{_+3wpOc?nxg&$Qf;pIxs%rn!C3H8x43%!W@S5;BFQF}|GP_|%%i6Y@ z?(6UI$KrNqZFZT{XgH^+6K+L+6J0ZKLS7+bG|+`jVmsVUwmYbEqtz(qq0?10w6neS zp_ws1g@#5R_&d!OTT7&s9n~$T6TCLNtYW?eO>^pqP3sg1ybnwXJa)&sZQbim2{jkS zmod^Vyf)H9_Y~dL0ku-bViu%`Ij_^}+g_bW{qVtX9Dgl3PP*W~!RdiNoeT1sm@U3~ z+%m(B{x(fSBAm=WM;!@PMQc5y?|8YrCf+=68qt5;E3XgQ2I?&PSU{#Xqq$|{N@R>b z8MZIwMVZR^;@%E!k2)7D@7@zfbVk3AUlRY^Em=<`pia#U^Qolnipn5u*-+Y;yrKUh z-!YMPQ{IuYWk0!Io}rdKXOHWI{#9?XJ|TW~?*o`YD%cBzuV%*y0?rj}l9FX$bLwD6kgDdIn;aBy?5bYQCbWLubGCKjF2eqw=mD-x;C z&X<52)iik8Ng#&##Uj_JjT`x$^($T0JU3ayG}%YRRgUoe;*n73Y`Csp-X4`DoX1W! zcfDIBuo88_b)rNy{n4A{-!N;b1eUoO+^ev%U0`YooZA0HrgAq;AbioQ1mErML^+FO z3Q>k0eHs|gA^qG>qz{-~GE?Aq)b!})Q77FvDk$=x`OQM{E~caOC;iE`R9W2OZY`DG zKJZS3>xW}UO48AN>#xuOn^G=y#szK%s<@rxK(p09flIZvNUV}MeVx-zPq$g%Wgv54 zmnwx;wE={$ zj;pD1sr^@9WRC4PnXO&m=V0eR4riCROGh{%Ovv$WhP#CuMsE5k#WR(}E#}0R^NgcM z`yc!Rx{w)Q99u;!Qhx-_MRn$G#eln0)HYS|rj0W-?QA>CKCxjjR4sAZQB!jtLS$g* zeN4V^cW=2)YH!$%qBS}CvGd7Uql$`&`k5zvX|y=#)C$ZFWC%>g$&<(};B=AO&3%ts ztHZOrp(dvsqnfIWa)n)O(wpV_vj5fbIzBu+Qc-^tjnI8F1^2pFR6RLSbQYDwA^XA% z#5a*$J|t!WQP%@$otHL~Uhg&cR(n_Il`izE`vuHj;y9Jma#dPX*9pD;^sVc_%NmLA z!0ri7)4-!(iKzbqshyKHjV|h^($c;ZVOc;)^;Bk3b<`bMKy+o6Eh@A$rgAu^pTMRe z@{h?rvb~%uSIYbF;gUK`=VqF@hi5VrtPqtv*c89~8JS3?7QM_LesQn7XZ+Qi!c+Ju z;m|lswtAyEq20m$Z@mnDTQiZ#;d;S5!CLNY*~r#3GtI9yj~F8kh`Mr)`qj-7+#j6C z1j>Kr5+}G*WP*3cKdQesf12ucET{1o)mMIFGx(3fO~RWZKj<`~wCdm-M?aYlp8gd0 z$@So7_n84`tWVfhDhH^)%K1qZkdwqMylQj(l94}P!dx%nmqatF>hw`>#4ei+)DO{5 z9ie@HqMmM-soR0KQSqXG3U0z#vePEB=gc6c&Z_CwdW!j5d{#x>*>LFOriS-#cx`wx z4zOwd_d3dqwuj}n?w~;az;{l4aZPXZ3sM0*5G_?^rx~$7)@>J<7O3SektOI%tqr@8 zD=@*Y47#VtCX$PmAl_ViR1fqPhBJlNN7n0{@}8425Oxc?L!6w>M^zE;VG=uByE>OS zF4j4l1D^tOn8!{frkVvhN~PkO_GX2tW*>>p zPLklMsKZe=0(aG2`$9Lp*1u+nAKF+zUCWtD!V5DoPe<%ZayP|0UR&Asc z`b8aZhCBCV3)(J^z198~b02SN)j+kt5w{NRRnMRd7=9t(!o_ zn7{pP-e&KMXT3B0JzBpp<)w0JI?rWgJJr7vxrr7Nqes};qM2-~9y()ie=G|=W-9l( zx$RHHA-^8|>RXjrJ(7>{Zsk@3WnVkV-x5w3Y7uG^DWxyj--!LcWJOs`PA2{via+^e zN0(pXc0u?~1m!^@qYBt#VVvD#hX3CH1u3Ir!GdR`lB0b&L>lgVD$?vz& zIZan{)~v7}$if-aZjldF;cECcZsGFgj+n1HIjbFq+B#|Af!iO1>w{h~-A`#23guLC zbGk{LJ2C{H7!Dhb>wgMw3pwGSm&GKJx7B;~5H{Bft{*bzO)m4R&VmBiN(@J**&S6b zs$yWjnl0Md7<0z-G#7}EJvx_dBOAgmZ>rj&f_@x1f?Fvqv-UCmaNXZzBFfw1uW#>` zP`}#_`nbPMPqMw`a+THj*}3JccYg{bW5#E#=%jB%o`+B2mJgYl#8V5AQDhO#I02b# zQ6_$;hqs2;;UBQFwENthh1QtcxsTiRrtBkr{m6f>Mzk1%ouaoY_pSP0=F665D|5W$|IFssTb+arixu{ zchTWP!IcplcX`xm+ZkrYe0Df79mapyuTtW(2+0J_bVoP|O2$K&0Z!*x|oXSi8*jH9F&J;Kz)|C#9DL3 z`z72slquZW%VzqE6>_z#DO1W4vMWai>(d!on9 z)w$q&fBE~(FS3*~*2%4&*?qdEf8IOg-NoNB9c5{fE+A4nl>%1+Gu(R0w{uK$6PrHj zAhCzO@_E_JNfAgJTpt*Pa!^|5@iyVoJLf;qUCnIsjdeu@o^*p$qOVTuJq-U6>FZ~* zzsoDCp)&%G)t~NGMRz3#_drkczxa3PFa7Eib$8>{>rRI}77?{lFZGUvKQLF4$<*^>jNlC0@240ewi8mz~S3<+U8pUn;PE84^aUCi9Jz8vc; zanh(Bb~-Z!HastK#M_O+^NxIaOgvQ++?Vctr=dJzQfsN}nWEx>{6}SRS~=Vo?0yp% zf^TY{T}SV=W@M(fQctv_Vf(dkRi#7Mdt?7L+v%gM54Vo&!9%=8HFY<+ncbSyxRX_F z)m}ceQt$N6fW|cQ2{FY4l z+`Fzzpz(ANNo5)sTvK>$brI72{n375vlG>5vzs!o(ha&Ro!|JW-DPIG*$?4q&F@dg zTT_*cm5Cg>5pD0DuB`L<8hyTy_lxc)dOCFiUC>LrDi`NuSy4h^t~0j3e{?1zZ26vt^F&0UQ<}4Qqj(jsw985nM)<<-so>_brFxqzNmh3w*|5U z(+19}w|0%*4I79{AN8qBg}S*wZj-O&6j@Y!WQM0~cpvZBi;6ugHp-DQ15uw#7L&_G zYkLsw?-V|jMzV|>H`pxLA#mU6t%k|};L%S_1N|M^@eg{2{Y(s}b_UCmwj%w}2VQJH zq5sOe>CN#QnpkqP(>PEoaNPNWdo|meiM(4Ou?{CgZkb#C;}i{C3f!k((8@0KqrF&6 zGB<+h&oQUXPw>;G@}|s7&34H@8A%q&;&s+B_5-=Mnls3`;?#Egy1SeYa=IO*kN6Aq zR+~tzccSqiWmZXLQ*jWLvWl+j9S*k*Z$uwTAkwOPDxZ2JR@r#=gYnEd6EMT{UEQBL z;EuZ`Xo4F89h^LJwM}JX*>}YL2mO%F&sfn(O>&AlE#+S(9^TZJ_)4n!ne=k%+(EVq z&ZnU`Zr-WiL_w24chFDGUXe*%R~el8&NXMayUo4JOwu`%ir7DoF4o*c>?S&U`IwT3 z5}CvtTiBHKCvj6lUT+Wj-FGOs?O|?rRe#v&Q~6qSv;jO|J!GPnogiUOZqBib#ehr)s40hwHYPN_j;(zCl@%Q^{=|8s9 z*UVYbOr1b)8EG@>KfMO9@+4*<@Anf(nG=RNJFqZN-+e8sp<{jV-@|xH$V8}{$5Ajh z$gMJ)Tw-hKN0EBr2H_Wxj&!{$qVBYk(ej0emR3~9)i)0Hw}ozHbEs9Wp_=~(JvAir z$l2nIoo2G@%AEdq^b>wjKRAokeX{a9vQiS9B{lqXekr(cHkfdjxusp?i-RI;e#RTN z%61a}FtOQ7j#gn}zf&MRy^=XN_p*DFye@dqLC@wx78}zw=cX{t4sR z05@5o_Q?*SiG6Nf;nbOiyKArRXmU|IgOo!%41o+6y|TzN)EcWJ~o<(W!SXJB{30 zZYJlBNI{;x7U|$6qdIOU&WZ70$a7-FVre}0k5>9lk0eB$ST%sg4aX4 z_O-1{7qXMAq%Nus%mBr)_4R6e_$%!<>Y1~_9gIJuqm#thq)y1pB7w>8*CXTK)9J-Y zSy|1MRYe-AycoS$hkfqIC02L%6>Myk+x5spyL$_1~EjAlkMbsA?!YXZe%F$c-AXueh_WsESW6}&BWjACwyH^tD*l~5VV;R;Dz1}E6&C5t4o>Lzen;Gw zzxW$@|7*6WO6T6Bt6xy15&O(l}Kg2_kLGF|1R7N){aEU!$DxT|**Ut0M&B{>` zB*!a$hm+ij+9RHjChVP!B=NRWU1gNNt62Qjn?kUxqs}Piefx`vuz?Z!gNZGls1wcv zXE3@!ck0|iHmMooC-5pncGLCyWJ=2cIAp7%xMd8Su(zsN9_+(C3_+ny_|Fe9_w}{x9urXs9{cwlijH% zbK+HMsH>azcC?(TVmPHWs5_IpJDs{JT1?QJyu4(^lQ5oH;)LkLuV}k(Z`oD$Bw6%; zcPWy~d&2!v3Dp+vM_NP$RT6HxRc4e~!~;%YJ+sF?#@Bbl?c{z???p|r#U@=rZ}UUm z6i@lR^dhRu!)kzv3-?$F_o}YrplxPCyRRYk$vI9{wAT88?oKS}8KYB~hxBW6qBS)T z=fy(i1>35MGMC-tuZsBLm63{mLetVFr4D^4#>xEZcYFXH#W<5o3vM~6&umkG%$o}p zHposA_v*m<@Y^HgWV1n&Pxi9h|cYQb#%KEEsdl~_6}TJ99x4~?Lctb$hAL=Iyn80~N=}n)WlNbt<`&&db$@c? zWB8xQdgjqKh#_(?uK#WDk-tSNFtd{Bh?{J^c_@BxRA3xkmZ45sT+1_2VRP7MlaY*y zm(RA6OS!pekep@@>Dl;7T5zw(GJls}MNh^ryG0doJG;L)eLE?BRrbE+BfAY4Vmaou@O)_qw9%U2abtx&&bI!)1|VbUtRw=1QUL?y_Mx z)fIBk0P{Wl&WU!sJnr-g+~sbJENI62@Kr`kw0%r(YczF7b#X)-?#@q&Z>cqnaMaGfS^RJ zC#fqh+Crv?9-Gk&^>O?JX%WqS&s!#6VRI;tIBep(HSb}E@rb%V>;LeA|80~3Wi+K z=|>M{JSXn3c}#>B^1H)$%7{}qd5VY^c8~qbeq-a4y|;QZVJ$1o8*xA_C96Hbd$OBb zAJd}o3}Iqws%dUR;vZ$4ylxR^j(lKOnD@j(KE2AXikBxeB#8foRIjC2K`4@^Ea`Nq)8u^=t2Tp`EzNu!qknKo?6wOWl6Uh}7#3RdGw7tuOz!`d;hxoHvZVfjN zN^?d#Ti>E{UWmND8IIP&47S_EYHHe3A~Sf|%CAE;Ki~Xk?=!O!TOB3#bGX92r&3C8 z$0yrtV$!S(_3cNwT(*$;Wf=7@x$Q_7>Q+Q~P5q)KE*zvetGq)DqRU=X?1v90GpBVo z6JMlLFUhjY+)Yk5)j-Y@$;b)2%rnmZbscTziH~TiM`TU0&{U!}p5b5eLw-8`w63{q zm&nZcS*kl9xob6%olnhmfQjknqP*NJ2dXAc7&g3J?G#gpi{k!xf21C4Qrb>-x_w1e zaG4Br6Ha^HzwABtzSXbI9-?poox&q<&sS=Rx*1j(3s!eTPtyU*ROT6JzB>PGUbgIKSKC=DD7LN3{@l zZET{}ea~EHNz}MoGOH+V4)Kl${rKiLJ6Ig1!;uk>=~~;7nUSq}hX2ev@*j{3|d<^^CMdk5PB?K=9nQqkjJ8cOjd!~r1qBhRmUHHjr6Bp;m zKto{V#c(#~daJmnKQg57TRJar9R*{ z(I?4JgXBi}Esn5wwz={3T3wc!ygxck9P`pXk(HfoPFlz3Q%S@n6xJ7TTqb?QO_31= zJBfRQ-#R&-JMp?wC8WXgzwdt@mz(AZC_RF4Gbkwcc`Zii{2u_!O1 zL~py6$~+~0n%&}0rMNXByPMH@FBMVs%>GEF`&u8!9v3`6sxASxv zr+|j>MQ`-)rtIQ7a=L@AdsP2nzm@6LRJBaa$Ah{=mFFx*i_4~*nM~Kch#aBwqPwj=2l)+b{|=oi$0eO2;rdL{iR{gh0T8l2h!PL1ZChlg^Y_!ggD7JOJG zMGvaHnQA+;r(r7IE~=26WN)%Mll?k+j=5z2f?2i}U+i8x+UB;unNE5PvtR4{)W#L( zi2ZENDV0(!mSu6v4i&e#QRA_xN(8@@xt%pm0kEXM$ZH#z2YR9|1NXc~yp1+OR7V%< zMeXk_G8G>39cB~RcM|T(LY%^0^18Uf4BICi*Q9~7Ra3Q{S?E}oR4tspHDp&&-b!kL zO!UiIfhT`(kK-Zn56+NU<|B$&N!ZJN|7TeAAEK}-!bHY&)dzO=oS1(A?%(9^KY`KR zRDU{`IYFT}wy|l4cF=|n%PS_%#+gdCAV}1XGrAe>m4Gf{0lF7M?e8KF-sP(5DQ@>6 z&OJI%pX?S~6f1ECoq{8sr)p|}hIyZ;8f{C0rboQ_#KjHW$u6Q&NFw)$Hq1Gt7H4fP z?kC7@`kQIQ#a$)c{O&AgGTpEpA{U67()KWM;cyR40#TD(c#?Pg!G>^a{Ku4KQL2O; zDBK}F5%$s6?Re>O?%P`e(z z`8#GhricJIGf)48D>61}Oaf}(f~vFXqk5qI)l*lP^jXO}_BM)pmHwi-yh<%Qg531d z*0AgGkGz0;mh=PUuY{twT*&$Ug(vY~`=?;f2l;y?c6T=jR@ANT4s;T5SIKHrmkc<1 zi`$&24(IGDF;u>nlhB}#nZml3pBetypV^8VrZuYgXYrWMb8*y)xZ(nm^1v}{TiJ7**L~-sM}PX zr+xnx$GgFEzGf&smsdRo+{P?yrdc{&)Ot)b} z*KkCAi>_bJ?n9^fR%Tb_o%hZQs?v$l5g*Mwa_|f$u?FCnKO&M)1@@7ixN0kyqyAIx z7O4M5CnF-8;jO+U3h*p>WM4c`ec1WoXm!OvnyNetzZ*~qHCcY9oAT7$Kv$W9vU1ga z#!;D_v(yo7zYw`%zAmLd`^ofkX66;MA>TMJ)Hf*m#l;Y<3{gv=)w)mu}|+Gnez90gbXhx%;tBfEKe(ALG{8ZK9z(Et?Sg#mOe6@!pR{ ztLaJ2mOvy#)!zr|=acWnYLwLMu>IAr&*aq41I<(BND?rGH4Vjt6xd@@L0fGvG59^xy>#XM$lJpkW*GP94nKZXin+A@qW7Bys2=}vuSi8sXajWk zS*E@I8(nviPGHC2(#xkB((9=O=DVsRszYnL*=$6qTO;lf`{Tjqv~;95pwIU*tMns$ zOj~`vohPj)J8|yga7tg9bEv3ySjzzQ)fSOjHFGqcv+KAgs?!TDYRhnTYB0?)ndpAO zer)GkZ`xYs8{Li`d0KYxPgK}t{0^Y(@)K3WMR|b=Y8lnzV{_dG12Cv>cup(f!S zY==&>%8W$c9?mJ82-YrUUM;0K$M;u*&BQWAVG3{kcTB(}kY&ji(^Wz>oS*ps9W<$! zW{co4&cqw^rDNbY>D4o_%>~o3QN|jN{E;iduH`@h% zy^MHkEMrr5_hHRXb06Un*yl2Ty-tFY&mrATV*N>@NQn zEv#cSw-r8a0pVfAx zSRiMr&uSt5+a97JGsY#2q$XpYOb4jR-`cyPjtt80m^Z7+smNjGn>_e*GK)jvPt@Il z=m59XVLsc66^Lc~+GuLKS*UKeMRMwjPa>yyjxw^!Z^jJf1^vkEh6*;*R{AI6I_%g75qWAN&zt?@;jlksfBo+v&KZ{!16sJ9+T zWVo#82KJJPF8$A*hU<7dOD1aW95CoJ+!{DSwS=|ohPmyAUFHV!m$G9$$WuGS zODdFw%;GK3b>J6&;`Qw=qWBFAcV%Ok@J1AZ!qRdR?G9rNHsg@k%9ECFEr4+yl&(zT`>P z!QC^VeGQX!s5e{LAI&1&QV-QT@jRB{R-5UlPAiFk@6`lUthqJ`yF8b^`c@HNHj_tW z2{jMZFrD(mblVhOGgBut|CpwB3z7c;wB_ayagqK~0#l2ezD6H4aYRb_ue7YrdlZB{ zoa7};Jf$U{GzY&L(7pH(v?wbFQ6JZ_=b3;QLvJT3tA30w>TQu9mRJ0htEFJ` z+0fK}76Zr^wVjq!3R~o#;$Kc^Q`?icA7httR;SW`?uyT&qlK++TT3RyW7uH~nuBUNO5@lhO*qf{dJNo^c{@k9}jAs-%|{9+Ut zXfMc@0C(aFT$Hm-FDmDQXfchbFG6$$M&LES$Sp62*pI<*_tCI{GgNtTiL%2~_$Xj- zo9&$By!KacYlKB-sgOS(6#_XIj@3$o!1c~Ye3?asn> z0x<3Job={0o7${a;R025K8M-8So>)-<3a{gJNR5VE1+4cb#-6|&WFZr{b_vk^bX9XnH;rrv1; zUcR!&m|xAy6Q6(y=jC$)U}mwM-_$ztZzFb?-!Vq)ALVDxwOu*gt)xRnPinI=-!xP2 zf|->z6PU|-k85tt9so&N=^i>WytNIr#Zgf9nmmB-sIQEYbvQTai2faPFUHA~Dw&$c zikHA=mmijy-b~ZAbbp=CltrO`&zW1oyZ>Tc^cx2cXBK$GZM&Yn$8y-025XDRvSJaq z-_?$T_bo$vFCh+!?>SE=$dwDpmFZ9vH|W|_IxXyRTM1R75vWp5PNhot!fbCwcg5J z!FZa$&E}99_J|?ueRX>l9#O^?Mc2&*oBM+typJsYiuXA}UhhRFngxE9MV*dCjpGq3 zJMfSeLv^@^Dwu@`{?EoGN^__?=#72EduGKhF{hu9TL3%q9OLo1`~jmKD_g?od(wl* z!EDhwK9|aNr^DQy^Dzp1jxpb%Yd^(*-3B~8#|;;gZp&m;1<-pH?>|%&qtkMg9NE)mgb}-T0TW>Btcg?5C#pl5M+8~Gn) z^Z@K_8k$34xetE!JLkA9`SOj}L_WAlhhilY-@|Z)%r)Pl98RXTTt}_{J8^M|o!r6G zYcM}4r=teAo0gjaUJ(1w;pT^kaEEH92fS;c-C&Q9iCd5nGs(DU7~O0eIMk0Y_Sj~H z$;@Xzp~8NI^VF5^;EFw{SznqysBMX;tzMufzd%{rLUvli?AU4YetfzK#ckO3;5SND z$H%bNwugTm!r^#b|4r7rV}fWH$I%YrN8luKs3?7UTjb$uu(1=avwIMUe z54drp9doVUn@YI7^TNO8G3mV#{#?XPX40}Rw`#S3Nf#w>)Yco~4y+#bM^C4nE`V-Yi~E8u@!1Y&-m}CK=1MBE%lXMDK4)SQy`X}q zSLHyqo-!d(o=f}*BK~21N9Ec{_IgJgcjprs?FK5&%4pEB$wWhNrB{Z3-{5&h!P<)w zPe;-9HCR`PY#0{}KC`NcTQaHq0&;(y^=M=kqbhuBE7(Ogk?8u>Sw#J_2MzKLe(on` zE&YdQ+-)*~m2=b=IUjD500+^x+`jS2E(4vLf=yq*_BQ{EjN_ccAvmtC=nZ&)8u9*1 z@Q^1%cR0kZH-nu7>8!q@UvOQHP>bObi{%HHXB3PFg@~?C20Na$J4KJ`3)!F-HFY9( z@H6?Tr`c-KfyDhqVbFPjOoOtr%2o#TH>1U@wYM;#~+?oZVBbZct8Hsr^&Vj|fjKl<1rSZh@fAw8Pq@1h{5 z^Bkv}o1JA3vQs_L4=t)9ch}!ABl*r=q6a8;$(f{RS z#|PW{;T_3}w`3o+eN<^M=cDNwtSzOQ!z1 zpkSsZcSS(T8=@V(oyu^qgSZgmaT8W)GTUv`gmLH|n_*Tb;cjigh1Q?i64?39^ z+!%D##3$x@P#0w5Jhdk>>QGr_GRe`K3K8GqP-wp=DmF5+wO&?`6JV3odB>Ty0Bo(G ztRj=6M2un{@(O6W2>0Sr_(=&^>qBzoB2ITvQ2!JdGXW0z9lxn$0tl8B^lDGV_8uJi zTYL{AVy=zP7lRX@VO5_}WBh|Br7X-W9o#b?+;uJ5S!dRK6Kc*dc-AQ*ZV>#t8?n@s z{GxD3_a{=Xg5lXfu-4Ri)zL@J!Gw3%H*idWvgzV;83rqD1mla#{Q{kA9kOUkROU9k zOCG#-8{szlxM8HXePkyvoxg@@o9c3l$Sjs{(w^bODS%@oJI~XFdw*BKYFm>@TCjg{ zZF+KXdpqA+J6AMeIE2Ag zYZ~=gIWa@LrgFbUjBH1xPeh$y?PgI0opBSpFda<9A0dLGs$IuEE`@`fvsGac4Oz4O zu=t92E0z-%X^4y~XzBClFfGDuRfu|h3>>5g(Q%*8{AU}8Phv8ixeKi5XmJ?6b`d7< z7b`OrzLTA^S{+_Kn_6xd4!l44>ltkK2+=Zz%+^=lqZ)dGem{j;r~{SrLK_<=!(U=0 z-NTJA=m}Js{dh`GZ{!^tqtt9A_tpmyJAk#FiH^raUk13+P!KFGHBJER`WsdMGq_n2 zRlGL$e4XVElv%boC+Rp$>kHla|Cm1SJfJ#$1=e0C6J`PR z2a2<31nb~KyV195pjDmWY|nsu$Frq~w}qUMqRcy#701BlKVVmNVUQzmBdrmd{zDhm z?JsWLe?i@_hPnF|(-hc~DMSO5JBRMf1`fogPcPBK}ujjfc5qigNhaV0j zSCl3G|Fy$KHRgKrtN5t5pSYJO9$2-Cs;dzy$Q0avBgt!bsk!OK*}mvlg+ZII74r8m z<@~%!QT8dm9Ezu`FHx}=GMO_k0oI{ieaK&!abMcBC0+<}93{ zg!p=gPi~l5Qg+gV(d~!7)fY=qz8?~CN%`|aaQAt1FYcf;kB60wkR7NKK8xR|6mr3O z7n@JqeHIPA^?=EIvg?S!BCz(Qrm3k-tQI8S9Yc%k#R-1HcQz*8Qo@*T;&qG59>vFh zyPI!*4}MLi_jZNu#4dh=!g(Wzu@7+fX`&s`RL5R6%W!O@;0>Qskt_ynxYq}sF`hnI z87hU=+(&ZEX6HHn;!hWHW~T7dUV@Yp;R8=}dcL&@h?1W(-H^9zjPjiboM{FoR^`om zqV}(q59C2KO;Uv~*QocmPVFnE&4D~MZsG zX_lgzX9D4Gg7DYrL8K!qlomVfuXX@$Spcqf3(P12{tV>}Q*kbi!k;#CVqW9c-^~t2 z{qM$(&#cIN-u@V9*^CvaL}zj>Z&4B)O#sU}k6KlS-t;QGFjwdWKES!%m3(rHr)0JR zRD4Ls_BZh6BE8GcXkb%7FU#ANrOqqJ=^jG=>;u*F8^N3&RmoITmHM30MV!(7_CApx zpNQ{H4{9fskU&vf$w|t<k621Mj=y)yt3G z_&58y1hhPjs#?(Q28J^I7Jn>%Ys#~0j&!!#~OJZ<)3-w25 zxZ-p)_;uu)MP$nPs7B>EPjmQdE^E^lWnnj(!8o+B@8IkS(7%G9`A^(sT8ACZL7lrC z{HhMtSU7ZL9KU~)gLA^!C-CPVS&>Tgzzd_3#09}ug8G^1KolhQk5L`(Iv+SSmoB+XJm) zCVxGkdm2HbJSJj9YI0>+c*GTU1zhkcYm!|2G_-X%MN`n|xQ$MygyI|){>f+wy{4{i(RMo?GW zL-`tnu5g-MS&jHHwvV`s;`SJIz-0}3v(qoXPD&H|L74>xRhur`MfPe2H=~^)F23Wm z-Qv8(C-x)M^M~zNTm?rs-!rJ5CUZjfGnJE)XnKP8cNvkKOMW$z zzrfFr!`%rr!R$q1CjWhkomgg?z^zx9xV8@~W$3MU;PfwrE#{%7>jqv-2D$&>txL+E zsIGF+U%d>rN>tU9JWn#v_8F_%_J1gPgmr8{?7w3d*5fQH!t->cddLbQToaSQx13~R zMO1wtni_G&vcvf5bMD)T8=zWRSiK>qB_X~BfHk@Qcc$Wr*?i{<@?>^yUbux$_Zy!~ z!fN;AKW|vIC*-Dapk)H0VHBBSDo@-WZO8>H9crZd=!s{|k33CsV!u2)^gSybo3)-y zT(ku-@=s6tm2N4N7Njnh|wtcFFt7`-nVZyj^T}-AftDxGaXc`s zEs<)$#G9~z7OYwkV*eLnc|TG61K8D$UD-h#7K2&DqHgXdYY`V+IK}(H%3~m{#Yy`; zs5gjewzo)wZz84L1Uk<*ugF1ja9za(gWAIShWsyXR&%<4<7slieZwNB{Em$0k@@Dp zWAE@LIe3@qu$l}XURl2 z@+6(t;_UAhwCydNv%J(T>FH0P{Bn!!CpdOvcJV2ddKU6}QoegNkye2xJWQ>gpNtuo zjPdn;#`*loeHc$0nC@8i={MdZ_y5?uv}>p=x0|$ZgV+2UrHGh9RNLQj0uQ4@^ah`9 z!XGcfuIqEU19CsuSB7=_7pB}6e4Ys={y_d2z&l=r>E_@(eLxwAaPsT2wpr+G-Vsm9 zrN3~Vu964t!JTumhQr98A9=^D;OuDPVkqY(F6dVWyjlTgxC`S+155f$R9B!5yhXli zL|hc3Uf&7-cuf4?rM_-OTTv4;$P=! z3Ucxn^QXmF)6FQyU$ezYzH<)eI}Opbj6Hk`N-I>s9h{q6Fu81~QMFms+n{C=vb@6A zdx@v-2pf8X?w5jfHMltTv1(_jqGqw)jajeH^hC~(yQ`8dU(#c{17j>eg+GIMFG}61 z(5gyPmwbXtGy=gwphpjCh}Nv;a!y1vwbokjqU8VFeJhCN7qFcJaHubw!HoQW^eZBx zDu^+hXgWdWzJu~NfED=2-IQgi2D-sta-lXY1uy2ZKR=LV-{RDZCW0@J`8%^d2gov| z;mJdIs|?_IrT^{2ChDf9tXDkif!@_%Z&`_p%jCuF;BW-yVF!N9H{bnMt7oC6< zXw$Knte6T<&qVC(|%oB|Q*}srq zFH*lI1kD@5E7udh2JGJf=3HZSijtv!L=RZVo?IvU#e=oPft^gEir`jJ-fx&B;1$;AgGodCK$2%Txe$xu4)`HYoy&`VUO3!ud`>Eo!~)1{{8tdmkY%3t^ai_GZPo>_;eKzVh2dWFQsM2W9(CY#ys{S z8xymM$Z&rXGXtnB_K`Pc5RJ|G>4|v9E1Z|aoaq&O-*wJfYxedud(;J1lb=tQVDNWf4B{d0HUP#qh$r3+wx=RXtV5?sL@jijyFyZkd*I7C@__@}$oIe4ZpY8c1vl@5 zKJePS=Nz^GH*XO;S@_ll;6@pq_yTc1o9J-)Ctv4~U+^@?U_(P#b0OC8>86~zHFzd- z5!D4jrYoGo;he(qR3DkCct`LqRp8ybL8{T5?CiYB*T`qAkPK7}96G|cUgbM0vQu+e zwMHO2^RUF*R@N&OahiuLv6FLFiS_IPR=yx#@Vk>)w;MR9&cQM&fEP!3_q&{ma&VPS z)H6S`hk5u(n?QxsFtBK1ZVIuMm}kgCTqo!KzSwK*!2-VX0@+{)I~XC;UZYO#L}rLb zw%N(5Od)j+CH!(^Q+#Fgr7DPG+YjfEg=Im zBsV<+RYtObRY&Z>w(~Y>mX~Z69{`y-4iTxd5!W!P-Br9Hp z&dOc1__v&=(6>s&)S3Yc7v5k#QVAI&pql^B#eC!D|L1fE$ua%lh;?i&B48=|oSOZ~4}Un%{~HO@ zm`?7!0GG(Y8!VyU_2B9G^GFHX1=Uu{584 zzecH#CG(R?wc-yvoNK<&mw%boxtXqyR;Z*;vG|twK4wjFg!UIhv`F@>60rlWi}kk} zjeCKw*gMC1XElwtdv;=`_^(q*ci`?}ZEIjX~(?H@5pb!X=O1-bRWUOX_;1O?h)@lc$&t4D2wuq3?Hf8U3vI8-j-3}_$1Tz(*C2y-|0}T zr;8ru4r3{u|1?GyRnl9zvJ>vK) zm7$8(N>s$q@kp4{)`i>67^A8`#J@GF#;;xLcp#~X)mp4oGv73>m8zt}%`dLVgV)W? zR#N|bF@6ziWpp%Oy_l=dAtIQK2_MoU;-jhQNf>``ES*Ld2aKb?qxu&_@HKs(8Qly$PNj=M)_T$M=PLh9IrWn2 zmVx2^6jQ|NRb%7_G`CB3$F-kDR!M(W#THP&7~V9B*FM^L&v}Ka;hlIXrob(5{L+ZN zT=iNj5|`*=It|RlYq@xwhor&Ga{vtYnSm{&;AJ8_BAG+IXhyRUuZJnT9^;){4NsYS z?GnSqta^W}_2Ce+y6?*BpR)UX*aoNtfgROc_7`~S$^$zq$8+_l|c-uVPS*FbZX z_I=Y?^8DH{Ebg~&pXy#mFO`^%D`3m1ZIm;vz=3_~jSO*DJ5MI%h-XcQLL{oSeuFY%bngvIf2vMv@eg%$9hA@c{T5&P z(BVw^ayP|Bg=D+IfO@~B&nAAnq00VEP5765J`QnbG3=tRn3-&3Z>w5a zZ(cJ>+#jHfpUBBrWwh|G+E|$f`8Y}$Po;ycv962xYw~HC%vsNuG>!MfLRUC$i1%4h zJVg1ms%fn77s|zXGSa8yP{wCi{;!eYw5rz)2P3JYRh`@+pZ*BVpLn{Hg%ku+#QiIH zDW<11uWyK8Ii@Gk#%xM`Q08c$F;%`rtorgWhvjRu z(G!k)*{c-C0sQzxjP@G6w!1UChd1?f(G!kXKgW|J@3MRxJDzY=wuq_`S!J&7Ifa8_$7`S*2yzd!+{ zYUWvO4$9v;t$K(^iF$Au%kT61pW?e6s?f#f{@1VA6EDy(Sn>g3Y!D1W^v!_BF z%d~8UZ@;|W%Flz8a0Aw2zUA`%x`?J}?hF;S%K2Ma`zAD#py}hRHpeeIdR`2p&;EER zk)hS_?GoKsAHJuW)v77|RLfhTD#O85NE%@;#^O*>oFE!^!#mKiOFTG;w~zIlRux+) zwUeG&_;r-;ZyRNgX;D23S+rN zbi+Vz=XiGzdlwS5l)*OE_C;AfhKIr0S*?#Ix@nfFxpF%T%Fp;-#oE7NJ>s0`Z!msB zi+%YQh+D-c+LYLLi)|D<`Szw^h_;7s>amqCU1+1-k(gheVy})DIU*Z2C&;F;7%bAZ zSc}j zX~!dDLQicF1aH;6t76;xPt97qD@3cZBvP4bK=7PFmtE``#Nr55vxhy6{5Y4?le5}I zzbR+sXwiVT6SkB7Hd0F={CzPUpLy5|nhZK_N@{4HBi-~>%6inBCh9#Y5=VJ>5erde zbJ@(mTN{-&!`t9*tT+2YGeVsiAQJh`31u|U(p8bq!blODDSLzOYJ6Awd%+paW(x&a ziP0pRT^~UXdxmkN5SHFlHo&XQIjwA+PjnM~`ocAM+S$ILMLm4yWZDJ)wTogYYdy6p z!A*V==j%zX6tLTi-R=|nnve}|o-L)W)x&v_CTc~Z$r2m5soXb}aJnTEb6(wuP+5b-(N+Cca3({~g&|lH`L=YIgQjZ3D>_y|yH1JQ{V= zYD6jaw(Bj2twPL2WeqzWbBu^~Fp{TDp8dgkQ(~WbSJ1SQOd+~~%uH(5CQXg%26HgXI5v5MJjyR{B8xi*vUbZ;afihE-j`k@P zE6Xd}xo*8Dxzd8i;4gjxc_#?NoA}#dGxoRH-==NsiPq6mo8KL;I38`I_xL})7b7so G`s4qxr3Nto diff --git a/quasar.conf.js b/quasar.conf.js deleted file mode 100755 index 8f38e362..00000000 --- a/quasar.conf.js +++ /dev/null @@ -1,231 +0,0 @@ -// Configuration for your app -// https://quasar.dev/quasar-cli/quasar-conf-js -// const webpack = require('webpack') -const config = require('./project.config.js') - -module.exports = function (ctx) { - return { - // app boot file (/src/boot) - // --> boot files are part of "main.js" - // https://quasar.dev/quasar-cli/cli-documentation/boot-files - boot: [ - 'i18n', - 'axios', - 'vuelidate' - ], - - // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css - css: [ - 'app.css' - ], - - // https://github.com/quasarframework/quasar/tree/dev/extras - extras: [ - // 'ionicons-v4', - // 'mdi-v4', - // 'fontawesome-v5', - // 'eva-icons', - // 'themify', - // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! - - 'roboto-font', // optional, you are not bound to it - 'material-icons' // optional, you are not bound to it - ], - - // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework - framework: { - // iconSet: 'ionicons-v4', // Quasar icon set - // lang: 'de', // Quasar language pack - - // Possible values for "all": - // * 'auto' - Auto-import needed Quasar components & directives - // (slightly higher compile time; next to minimum bundle size; most convenient) - // * false - Manually specify what to import - // (fastest compile time; minimum bundle size; most tedious) - // * true - Import everything from Quasar - // (not treeshaking Quasar; biggest bundle size; convenient) - all: 'auto', - - components: [ - 'QTabPanels', - 'QTabPanel', - 'QTabs', - 'QTab', - 'QRouteTab', - 'GoBack', - 'QBtn' - ], - directives: [], - - // Quasar plugins - plugins: [ - 'Notify', - 'Dialog', - 'Loading' - ] - }, - - // https://quasar.dev/quasar-cli/cli-documentation/supporting-ie - supportIE: false, - - // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build - build: { - scopeHoisting: true, - // vueRouterMode: 'history', - // showProgress: false, - // gzip: true, - // analyze: true, - // preloadChunks: false, - // extractCSS: false, - env: { - // environmental variables passed to the rest of the code - APP_VERSION: require('./package.json').version, - API_ENDPOINT: config.API_ENDPOINT - }, - // https://quasar.dev/quasar-cli/cli-documentation/handling-webpack - extendWebpack (cfg) { - cfg.module.rules.push({ - enforce: 'pre', - test: /\.(js|vue)$/, - loader: 'eslint-loader', - exclude: /node_modules/, - options: { - formatter: require('eslint').CLIEngine.getFormatter('stylish') - } - }) - cfg.resolve.alias['i18n/(.*)$'] = 'src/i18n/$1' - cfg.resolve.alias['moment$'] = 'moment/moment.js' - if (!cfg.resolve.modules) cfg.resolve.modules = [] - cfg.resolve.modules.push('./src') - if (config.API_ENDPOINT.toLowerCase() === 'mock') cfg.resolve.alias['modules/API/API'] = 'modules/API/API.mock' - if (config.HEALTHSTORE.toLowerCase() === 'mock') cfg.resolve.alias['modules/healthstore'] = 'modules/healthstore.mock' - if (config.NOTIFICATIONS.toLowerCase() === 'web') cfg.resolve.alias['modules/notifications/notifications'] = 'modules/notifications/notifications.web' - if (config.NOTIFICATIONS.toLowerCase() === 'mock') cfg.resolve.alias['modules/notifications/notifications'] = 'modules/notifications/notifications.mock' - if (config.PHONE.toLowerCase() === 'mock') cfg.resolve.alias['modules/phone/phone'] = 'modules/phone/phone.mock' - if (config.MIBAND3.toLowerCase() === 'mock') cfg.resolve.alias['modules/miband3/miband3'] = 'modules/miband3/miband3.mock' - if (config.PO60.toLowerCase() === 'mock') cfg.resolve.alias['modules/po60/IPulseOxDevice'] = 'modules/po60/IPulseOxDevice.mock' - if (config.PEAKFLOW.toLowerCase() === 'mock') cfg.resolve.alias['modules/peakflow/peakflow'] = 'modules/peakflow/peakflow.mock' - if (config.STORAGE.toLowerCase() === 'local') cfg.resolve.alias['modules/storage/storage'] = 'modules/storage/storage.local' - if (config.STORAGE.toLowerCase() === 'mock') cfg.resolve.alias['modules/storage/storage'] = 'modules/storage/storage.mock' - if (config.STORAGE.toLowerCase() === 'encrypted') cfg.resolve.alias['modules/storage/storage'] = 'modules/storage/storage.encrypted' - if (config.FILES.toLowerCase() === 'mock') cfg.resolve.alias['modules/files/files'] = 'modules/files/files.mock' - } - }, - - // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer - devServer: { - // https: true, - // port: 8080, - open: true, // opens browser window automatically - proxy: { - '/api': { // <- this must be the same as API_ENDPOINT - target: 'http://localhost:3000', // WARNING: this address can be changed if testing the app on the phone, but any change should NOT be committed. If this is != loclahost, please change it back to localhost. - changeOrigin: true - } - } - }, - - // animations: 'all', // --- includes all animations - // https://quasar.dev/options/animations - animations: [ - 'fadeIn', - 'fadeOut', - 'slideInDown', - 'slideInRight', - 'slideInLeft', - 'slideOutUp' - ], - - // https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr - ssr: { - pwa: false - }, - - // https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa - pwa: { - // workboxPluginMode: 'InjectManifest', - // workboxOptions: {}, // only for NON InjectManifest - manifest: { - // name: 'Mobistudy App', - // short_name: 'Mobistudy App', - // description: 'The participants' app of Mobistudy', - display: 'standalone', - orientation: 'portrait', - background_color: '#ffffff', - theme_color: '#027be3', - icons: [ - { - 'src': 'icons/icon-128x128.png', - 'sizes': '128x128', - 'type': 'image/png' - }, - { - 'src': 'icons/icon-192x192.png', - 'sizes': '192x192', - 'type': 'image/png' - }, - { - 'src': 'icons/icon-256x256.png', - 'sizes': '256x256', - 'type': 'image/png' - }, - { - 'src': 'icons/icon-384x384.png', - 'sizes': '384x384', - 'type': 'image/png' - }, - { - 'src': 'icons/icon-512x512.png', - 'sizes': '512x512', - 'type': 'image/png' - } - ] - } - }, - - // https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova - cordova: { - // id: 'org.mobistudy.app', - // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing - }, - - // https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor - capacitor: { - // hideSplashscreen: false - }, - - // https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron - electron: { - // bundler: 'builder', // or 'packager' - - packager: { - // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options - - // OS X / Mac App Store - // appBundleId: '', - // appCategoryType: '', - // osxSign: '', - // protocol: 'myapp://path', - - // Windows only - // win32metadata: { ... } - }, - - builder: { - // https://www.electron.build/configuration/configuration - - // appId: 'mobistudyapp' - }, - - // keep in sync with /src-electron/main-process/electron-main - // > BrowserWindow > webPreferences > nodeIntegration - // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration - nodeIntegration: true, - - extendWebpack (cfg) { - // do something with Electron main process Webpack cfg - // chainWebpack also available besides this extendWebpack - } - } - } -} diff --git a/quasar.config.js b/quasar.config.js new file mode 100644 index 00000000..54826bc9 --- /dev/null +++ b/quasar.config.js @@ -0,0 +1,269 @@ +/* eslint-env node */ +const config = require('./project.config.js') +const path = require('node:path') + +/* + * This file runs in a Node context (it's NOT transpiled by Babel), so use only + * the ES6 features that are supported by your Node version. https://node.green/ + */ + +// Configuration for your app +// https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js + +const ESLintPlugin = require('eslint-webpack-plugin') + +const { configure } = require('quasar/wrappers') + +module.exports = configure(function (ctx) { + return { + // https://v2.quasar.dev/quasar-cli-webpack/supporting-ts + supportTS: false, + + // https://v2.quasar.dev/quasar-cli-webpack/prefetch-feature + // preFetch: true, + + // app boot file (/src/boot) + // --> boot files are part of "main.js" + // https://v2.quasar.dev/quasar-cli-webpack/boot-files + boot: [ + 'i18n', + 'axios' + ], + + // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-css + css: [ + 'app.css' + ], + + // https://github.com/quasarframework/quasar/tree/dev/extras + extras: [ + // 'ionicons-v4', + // 'mdi-v7', + // 'fontawesome-v6', + // 'eva-icons', + // 'themify', + // 'line-awesome', + // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both! + + 'roboto-font', // optional, you are not bound to it + 'material-icons' // optional, you are not bound to it + ], + + // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-build + build: { + vueRouterMode: 'hash', // available values: 'hash', 'history' + + // transpile: false, + // publicPath: '/', + + // Add dependencies for transpiling with Babel (Array of string/regex) + // (from node_modules, which are by default not transpiled). + // Applies only if "transpile" is set to true. + // transpileDependencies: [], + + // rtl: true, // https://quasar.dev/options/rtl-support + // preloadChunks: true, + // showProgress: false, + // gzip: true, + // analyze: true, + + // Options below are automatically set depending on the env, set them if you want to override + // extractCSS: false, + + // https://v2.quasar.dev/quasar-cli-webpack/handling-webpack + // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain + + chainWebpack (chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js', 'vue'] }]) + }, + + extendWebpack (cfg) { + if (config.API_ENDPOINT.toLowerCase() === 'mock') cfg.resolve.alias['@shared/API/API'] = path.resolve(__dirname, './src/shared/API/API.mock') + if (config.HEALTHSTORE.toLowerCase() === 'mock') cfg.resolve.alias['@shared/healthstore'] = path.resolve(__dirname, './src/shared/healthstore.mock') + if (config.NOTIFICATIONS.toLowerCase() === 'web') cfg.resolve.alias['@shared/notifications/notifications'] = path.resolve(__dirname, './src/shared/notifications/notifications.web') + if (config.NOTIFICATIONS.toLowerCase() === 'mock') cfg.resolve.alias['@shared/notifications/notifications'] = path.resolve(__dirname, './src/shared/notifications/notifications.mock') + if (config.PHONE.toLowerCase() === 'mock') cfg.resolve.alias['@shared/phone/phone'] = path.resolve(__dirname, './src/shared/phone/phone.mock') + if (config.MIBAND3.toLowerCase() === 'mock') cfg.resolve.alias['@shared/miband3/miband3'] = path.resolve(__dirname, './src/shared/miband3/miband3.mock') + if (config.PO60.toLowerCase() === 'mock') cfg.resolve.alias['@shared/po60/IPulseOxDevice'] = path.resolve(__dirname, './src/shared/po60/IPulseOxDevice.mock') + if (config.PEAKFLOW.toLowerCase() === 'mock') cfg.resolve.alias['@shared/peakflow/peakflow'] = path.resolve(__dirname, './src/shared/peakflow/peakflow.mock') + if (config.STORAGE.toLowerCase() === 'local') cfg.resolve.alias['@shared/storage/storage'] = path.resolve(__dirname, './src/shared/storage/storage.local') + if (config.STORAGE.toLowerCase() === 'mock') cfg.resolve.alias['@shared/storage/storage'] = path.resolve(__dirname, './src/shared/storage/storage.mock') + if (config.STORAGE.toLowerCase() === 'encrypted') cfg.resolve.alias['@shared/storage/storage'] = path.resolve(__dirname, './src/shared/storage/storage.encrypted') + if (config.FILES.toLowerCase() === 'mock') cfg.resolve.alias['@shared/files/files'] = path.resolve(__dirname, './src/shared/files/files.mock') + cfg.resolve.alias = { + ...cfg.resolve.alias, + '@components': path.resolve(__dirname, './src/components'), + '@shared': path.resolve(__dirname, './src/shared'), + '@i18n': path.resolve(__dirname, './src/i18n') + } + }, + + env: { + // environmental variables passed to the rest of the code + APP_VERSION: require('./package.json').version, + API_ENDPOINT: config.API_ENDPOINT + } + + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-devServer + devServer: { + server: { + type: 'http' + }, + port: 8080, + open: true, // opens browser window automatically + proxy: { + '/api': { // <- this must be the same as API_ENDPOINT + target: 'http://localhost:3000', // WARNING: this address can be changed if testing the app on the phone, but any change should NOT be committed. If this is != loclahost, please change it back to localhost. + changeOrigin: true + } + } + }, + + // https://v2.quasar.dev/quasar-cli-webpack/quasar-config-js#Property%3A-framework + framework: { + config: {}, + + // iconSet: 'material-icons', // Quasar icon set + // lang: 'en-US', // Quasar language pack + + // For special cases outside of where the auto-import strategy can have an impact + // (like functional components as one of the examples), + // you can manually specify Quasar components/directives to be available everywhere: + // + // components: [], + // directives: [], + + // Quasar plugins + plugins: [] + }, + + // animations: 'all', // --- includes all animations + // https://quasar.dev/options/animations + animations: [], + + // https://v2.quasar.dev/quasar-cli-webpack/developing-ssr/configuring-ssr + ssr: { + pwa: false, + + // manualStoreHydration: true, + // manualPostHydrationTrigger: true, + + prodPort: 3000, // The default port that the production server should use + // (gets superseded if process.env.PORT is specified at runtime) + + maxAge: 1000 * 60 * 60 * 24 * 30, + // Tell browser when a file from the server should expire from cache (in ms) + + chainWebpackWebserver (chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js'] }]) + }, + + middlewares: [ + ctx.prod ? 'compression' : '', + 'render' // keep this as last one + ] + }, + + // https://v2.quasar.dev/quasar-cli-webpack/developing-pwa/configuring-pwa + pwa: { + workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest' + workboxOptions: {}, // only for GenerateSW + + // for the custom service worker ONLY (/src-pwa/custom-service-worker.[js|ts]) + // if using workbox in InjectManifest mode + + chainWebpackCustomSW (chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js'] }]) + }, + + manifest: { + name: 'Mobistudy App', + short_name: 'Mobistudy App', + description: 'App for participants', + display: 'standalone', + orientation: 'portrait', + background_color: '#ffffff', + theme_color: '#027be3', + icons: [ + { + src: 'icons/icon-128x128.png', + sizes: '128x128', + type: 'image/png' + }, + { + src: 'icons/icon-192x192.png', + sizes: '192x192', + type: 'image/png' + }, + { + src: 'icons/icon-256x256.png', + sizes: '256x256', + type: 'image/png' + }, + { + src: 'icons/icon-384x384.png', + sizes: '384x384', + type: 'image/png' + }, + { + src: 'icons/icon-512x512.png', + sizes: '512x512', + type: 'image/png' + } + ] + } + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-cordova-apps/configuring-cordova + cordova: { + // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-capacitor-apps/configuring-capacitor + capacitor: { + hideSplashscreen: true + }, + + // Full list of options: https://v2.quasar.dev/quasar-cli-webpack/developing-electron-apps/configuring-electron + electron: { + bundler: 'packager', // 'packager' or 'builder' + + packager: { + // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options + + // OS X / Mac App Store + // appBundleId: '', + // appCategoryType: '', + // osxSign: '', + // protocol: 'myapp://path', + + // Windows only + // win32metadata: { ... } + }, + + builder: { + // https://www.electron.build/configuration/configuration + + appId: 'mobistudyapp' + }, + + // "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain + + chainWebpackMain (chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js'] }]) + }, + + chainWebpackPreload (chain) { + chain.plugin('eslint-webpack-plugin') + .use(ESLintPlugin, [{ extensions: ['js'] }]) + } + + } + } +}) diff --git a/quasar.extensions.json b/quasar.extensions.json deleted file mode 100755 index 3430b4a4..00000000 --- a/quasar.extensions.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "@quasar/testing": { - "harnesses": [ - "unit-jest" - ] - }, - "@quasar/testing-unit-jest": { - "babel": "babelrc", - "options": [ - "scripts" - ] - } -} \ No newline at end of file diff --git a/quasar.testing.json b/quasar.testing.json deleted file mode 100755 index 090d098d..00000000 --- a/quasar.testing.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "unit-jest": { - "runnerCommand": "jest" - } -} \ No newline at end of file diff --git a/src-cordova/config.xml b/src-cordova/config.xml deleted file mode 100755 index fbac910e..00000000 --- a/src-cordova/config.xml +++ /dev/null @@ -1,130 +0,0 @@ - - - Mobistudy App - The participants' app of Mobistudy - - Mobistudy Team - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Position is needed to estimate physical activity or the environment - - - Position is needed to estimate physical activity or the environment - - - - - Position is needed to estimate physical activity or the environment - - - Mobistudy needs to read health-related data from your phone - - - Mobistudy needs to store health-related data on your phone - - - - - - - - - - - - - - - Microphone is needed for the vocalization test and to read the peak flow meter - - - - - - - - Steps are needed to estimate physical activity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src-cordova/cordova-flag.d.ts b/src-cordova/cordova-flag.d.ts deleted file mode 100755 index 3ece0302..00000000 --- a/src-cordova/cordova-flag.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// THIS FEATURE-FLAG FILE IS AUTOGENERATED, -// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING -import "quasar/dist/types/feature-flag"; - -declare module "quasar/dist/types/feature-flag" { - interface QuasarFeatureFlags { - cordova: true; - } -} diff --git a/src-cordova/hooks/README.md b/src-cordova/hooks/README.md deleted file mode 100755 index 574ad4c9..00000000 --- a/src-cordova/hooks/README.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Cordova Hooks - -Cordova Hooks represent special scripts which could be added by application and plugin developers or even by your own build system to customize cordova commands. See Hooks Guide for more details: http://cordova.apache.org/docs/en/edge/guide_appdev_hooks_index.md.html#Hooks%20Guide. diff --git a/src-cordova/package-lock.json b/src-cordova/package-lock.json deleted file mode 100644 index 68f9205e..00000000 --- a/src-cordova/package-lock.json +++ /dev/null @@ -1,5231 +0,0 @@ -{ - "name": "org.mobistudy.app", - "version": "0.3.2", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "requires": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "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==" - }, - "string-width-cjs": { - "version": "npm:string-width@4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "strip-ansi-cjs": { - "version": "npm:strip-ansi@6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "wrap-ansi-cjs": { - "version": "npm:wrap-ansi@7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - } - } - }, - "@isaacs/string-locale-compare": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz", - "integrity": "sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==" - }, - "@netflix/nerror": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", - "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", - "requires": { - "assert-plus": "^1.0.0", - "extsprintf": "^1.4.0", - "lodash": "^4.17.15" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", - "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", - "requires": { - "@nodelib/fs.stat": "2.0.4", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", - "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" - }, - "@nodelib/fs.walk": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", - "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", - "requires": { - "@nodelib/fs.scandir": "2.1.4", - "fastq": "^1.6.0" - } - }, - "@npmcli/arborist": { - "version": "6.2.9", - "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-6.2.9.tgz", - "integrity": "sha512-uC16dg+aykdctgIYPUKNa3pNGIDYh1egzk5vOf34d24cw5mwMsVArFiVdcRieKHmOGEv595se3x0fvbwNrBk8g==", - "requires": { - "@isaacs/string-locale-compare": "^1.1.0", - "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", - "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^5.0.0", - "@npmcli/name-from-folder": "^2.0.0", - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^3.0.0", - "@npmcli/query": "^3.0.0", - "@npmcli/run-script": "^6.0.0", - "bin-links": "^4.0.1", - "cacache": "^17.0.4", - "common-ancestor-path": "^1.0.1", - "hosted-git-info": "^6.1.1", - "json-parse-even-better-errors": "^3.0.0", - "json-stringify-nice": "^1.1.4", - "minimatch": "^9.0.0", - "nopt": "^7.0.0", - "npm-install-checks": "^6.0.0", - "npm-package-arg": "^10.1.0", - "npm-pick-manifest": "^8.0.1", - "npm-registry-fetch": "^14.0.3", - "npmlog": "^7.0.1", - "pacote": "^15.0.8", - "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", - "promise-all-reject-late": "^1.0.0", - "promise-call-limit": "^1.0.2", - "read-package-json-fast": "^3.0.2", - "semver": "^7.3.7", - "ssri": "^10.0.1", - "treeverse": "^3.0.0", - "walk-up-path": "^3.0.1" - }, - "dependencies": { - "abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "nopt": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.1.0.tgz", - "integrity": "sha512-ZFPLe9Iu0tnx7oWhFxAo4s7QTn8+NNDDxYNaKLjE7Dp0tbakQ3M1QhQzsnzXHQBTUO3K9BmwaxnyO8Ayn2I95Q==", - "requires": { - "abbrev": "^2.0.0" - } - } - } - }, - "@npmcli/fs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", - "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", - "requires": { - "semver": "^7.3.5" - } - }, - "@npmcli/git": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.0.4.tgz", - "integrity": "sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg==", - "requires": { - "@npmcli/promise-spawn": "^6.0.0", - "lru-cache": "^7.4.4", - "npm-pick-manifest": "^8.0.0", - "proc-log": "^3.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", - "requires": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "@npmcli/map-workspaces": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz", - "integrity": "sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==", - "requires": { - "@npmcli/name-from-folder": "^2.0.0", - "glob": "^10.2.2", - "minimatch": "^9.0.0", - "read-package-json-fast": "^3.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@npmcli/metavuln-calculator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-5.0.1.tgz", - "integrity": "sha512-qb8Q9wIIlEPj3WeA1Lba91R4ZboPL0uspzV0F9uwP+9AYMVB2zOoa7Pbk12g6D2NHAinSbHh6QYmGuRyHZ874Q==", - "requires": { - "cacache": "^17.0.0", - "json-parse-even-better-errors": "^3.0.0", - "pacote": "^15.0.0", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@npmcli/name-from-folder": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", - "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==" - }, - "@npmcli/node-gyp": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", - "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==" - }, - "@npmcli/package-json": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-3.1.0.tgz", - "integrity": "sha512-qNPy6Yf9ruFST99xcrl5EWAvrb7qFrwgVbwdzcTJlIgxbArKOq5e/bgZ6rTL1X9hDgAdPbvL8RWx/OTLSB0ToA==", - "requires": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@npmcli/promise-spawn": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", - "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", - "requires": { - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@npmcli/query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/query/-/query-3.0.0.tgz", - "integrity": "sha512-MFNDSJNgsLZIEBVZ0Q9w9K7o07j5N4o4yjtdz2uEpuCZlXGMuPENiRaFYk0vRqAA64qVuUQwC05g27fRtfUgnA==", - "requires": { - "postcss-selector-parser": "^6.0.10" - } - }, - "@npmcli/run-script": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz", - "integrity": "sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA==", - "requires": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/promise-spawn": "^6.0.0", - "node-gyp": "^9.0.0", - "read-package-json-fast": "^3.0.0", - "which": "^3.0.0" - }, - "dependencies": { - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true - }, - "@sigstore/protobuf-specs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz", - "integrity": "sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ==" - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "@tufjs/canonical-json": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz", - "integrity": "sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ==" - }, - "@tufjs/models": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz", - "integrity": "sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A==", - "requires": { - "@tufjs/canonical-json": "1.0.0", - "minimatch": "^9.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@xmldom/xmldom": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "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==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "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==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - } - }, - "android-versions": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/android-versions/-/android-versions-1.8.2.tgz", - "integrity": "sha512-2MT/Y/mR3BLSbR9E3ugwvE/aA4k84XtjG2Iusu4pRKt4FwfpEvIEAHzm7ZBhL3/aTVNdx3PzZ+sAiK+Dbc4r9A==", - "dev": true, - "requires": { - "semver": "^7.5.2" - } - }, - "ansi": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=" - }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" - }, - "ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==" - }, - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==" - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "array-find-index": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "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==" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "async": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", - "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", - "requires": { - "lodash": "^4.17.14" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true - }, - "atomically": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/atomically/-/atomically-1.7.0.tgz", - "integrity": "sha512-Xcz9l0z7y9yQ9rdDaxlmaI4uJHf/T8g9hOEzJcsEqX2SjCj4J20uK7+ldkDHMbpJDK76wF7xEIgxc/vSlsfw5w==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==" - }, - "bin-links": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.1.tgz", - "integrity": "sha512-bmFEM39CyX336ZGGRsGPlc6jZHriIoHacOQcTt72MktIjpPhZoP4te2jOyUXF3BLILmJ8aNLncoPVeIIFlrDeA==", - "requires": { - "cmd-shim": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "read-cmd-shim": "^4.0.0", - "write-file-atomic": "^5.0.0" - }, - "dependencies": { - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - }, - "write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - } - } - } - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "bplist-creator": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bplist-creator/-/bplist-creator-0.1.0.tgz", - "integrity": "sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==", - "dev": true, - "requires": { - "stream-buffers": "2.2.x" - } - }, - "bplist-parser": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", - "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", - "dev": true, - "requires": { - "big-integer": "^1.6.44" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "builtins": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", - "requires": { - "semver": "^7.0.0" - } - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" - }, - "cacache": { - "version": "17.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.3.tgz", - "integrity": "sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg==", - "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - } - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" - }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" - }, - "cmd-shim": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-6.0.1.tgz", - "integrity": "sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q==" - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "common-ancestor-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", - "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==" - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "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==" - } - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "conf": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-10.2.0.tgz", - "integrity": "sha512-8fLl9F04EJqjSqH+QjITQfJF8BrOVaYr1jewVgSRAEWePfxT0sku4w2hrGQ60BC/TNLGQ2pgxNlTbWQmMPFvXg==", - "requires": { - "ajv": "^8.6.3", - "ajv-formats": "^2.1.1", - "atomically": "^1.7.0", - "debounce-fn": "^4.0.0", - "dot-prop": "^6.0.1", - "env-paths": "^2.2.1", - "json-schema-typed": "^7.0.3", - "onetime": "^5.1.2", - "pkg-up": "^3.1.0", - "semver": "^7.3.5" - }, - "dependencies": { - "dot-prop": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-6.0.1.tgz", - "integrity": "sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==", - "requires": { - "is-obj": "^2.0.0" - } - } - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cordova": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/cordova/-/cordova-12.0.0.tgz", - "integrity": "sha512-D0gGDsaXlmafWxVZExJo6jO8AEVLYBe12Qghjx4zz8XfNhSUe3cInm4TyDZoxB2hFom73eLxIbomYOb0J6tutw==", - "requires": { - "configstore": "^5.0.1", - "cordova-common": "^5.0.0", - "cordova-create": "^5.0.0", - "cordova-lib": "^12.0.0", - "editor": "^1.0.0", - "execa": "^5.1.1", - "fs-extra": "^11.1.1", - "insight": "^0.11.1", - "loud-rejection": "^2.2.0", - "nopt": "^7.1.0", - "semver": "^7.5.0", - "systeminformation": "^5.17.12" - }, - "dependencies": { - "abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==" - }, - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "requires": { - "big-integer": "1.6.x" - } - }, - "cordova-common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", - "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.3.2", - "cross-spawn": "^7.0.3", - "elementtree": "^0.1.7", - "endent": "^2.1.0", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.0", - "glob": "^7.1.6", - "lodash.assign": "^4.2.0", - "lodash.isdate": "^4.0.1", - "lodash.isobject": "^3.0.2", - "lodash.zip": "^4.2.0", - "plist": "^3.0.6", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "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==", - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "nopt": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.1.0.tgz", - "integrity": "sha512-ZFPLe9Iu0tnx7oWhFxAo4s7QTn8+NNDDxYNaKLjE7Dp0tbakQ3M1QhQzsnzXHQBTUO3K9BmwaxnyO8Ayn2I95Q==", - "requires": { - "abbrev": "^2.0.0" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" - }, - "plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - } - } - }, - "cordova-android": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/cordova-android/-/cordova-android-12.0.0.tgz", - "integrity": "sha512-MhbN76oRObM0bR/DyCsJnePm0QkmXhNFRZCCaPxLZtGyAnAP3r39scXfs2cROsM5ePemdbXH6aSowLKivluWtg==", - "dev": true, - "requires": { - "android-versions": "^1.8.1", - "cordova-common": "^5.0.0", - "execa": "^5.1.1", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.1", - "is-path-inside": "^3.0.3", - "nopt": "^7.1.0", - "properties-parser": "^0.3.1", - "semver": "^7.3.8", - "string-argv": "^0.3.1", - "untildify": "^4.0.0", - "which": "^3.0.0" - }, - "dependencies": { - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "dev": true, - "requires": { - "big-integer": "1.6.x" - } - }, - "cordova-common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", - "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", - "dev": true, - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.3.2", - "cross-spawn": "^7.0.3", - "elementtree": "^0.1.7", - "endent": "^2.1.0", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.0", - "glob": "^7.1.6", - "lodash.assign": "^4.2.0", - "lodash.isdate": "^4.0.1", - "lodash.isobject": "^3.0.2", - "lodash.zip": "^4.2.0", - "plist": "^3.0.6", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "dev": true, - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "fast-glob": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", - "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", - "dev": true, - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==", - "dev": true - }, - "plist": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", - "dev": true, - "requires": { - "@xmldom/xmldom": "^0.8.8", - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", - "dev": true - } - } - }, - "cordova-app-hello-world": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-6.0.0.tgz", - "integrity": "sha512-wPZsm+fzNUwdiTRODT+fQuPV410RNmd3Buiw63vT8BPxjC+cn6Bu8emrgwrDM4pbmU5sa5Unwu3xPcbQGQ3G3g==" - }, - "cordova-common": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz", - "integrity": "sha512-od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==", - "dev": true, - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.2.0", - "cross-spawn": "^7.0.1", - "elementtree": "^0.1.7", - "endent": "^1.4.1", - "fast-glob": "^3.2.2", - "fs-extra": "^9.0.0", - "glob": "^7.1.6", - "plist": "^3.0.1", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0", - "underscore": "^1.9.2" - } - }, - "cordova-create": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-create/-/cordova-create-5.0.0.tgz", - "integrity": "sha512-jFc+vbh6Xx2DciI0/RFzLOB0X7YOiiDv9kjDfoq+jqh+TRZDYOuES19F1ZkwgDTJGnwUO0HoMIswiiTy45Royw==", - "requires": { - "cordova-app-hello-world": "^6.0.0", - "cordova-common": "^5.0.0", - "cordova-fetch": "^4.0.0", - "fs-extra": "^11.1.1", - "globby": "^11.1.0", - "import-fresh": "^3.3.0", - "isobject": "^4.0.0", - "npm-package-arg": "^10.1.0", - "path-is-inside": "^1.0.2", - "tmp": "^0.2.1", - "valid-identifier": "0.0.2" - }, - "dependencies": { - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "requires": { - "big-integer": "1.6.x" - } - }, - "cordova-common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", - "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.3.2", - "cross-spawn": "^7.0.3", - "elementtree": "^0.1.7", - "endent": "^2.1.0", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.0", - "glob": "^7.1.6", - "lodash.assign": "^4.2.0", - "lodash.isdate": "^4.0.1", - "lodash.isobject": "^3.0.2", - "lodash.zip": "^4.2.0", - "plist": "^3.0.6", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "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==", - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" - }, - "plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - } - } - }, - "cordova-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-4.0.0.tgz", - "integrity": "sha512-aymq5lEwv6Y1n+FYoeRK/fCsyrMP2CBh5lo2o8NUO4MG68ws2QC+C5Xwju9kezQzEatg+9Gg2wrw5kGI+nmhXA==", - "requires": { - "@npmcli/arborist": "^6.2.5", - "cordova-common": "^5.0.0", - "execa": "^5.1.1", - "fs-extra": "^11.1.1", - "npm-package-arg": "^10.1.0", - "pacote": "^15.1.1", - "pify": "^5.0.0", - "resolve": "^1.22.1", - "semver": "^7.3.8", - "which": "^3.0.0" - }, - "dependencies": { - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "requires": { - "big-integer": "1.6.x" - } - }, - "cordova-common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", - "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.3.2", - "cross-spawn": "^7.0.3", - "elementtree": "^0.1.7", - "endent": "^2.1.0", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.0", - "glob": "^7.1.6", - "lodash.assign": "^4.2.0", - "lodash.isdate": "^4.0.1", - "lodash.isobject": "^3.0.2", - "lodash.zip": "^4.2.0", - "plist": "^3.0.6", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "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==", - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.12.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz", - "integrity": "sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==", - "requires": { - "has": "^1.0.3" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" - }, - "plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "which": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", - "requires": { - "isexe": "^2.0.0" - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - } - } - }, - "cordova-ios": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/cordova-ios/-/cordova-ios-6.2.0.tgz", - "integrity": "sha512-sLjZg2QBI1SpQVwfe0MSn89YNVkBGLW9Q1vcFJBsqKBrhvoEOJ5Ytq0gwqdhgTOGzlwJUfxC6OHM3jcsRjtYrw==", - "dev": true, - "requires": { - "cordova-common": "^4.0.2", - "fs-extra": "^9.1.0", - "ios-sim": "^8.0.2", - "nopt": "^5.0.0", - "plist": "^3.0.1", - "semver": "^7.3.4", - "unorm": "^1.6.0", - "which": "^2.0.2", - "xcode": "^3.0.1", - "xml-escape": "^1.1.0" - }, - "dependencies": { - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "cordova-lib": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/cordova-lib/-/cordova-lib-12.0.1.tgz", - "integrity": "sha512-UX0764TZWiO/dZc7X7yBhwWupp2I3284ka/wfcdxk1tj6dLDUu+U7VIzYqA4Wyz3T8SnefGnoylciyWlIBkuqw==", - "requires": { - "cordova-common": "^5.0.0", - "cordova-fetch": "^4.0.0", - "cordova-serve": "^4.0.1", - "dep-graph": "^1.1.0", - "detect-indent": "^6.1.0", - "detect-newline": "^3.1.0", - "elementtree": "^0.1.7", - "execa": "^5.1.1", - "fs-extra": "^11.1.0", - "globby": "^11.1.0", - "init-package-json": "^5.0.0", - "md5-file": "^5.0.0", - "pify": "^5.0.0", - "semver": "^7.5.0", - "stringify-package": "^1.0.1", - "write-file-atomic": "^5.0.0" - }, - "dependencies": { - "bplist-parser": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", - "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", - "requires": { - "big-integer": "1.6.x" - } - }, - "cordova-common": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cordova-common/-/cordova-common-5.0.0.tgz", - "integrity": "sha512-6Aa7o52/iEvsKx6K94ijzFel5acCULR49KL27OUVhEpJ4oS7Dc3y2eOP1Eu0P4Wmiw/eLEDQjGXGiAa2D5zFZA==", - "requires": { - "@netflix/nerror": "^1.1.3", - "ansi": "^0.3.1", - "bplist-parser": "^0.3.2", - "cross-spawn": "^7.0.3", - "elementtree": "^0.1.7", - "endent": "^2.1.0", - "fast-glob": "^3.2.12", - "fs-extra": "^11.1.0", - "glob": "^7.1.6", - "lodash.assign": "^4.2.0", - "lodash.isdate": "^4.0.1", - "lodash.isobject": "^3.0.2", - "lodash.zip": "^4.2.0", - "plist": "^3.0.6", - "q": "^1.5.1", - "read-chunk": "^3.2.0", - "strip-bom": "^4.0.0" - } - }, - "endent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/endent/-/endent-2.1.0.tgz", - "integrity": "sha512-r8VyPX7XL8U01Xgnb1CjZ3XV+z90cXIJ9JPE/R9SEC9vpw2P6CfsRPJmp20DppC5N7ZAMCmjYkJIa744Iyg96w==", - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.5" - } - }, - "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==", - "requires": { - "@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" - } - }, - "fs-extra": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", - "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "objectorarray": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.5.tgz", - "integrity": "sha512-eJJDYkhJFFbBBAxeh8xW+weHlkI28n2ZdQV/J/DNfWfSKlGEf2xcfAbZTv3riEXHAhL9SVOTs2pRmXiSTf78xg==" - }, - "pify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", - "integrity": "sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==" - }, - "plist": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.6.tgz", - "integrity": "sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==", - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^15.1.1" - } - }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - }, - "write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - } - }, - "xmlbuilder": { - "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" - } - } - }, - "cordova-plugin-audioinput": { - "version": "git+https://github.com/edimuj/cordova-plugin-audioinput.git#941ee65ac5844abec41735708a238a5cffda95a0", - "from": "git+https://github.com/edimuj/cordova-plugin-audioinput.git", - "dev": true - }, - "cordova-plugin-badge-fix": { - "version": "0.8.10", - "resolved": "https://registry.npmjs.org/cordova-plugin-badge-fix/-/cordova-plugin-badge-fix-0.8.10.tgz", - "integrity": "sha512-4yvfe5Qil9Bz7OTSnVNVkQV5Mru0wSAgfAhBE/myo9aPLT7yjs3sn963Shg4MCDPlVCganS0spJ384fsyYB6lA==", - "dev": true - }, - "cordova-plugin-ble-central": { - "version": "git+ssh://git@github.com/Gargamil/cordova-plugin-ble-central.git#e130d2466c330e0534e0a234d13249e90d40625d", - "from": "cordova-plugin-ble-central@github:Gargamil/cordova-plugin-ble-central", - "dev": true - }, - "cordova-plugin-device": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-2.0.3.tgz", - "integrity": "sha512-Jb3V72btxf3XHpkPQsGdyc8N6tVBYn1vsxSFj43fIz9vonJDUThYPCJJHqk6PX6N4dJw6I4FjxkpfCR4LDYMlw==", - "dev": true - }, - "cordova-plugin-file": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/cordova-plugin-file/-/cordova-plugin-file-6.0.2.tgz", - "integrity": "sha512-m7cughw327CjONN/qjzsTpSesLaeybksQh420/gRuSXJX5Zt9NfgsSbqqKDon6jnQ9Mm7h7imgyO2uJ34XMBtA==", - "dev": true - }, - "cordova-plugin-geolocation": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-geolocation/-/cordova-plugin-geolocation-4.1.0.tgz", - "integrity": "sha512-y5io/P10xGMxSn2KEqfv/fExK47eA1pmSonJdmDqDsaSADV9JpgdPx0mUSA08+5pzma/OS9R0LoODeDPx7Jvjg==", - "dev": true - }, - "cordova-plugin-health": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/cordova-plugin-health/-/cordova-plugin-health-2.0.2.tgz", - "integrity": "sha512-69cAS0rnvP0GPc1YQmX8jtNueSXKJLjX9E0BbguSr8ZyUTYBW37WcY/hw4aaO+PSxJt0MBhxebKVtIzVMz0Mcw==", - "dev": true - }, - "cordova-plugin-insomnia": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-insomnia/-/cordova-plugin-insomnia-4.3.0.tgz", - "integrity": "sha1-gyoz9tdj8LgCc733YbNbZ4xDuVc=", - "dev": true - }, - "cordova-plugin-local-notification-12": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/cordova-plugin-local-notification-12/-/cordova-plugin-local-notification-12-0.1.4.tgz", - "integrity": "sha512-b6HOrJUOTOzg3gPrp5puw4Rq3O2cqiJsnBiRfUOfIJsvvhgPs8V5DqmiR1mf+SoHQCXpNdhTAh6SX1hcIBsBQw==" - }, - "cordova-plugin-pedometer": { - "version": "git+ssh://git@github.com/dariosalvi78/cordova-plugin-pedometer.git#a1811d9b796570d201c008050c2917961c2a8371", - "from": "cordova-plugin-pedometer@github:dariosalvi78/cordova-plugin-pedometer", - "dev": true - }, - "cordova-plugin-pincheck": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/cordova-plugin-pincheck/-/cordova-plugin-pincheck-0.0.6.tgz", - "integrity": "sha1-12Ab3JLN9RJxcKNKtDKPBGTgQTU=", - "dev": true - }, - "cordova-plugin-secure-storage-echo": { - "version": "git+ssh://git@github.com/mibrito707/cordova-plugin-secure-storage-echo.git#a66f29dc8208108e2a317b64884cf5fee974fb0f", - "from": "cordova-plugin-secure-storage-echo@github:mibrito707/cordova-plugin-secure-storage-echo", - "dev": true - }, - "cordova-plugin-splashscreen": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/cordova-plugin-splashscreen/-/cordova-plugin-splashscreen-6.0.0.tgz", - "integrity": "sha512-pm4ZtJKQY4bCGXVeIInbGrXilryTevYSKgfvoQJpW9UClOWKAxSsYf2/4G2u1vcn492svOSL42OSa2MhujBWEQ==", - "dev": true - }, - "cordova-plugin-vibration": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/cordova-plugin-vibration/-/cordova-plugin-vibration-3.1.1.tgz", - "integrity": "sha512-qgv67Rueo4Pydfant3TwnXeFiN9dl+6lKMM6h5jYg9XewiGAGOr8vfWsTvQssC3m3xMKGS1ap3xPNH+BzZ4RMA==", - "dev": true - }, - "cordova-serve": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.1.tgz", - "integrity": "sha512-YbfXaZ60yr5dkqmDFQgrU7TSKnzCqYsxHgIUzDeX8RggZb6mz1F9jMfUBbaYyaU7JjcuJ0aoRPYLvwSGQVhGkw==", - "requires": { - "chalk": "^3.0.0", - "compression": "^1.7.4", - "express": "^4.17.1", - "open": "^7.0.3", - "which": "^2.0.2" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" - }, - "currently-unhandled": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", - "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "requires": { - "array-find-index": "^1.0.1" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debounce-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", - "integrity": "sha512-8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==", - "requires": { - "mimic-fn": "^3.0.0" - }, - "dependencies": { - "mimic-fn": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", - "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==" - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" - }, - "dep-graph": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/dep-graph/-/dep-graph-1.1.0.tgz", - "integrity": "sha1-+t6GqSeZqBPptCURzfPfpsyNvv4=", - "requires": { - "underscore": "1.2.1" - }, - "dependencies": { - "underscore": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz", - "integrity": "sha1-/FxrB2VnPZKi1KyLTcCqiHAuK9Q=" - } - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "detect-indent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", - "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==" - }, - "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==" - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "requires": { - "path-type": "^4.0.0" - } - }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "requires": { - "is-obj": "^2.0.0" - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "editor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz", - "integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=" - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "elementtree": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", - "integrity": "sha1-mskb5uUvtuYkTE5UpKw+2K6OKcA=", - "requires": { - "sax": "1.1.4" - } - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - } - }, - "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==", - "requires": { - "once": "^1.4.0" - } - }, - "endent": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/endent/-/endent-1.4.1.tgz", - "integrity": "sha512-buHTb5c8AC9NshtP6dgmNLYkiT+olskbq1z6cEGvfGCF3Qphbu/1zz5Xu+yjTDln8RbxNhPoUyJ5H8MSrp1olQ==", - "dev": true, - "requires": { - "dedent": "^0.7.0", - "fast-json-parse": "^1.0.3", - "objectorarray": "^1.0.4" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "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==" - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "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" - } - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "dependencies": { - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - } - } - }, - "extsprintf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.0.tgz", - "integrity": "sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=" - }, - "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==" - }, - "fast-glob": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", - "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.0", - "merge2": "^1.3.0", - "micromatch": "^4.0.2", - "picomatch": "^2.2.1" - } - }, - "fast-json-parse": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-json-parse/-/fast-json-parse-1.0.3.tgz", - "integrity": "sha512-FRWsaZRWEJ1ESVNbDWmsAlqDk96gPQezzLghafp5J4GUKjbCz3OkAHuZs5TuPEtkbVQERysLp9xv6c24fBm8Aw==" - }, - "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==" - }, - "fastq": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", - "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", - "requires": { - "reusify": "^1.0.4" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "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==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "requires": { - "locate-path": "^3.0.0" - } - }, - "foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "dependencies": { - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - } - } - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.2.tgz", - "integrity": "sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g==", - "requires": { - "minipass": "^5.0.0" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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==" - }, - "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==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "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==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "requires": { - "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" - }, - "dependencies": { - "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==", - "requires": { - "@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" - } - } - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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==" - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "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==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" - }, - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "requires": { - "lru-cache": "^7.5.1" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "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==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "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==" - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==" - }, - "ignore-walk": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", - "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", - "requires": { - "minimatch": "^9.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "init-package-json": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-5.0.0.tgz", - "integrity": "sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw==", - "requires": { - "npm-package-arg": "^10.0.0", - "promzard": "^1.0.0", - "read": "^2.0.0", - "read-package-json": "^6.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4", - "validate-npm-package-name": "^5.0.0" - } - }, - "inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", - "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==" - }, - "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==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "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": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" - }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" - }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==" - } - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "insight": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/insight/-/insight-0.11.1.tgz", - "integrity": "sha512-TBcZ0qC9dgdmcxL93OoqkY/RZXJtIi0i07phX/QyYk2ysmJtZex59dgTj4Doq50N9CG9dLRe/RIudc/5CCoFNw==", - "requires": { - "async": "^2.6.2", - "chalk": "^4.1.1", - "conf": "^10.0.1", - "inquirer": "^6.3.1", - "lodash.debounce": "^4.0.8", - "os-name": "^4.0.1", - "request": "^2.88.0", - "tough-cookie": "^4.0.0", - "uuid": "^8.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - } - } - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ios-sim": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-8.0.2.tgz", - "integrity": "sha512-P7nEG771bfd+JoMRjnis1gpZOkjTUUxu+4Ek1Z+eoaEEoT9byllU9pxfQ8Df7hL3gSkIQxNwTSLhos2I8tWUQA==", - "dev": true, - "requires": { - "bplist-parser": "^0.0.6", - "nopt": "1.0.9", - "plist": "^3.0.1", - "simctl": "^2" - }, - "dependencies": { - "bplist-parser": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", - "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=", - "dev": true - }, - "nopt": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz", - "integrity": "sha1-O8DXy6e/sNWmdtvtfA6+SKT9RU4=", - "dev": true, - "requires": { - "abbrev": "1" - } - } - } - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" - }, - "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==" - }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" - }, - "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 - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isobject": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", - "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jackspeak": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.2.1.tgz", - "integrity": "sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==", - "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-parse-even-better-errors": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", - "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json-schema-typed": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-7.0.3.tgz", - "integrity": "sha512-7DE8mpG+/fVw+dTpjbxnx47TaMnDfOI1jwft9g1VybltZCduyRQPJPvc+zzKY9WPHxhPWczyFuYa6I8Mw4iU5A==" - }, - "json-stringify-nice": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz", - "integrity": "sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "dependencies": { - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - } - } - }, - "just-diff": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz", - "integrity": "sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA==" - }, - "just-diff-apply": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz", - "integrity": "sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==" - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" - }, - "lodash.isdate": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isdate/-/lodash.isdate-4.0.1.tgz", - "integrity": "sha512-hg5B1GD+R9egsBgMwmAhk+V53Us03TVvXT4dnyKugEfsD4QKuG9Wlyvxq8OGy2nu7qVGsh4DRSnMk33hoWBq/Q==" - }, - "lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha512-3/Qptq2vr7WeJbB4KHUSKlq8Pl7ASXi3UG6CMbBm8WRtXi8+GHm7mKaU3urfpSEzWe2wCIChs6/sdocUsTKJiA==" - }, - "lodash.zip": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz", - "integrity": "sha512-C7IOaBBK/0gMORRBd8OETNx3kmOkgIWIPvyDpZSCTwUrpYmgZwJkjZeOD8ww4xbOUOs4/attY+pciKvadNfFbg==" - }, - "loud-rejection": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-2.2.0.tgz", - "integrity": "sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ==", - "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.2" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "macos-release": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.1.tgz", - "integrity": "sha512-DXqXhEM7gW59OjZO8NIjBCz9AQ1BEMrfiOAl4AYByHCtVHRF4KoGNO8mqQeM8lRCtQe/UnJ4imO/d2HdkKsd+A==" - }, - "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==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==" - } - } - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "requires": { - "imurmurhash": "^0.1.4" - } - } - } - }, - "md5-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", - "integrity": "sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "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==" - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "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==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minipass": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-6.0.2.tgz", - "integrity": "sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==" - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", - "requires": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mute-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz", - "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "node-gyp": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", - "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "requires": { - "abbrev": "^1.0.0" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - } - } - }, - "nopt": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", - "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", - "dev": true, - "requires": { - "abbrev": "^2.0.0" - }, - "dependencies": { - "abbrev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", - "dev": true - } - } - }, - "normalize-package-data": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", - "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", - "requires": { - "hosted-git-info": "^6.0.0", - "is-core-module": "^2.8.1", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - } - }, - "npm-bundled": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", - "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", - "requires": { - "npm-normalize-package-bin": "^3.0.0" - } - }, - "npm-install-checks": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.1.1.tgz", - "integrity": "sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw==", - "requires": { - "semver": "^7.1.1" - } - }, - "npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==" - }, - "npm-package-arg": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", - "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "npm-packlist": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", - "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", - "requires": { - "ignore-walk": "^6.0.0" - } - }, - "npm-pick-manifest": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz", - "integrity": "sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA==", - "requires": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^10.0.0", - "semver": "^7.3.5" - } - }, - "npm-registry-fetch": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz", - "integrity": "sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA==", - "requires": { - "make-fetch-happen": "^11.0.0", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^10.0.0", - "proc-log": "^3.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "minipass-fetch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", - "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "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==", - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz", - "integrity": "sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==", - "requires": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "are-we-there-yet": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.0.tgz", - "integrity": "sha512-nSXlV+u3vtVjRgihdTzbfWYzxPWGo424zPgQbHD0ZqIla3jqYAewDcvee0Ua2hjS5IfTAmjGlx1Jf0PKwjZDEw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^4.1.0" - } - }, - "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==" - }, - "gauge": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-5.0.1.tgz", - "integrity": "sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "readable-stream": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.0.tgz", - "integrity": "sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==", - "requires": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10" - } - }, - "signal-exit": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz", - "integrity": "sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "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==" - }, - "objectorarray": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/objectorarray/-/objectorarray-1.0.4.tgz", - "integrity": "sha512-91k8bjcldstRz1bG6zJo8lWD7c6QXcB4nTDUqiEvIL1xAsLoZlOOZZG+nd6YPz+V7zY1580J4Xxh1vZtyv4i/w==", - "dev": true - }, - "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==", - "requires": { - "ee-first": "1.1.1" - } - }, - "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==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "os-name": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", - "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", - "requires": { - "macos-release": "^2.5.0", - "windows-release": "^4.0.0" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "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==", - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "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==" - }, - "pacote": { - "version": "15.2.0", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz", - "integrity": "sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA==", - "requires": { - "@npmcli/git": "^4.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^6.0.1", - "@npmcli/run-script": "^6.0.0", - "cacache": "^17.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^5.0.0", - "npm-package-arg": "^10.0.0", - "npm-packlist": "^7.0.0", - "npm-pick-manifest": "^8.0.0", - "npm-registry-fetch": "^14.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^6.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^1.3.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "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==", - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-conflict-json": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz", - "integrity": "sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw==", - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "just-diff": "^6.0.0", - "just-diff-apply": "^5.2.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "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==" - }, - "path-scurry": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.9.2.tgz", - "integrity": "sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==", - "requires": { - "lru-cache": "^9.1.1", - "minipass": "^5.0.0 || ^6.0.2" - }, - "dependencies": { - "lru-cache": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-9.1.1.tgz", - "integrity": "sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==" - } - } - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==" - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" - }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - } - }, - "plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", - "dev": true, - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" - } - }, - "postcss-selector-parser": { - "version": "6.0.13", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", - "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==" - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" - }, - "promise-all-reject-late": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz", - "integrity": "sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==" - }, - "promise-call-limit": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.2.tgz", - "integrity": "sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "promzard": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/promzard/-/promzard-1.0.0.tgz", - "integrity": "sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig==", - "requires": { - "read": "^2.0.0" - } - }, - "properties-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/properties-parser/-/properties-parser-0.3.1.tgz", - "integrity": "sha512-AkSQxQAviJ89x4FIxOyHGfO3uund0gvYo7lfD0E+Gp7gFQKrTNgtoYQklu8EhrfHVZUzTwKGZx2r/KDSfnljcA==", - "dev": true, - "requires": { - "string.prototype.codepointat": "^0.2.0" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" - }, - "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==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - } - } - }, - "read": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/read/-/read-2.1.0.tgz", - "integrity": "sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==", - "requires": { - "mute-stream": "~1.0.0" - } - }, - "read-chunk": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-3.2.0.tgz", - "integrity": "sha512-CEjy9LCzhmD7nUpJ1oVOE6s/hBkejlcJEgLQHVnQznOSilOPb+kpKktlLfFDK3/WP43+F80xkUTM2VOkYoSYvQ==", - "requires": { - "pify": "^4.0.1", - "with-open-file": "^0.1.6" - } - }, - "read-cmd-shim": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz", - "integrity": "sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q==" - }, - "read-package-json": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.3.tgz", - "integrity": "sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ==", - "requires": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^5.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "glob": { - "version": "10.2.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.2.6.tgz", - "integrity": "sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==", - "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.0.3", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2", - "path-scurry": "^1.7.0" - } - }, - "minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", - "requires": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - } - } - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "requires": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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==" - }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "dependencies": { - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "requires": { - "mimic-fn": "^1.0.0" - } - } - } - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" - }, - "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==", - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "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==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", - "integrity": "sha1-dLbTPJrh4AFRDxeakRaFiPGu2qk=" - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "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" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "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==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "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==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" - }, - "sigstore": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-1.5.2.tgz", - "integrity": "sha512-X95v6xAAooVpn7PaB94TDmFeSO5SBfCtB1R23fvzr36WTfjtkiiyOeei979nbTjc8nzh6FSLeltQZuODsm1EjQ==", - "requires": { - "@sigstore/protobuf-specs": "^0.1.0", - "make-fetch-happen": "^11.0.1", - "tuf-js": "^1.1.3" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "minipass-fetch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", - "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "simctl": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/simctl/-/simctl-2.0.3.tgz", - "integrity": "sha512-kKCak0yszxHae5eVWcmrjV3ouUGac3sjlhjdLWpyPu4eiQcWoHsCrqS34kkgzHN8Ystqkh/LFjzrldk/g3BYJg==", - "dev": true, - "requires": { - "shelljs": "^0.8.5", - "tail": "^0.4.0" - } - }, - "simple-plist": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/simple-plist/-/simple-plist-1.3.1.tgz", - "integrity": "sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==", - "dev": true, - "requires": { - "bplist-creator": "0.1.0", - "bplist-parser": "0.3.1", - "plist": "^3.0.5" - }, - "dependencies": { - "bplist-parser": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.1.tgz", - "integrity": "sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==", - "dev": true, - "requires": { - "big-integer": "1.6.x" - } - }, - "plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", - "dev": true, - "requires": { - "base64-js": "^1.5.1", - "xmlbuilder": "^9.0.7" - } - } - } - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", - "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "spdx-correct": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz", - "integrity": "sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w==" - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "ssri": { - "version": "10.0.4", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.4.tgz", - "integrity": "sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ==", - "requires": { - "minipass": "^5.0.0" - }, - "dependencies": { - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "stream-buffers": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/stream-buffers/-/stream-buffers-2.2.0.tgz", - "integrity": "sha1-kdX1Ew0c75bc+n9yaUUYh0HQnuQ=", - "dev": true - }, - "string-argv": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", - "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", - "dev": true - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "string.prototype.codepointat": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz", - "integrity": "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg==", - "dev": true - }, - "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==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "stringify-package": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz", - "integrity": "sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==" - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "requires": { - "ansi-regex": "^6.0.1" - } - }, - "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==" - }, - "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==" - }, - "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==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "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==" - }, - "systeminformation": { - "version": "5.21.8", - "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.8.tgz", - "integrity": "sha512-Xf1KDMUTQHLOT9Z7MjpSpsbaICOHcm4OZ9c9qqpkCoXuxq5MoyDrgu5GIQYpoiralXNPrqxDz3ND8MdllpXeQA==" - }, - "tail": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/tail/-/tail-0.4.0.tgz", - "integrity": "sha1-0p3nJ1DMmdseBTr/E8NZ7PtxMAI=", - "dev": true - }, - "tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - } - } - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "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==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "tough-cookie": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", - "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "dependencies": { - "universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==" - } - } - }, - "treeverse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz", - "integrity": "sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==" - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tuf-js": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.6.tgz", - "integrity": "sha512-CXwFVIsXGbVY4vFiWF7TJKWmlKJAT8TWkH4RmiohJRcDJInix++F0dznDmoVbtJNzZ8yLprKUG4YrDIhv3nBMg==", - "requires": { - "@tufjs/models": "1.0.4", - "debug": "^4.3.4", - "make-fetch-happen": "^11.1.0" - }, - "dependencies": { - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "make-fetch-happen": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", - "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^17.0.0", - "http-cache-semantics": "^4.1.1", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^5.0.0", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^10.0.0" - } - }, - "minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==" - }, - "minipass-fetch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.3.tgz", - "integrity": "sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^5.0.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - } - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "underscore": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz", - "integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g==", - "dev": true - }, - "unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "requires": { - "unique-slug": "^4.0.0" - } - }, - "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "requires": { - "crypto-random-string": "^2.0.0" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unorm": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz", - "integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "dev": true - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", - "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==", - "dev": true - }, - "valid-identifier": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/valid-identifier/-/valid-identifier-0.0.2.tgz", - "integrity": "sha512-zaSmOW6ykXwrkX0YTuFUSoALNEKGaQHpxBJQLb3TXspRNDpBwbfrIQCZqAQ0LKBlKuyn2YOq7NNd6415hvZ33g==" - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "requires": { - "builtins": "^5.0.0" - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "walk-up-path": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", - "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==" - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "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==" - }, - "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==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - } - } - }, - "windows-release": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", - "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", - "requires": { - "execa": "^4.0.2" - }, - "dependencies": { - "execa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", - "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", - "requires": { - "cross-spawn": "^7.0.0", - "get-stream": "^5.0.0", - "human-signals": "^1.1.1", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.0", - "onetime": "^5.1.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "human-signals": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", - "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==" - } - } - }, - "with-open-file": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/with-open-file/-/with-open-file-0.1.7.tgz", - "integrity": "sha512-ecJS2/oHtESJ1t3ZfMI3B7KIDKyfN0O16miWxdn30zdh66Yd3LsRFebXZXq6GU4xfxLf6nVxp9kIqElb5fqczA==", - "requires": { - "p-finally": "^1.0.0", - "p-try": "^2.1.0", - "pify": "^4.0.1" - } - }, - "wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "requires": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "xcode": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/xcode/-/xcode-3.0.1.tgz", - "integrity": "sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==", - "dev": true, - "requires": { - "simple-plist": "^1.1.0", - "uuid": "^7.0.3" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==" - }, - "xml-escape": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/xml-escape/-/xml-escape-1.1.0.tgz", - "integrity": "sha1-OQTBQ/qOs6ADDsZG0pAqLxtwbEQ=", - "dev": true - }, - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } -} diff --git a/src-cordova/package.json b/src-cordova/package.json deleted file mode 100644 index 864637cc..00000000 --- a/src-cordova/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "org.mobistudy.app", - "displayName": "Mobistudy", - "version": "0.3.2", - "description": "The participants' app of Mobistudy", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "ecosystem:cordova" - ], - "author": "Mobistudy team", - "license": "MIT", - "devDependencies": { - "cordova-android": "^12.0.0", - "cordova-ios": "^6.2.0", - "cordova-plugin-audioinput": "git+https://github.com/edimuj/cordova-plugin-audioinput.git", - "cordova-plugin-badge-fix": "^0.8.10", - "cordova-plugin-ble-central": "github:Gargamil/cordova-plugin-ble-central", - "cordova-plugin-device": "^2.0.3", - "cordova-plugin-file": "^6.0.2", - "cordova-plugin-geolocation": "^4.1.0", - "cordova-plugin-health": "^2.0.2", - "cordova-plugin-insomnia": "^4.3.0", - "cordova-plugin-pedometer": "github:dariosalvi78/cordova-plugin-pedometer", - "cordova-plugin-pincheck": "0.0.6", - "cordova-plugin-secure-storage-echo": "github:mibrito707/cordova-plugin-secure-storage-echo", - "cordova-plugin-splashscreen": "^6.0.0", - "cordova-plugin-vibration": "^3.1.1" - }, - "cordova": { - "plugins": { - "cordova-plugin-insomnia": {}, - "cordova-plugin-geolocation": {}, - "cordova-plugin-pedometer": {}, - "cordova-plugin-pincheck": {}, - "cordova-plugin-secure-storage-echo": {}, - "cordova-plugin-device": {}, - "cordova-plugin-file": {}, - "cordova-plugin-splashscreen": {}, - "cordova-plugin-local-notification-12": { - "ANDROID_SUPPORT_V4_VERSION": "26.+", - "ANDROIDX_VERSION": "1.2.0", - "ANDROIDX_APPCOMPAT_VERSION": "1.3.1" - }, - "cordova-plugin-ble-central": { - "BLUETOOTH_USAGE_DESCRIPTION": "This app needs to connect to Bluetooth devices", - "IOS_INIT_ON_LOAD": "false" - }, - "cordova-plugin-health": { - "HEALTH_READ_PERMISSION": "Mobistudy needs to read health-related data from your phone", - "HEALTH_WRITE_PERMISSION": "Mobistudy needs to store health-related data on your phone", - "FIT_API_VERSION": "20.0.0", - "PLAY_AUTH_VERSION": "19.0.0" - }, - "cordova-plugin-vibration": {}, - "cordova-plugin-audioinput": {} - }, - "platforms": [ - "ios", - "android" - ] - }, - "dependencies": { - "cordova": "^12.0.0", - "cordova-plugin-local-notification-12": "^0.1.4" - } -} \ No newline at end of file diff --git a/src-cordova/res/android/hdpi.png b/src-cordova/res/android/hdpi.png deleted file mode 100755 index a7223cae1af21c3e026320bc71e8096d97bae102..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1133 zcmV-z1d{uSP)Px#LQqUpMMrQ<|Ns9*lbJ`An?#bBMUt6Bl9)x3m_(A8 zMUj{M{rx$Nl0=f2KaiHl-{DuDr0wFRE)uZOz5x7F9p&y`pJ000VfQchC< z|NsB4Mw$NfBA}HJD*ylkvq?ljR9M5Un2VO`APhx;IJQFQ1Ka=q)teBieSocUnQ@J) z%9&&nl7Ld`ac^5}8uQy|nx?%!6pgOBf)1wFWu<};8uI%KC33A`4?5@Y8zoiHF;h3;H{NB147f>a zJvviqkug4Kt2{5eLd`WY`-L znk7#8A)X6S6fq*_JY-eD}^rAKynI>xptA&RchyRfX9PkEe$#$zfu2vHP8L=d++Nr@Zc8F6NV zbF@_f5r5Oo3?)U<3mHEQM@TA%Nc<5SY=R`Yg%*L4>rr;wJw z9`m*;Bf>PB*Baa_$x479XsZmO7fLikssNm1*-QGsO95~nh0=cN7rPfoR1fTuFAKEQ z2Sg@jpcqN=hFqpju?dG{&O)#r2G(Cf*)Mwbv8%Arvt(v~-B4~bVhFCH4FnRWB5S2w zrfLP-iB5H!5jcugAf>-~%7&E;o4T;Doj5DK8>_^zKq3>_vlQ>-@1PH3Pj>(AJqU%CSeYK}Yr8A3C#kclZD?}+R7F>^&LXxA;&o`&5mP&QDxBku|j-*XS z_?eM^&U5cgH6z+Lr4!Na+~1tqWG>t#To5wn=l^)6@xLxvs&1jyLic!~Re62Xz>TlQ zxO&!@LyOTq;$@wwy&B`oI;9@BDoQl>M)v#zNs3l&!H=Ri00000NkvXXu0mjfw<7*3 diff --git a/src-cordova/res/android/ldpi.png b/src-cordova/res/android/ldpi.png deleted file mode 100755 index dd6f6e9c60d5f5e81121f2105698bd1a1eefd591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmV-i0;BzjP)Px#LQqUpMMRRAI*gM?l$t}5m_Lu7MU$ET|Nlgim_(A8 zMVFUAkd}3?v)}FRg}A&?oT1R<<($RI_xk$n_4Qz*sI1S?!rR>jpp7>G000VfQchF; z|Ns9G|NpQ24jMJS(f|MfqDe$SR5;6pl!%ECCB3wl}6fXOMT?KDQk}DLx zy#1ERnw3Inom4aHwLPHXTJirA)5^#qO4Rr(IN#c05w{_nERaadh$y zu6sIgDU%}mPSM9P*r}mfKKuKn>LEJ~BPd9lYU!NG%A7ZHXh`-Z`e)p@xO%fV+U?%G zr%%b`~xO%Yvr2)LJ=x(Q?4_CRQAzqOj zDO^zAVor^uG{XzgQG>1_| qgT}6&zb>)hm)K(>_(cUk)4wlVJ0HxL$Q+UY0000Px#NKi~vMMRRAMU$ET|Nlpon?#YALz9?Ak(WnsOhl8I zM3R^}jFbHR{XvkHK97~v=ICLhsk_+P;_mN}zr$0TpnbHsrOVFo_xEb4t$rh&y#N3J z3UpFVQ~v+||36Gu0QJc=k-QiH00LJ@L_t(Y$CXxzcB3#1l;yM`zQCOS|ED{$!2x1Y zR_$vj(O5IOfS!*R!PK87Ua!ZK9$MdV&!+Vcy>z2*Mi4+ljaGYiO23y75@zb?{|Dmi z@4RPZ3sozo>`+x6~R1BnEP(8b3D=GI>TM1tknT3bZ8VYWPaeGwr^=y2vH zBHiGrNcx~;P=#?qCAQLuCJyE@t&m`ckvXnMf)SDswW|WMgy>q7BJ0#V1SH z!AqDdLK|TO)%)h!MZot`wA4 zgoOb)Q1!IR(KsxXTWF_?UPWsMUjb|qv=$MQUqdY>i0Z0nikV7cLX;V$|N336=_~;N zIT=IbfLXh8#0_VO? zJsKPsS&8VuY%#95wVRD-q||1)V7e7zCRbw`iW}M0W?M=sP0CB^TDQ*m+el{8a<(mf zBBGa;l39~-@Y{<*vA8YC#3Cj}asW;7?G(u22Zj%C@)}0TMj3;=(Ma;*k{ABqqP9cw zq-93u-B{mhNHLd%M&EYpT0}nyqvJyQ0-!X^*cNmX01;?J+aLDPcL2F)xyneL9$97j z#@IV`8-SZ=vkQTw=!z-TpQ4wDs=vakLmg3nO5@c*UQX`5o8XD}OV6L?euU=t`41xg VBjDZ#@b&-z002ovPDHLkV1gysciaE~ diff --git a/src-cordova/res/android/xhdpi.png b/src-cordova/res/android/xhdpi.png deleted file mode 100755 index db5dc4bfcc35676ad974489e19d9db8d6f640f57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1533 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 diff --git a/src-cordova/res/android/xxxhdpi.png b/src-cordova/res/android/xxxhdpi.png deleted file mode 100755 index 8ee6f458783dc6eff4d4c38514dec55559867e23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2633 zcmV-P3byr$P)Px#Hc(7dMMrQvY-Avq)`V9MA! z9?!O_nty*(?eobt!^|EAfCA>i$Dvb6@F=%$Fzes#f}P|W(%##1pvl}j0eer5wxsi51N7jt4cP28LTOM`~ds_`~ds_`~chx zz@#Gb#(Kbc09+1(`BW+Z*}Rn2y1z}9o&+F4iMp;utp`~qfKdp8z90w9O?^d}Q^xA@Q*0Pvx}OafUNfRzFZ09Bw1 zAqvztg#va71(tCO3D`vxSRz4b7U&58p^9@MMJ=EU+l6cj)S}}h0hlR(A>2cPGXMw$ zCIBNZ%Y~E;Ko_-*%0bt)O#)dCfQbV3{OcDl$pRJy77{=~0Mr(ME{FpT3YZa}&jB>2 z&Z*gT6j(?QI~hKW6G|c-z=i@TB#^QjmFfq6g9{NYu!@?<`NKHZWKP6zb}0p7Nib~$ zVy-N`Qui;GP66R2LCg<%{aI0@*ECWs;G#fud5f#_buo4!1!fY&<>R7$n_&F11;9;# z7*{YJv|3RJ{Z$e#6d-c!{d*U_r*mw@)S5;r07L;H(nw%!WQjEmb^!%Oky76J>_MmG z980Fa$9)G~C%6LOx?XxFn+5Rg_7R1ndF|n7?_6I1+41^AQo`f?Wvh;9@Q)O!Gmh z{jmqh*GABVeBU(yWVbCt;K&vtYMg>DNf##oz(VSsLq?Lo;X#uLQett61vV6D>_~7h zky#1|S4H3}7N8W6i%$=DDk@?P@EE^h0p7VPaWuI>LHS(=YbRTb2h6XhlSP zc`gbY@6%>|H%0A96Lh+@Fh5VX$`HUn(a!Ch&<84o<(}l zYsX=OB7r3Z%$MPfIbIU5Q&9jc-#E_gfy(E}g9wZJ%r1lrn)dA=Thts&fl2>^U8~Ou zfKot8+d0G`31$zXp&X@A36g+aM**wWPD8iQ|qa9FYJ}VIJ9tE=;5( zV98Oyag2czP1o%$TM9Ufm3=k<2T@>?t2#&k%6Xzp%Ee_vP0Jw`r!Y^v56u>o^v5q`vP62?I*OP3Lylk^0 z5-A{%4e6nATr$CuDF6qOd9#+*E{h{M752GYh$t?1u4$dWTPSJW0x<-LZB!-zG!X)S z*;9C~0Fla(6|m^-5t#)5DT;biE^?bu)3OEiAn@ok5qDzGk|^NU-t_npud*!#FhA%G zswfsmxX?PaDF*qh?7zK5&Xw#`k9!M#mjOUxc1O8__x9Ez1wPuBIy#9lDvJwI3P?Xr zyv}%R}!fG>&al1=fVL%(4Z99|MB?t z)*A9i&C3qh8oEz5(ntK`)QTrmh9tPdMHxN_qxZ*g^W!JUL~ z-G`2jiNFzlPu@}9LeDFCRj=75wl^^kKVB?y{^B^-k|Yu+mlTk$NJAdz2%Xl8)nOy( z2-qR7782}80goCDomDV^I{X=vEeU8j!t(=o_Z0vk{meEbm`^Z}6bLzg%?IE(QQ2Hv z!Dmmk_xuu6v`99NH}eUI0Y0@CAo&c`#a1+cWzI!-)BDr$D60QEeP6@UnG9)t8Yy~3znCzEdA!x&40 z7wcjM1h(bmMAWDwDeytghc0dmOiC_g$R}=IfsIiePsoIBVshy-5txdaDY0g0ta0$^ z{fE#Zl0T{*hQT?@hj2a6^ z>-)lHav@U1$l69MSL1ByB0-Lxq?rJCy7y#ggO(mUAPVu39QM0y*iTL26jeVC;)bv_PAeNEefy8r+m?Zy#V+L2}i@Ul86 z<>_sn(S?Q+?YI5~06?!W=IZaC5dglumEOJPJ^=KNVlEHL3IJVU%-2ykqYKfRuE^Ax zJ?A?Ck=vlT-ee>r0J{?xln0G{pjdsj+m<|KJO6X_vPh`|myZegJ*|egJ*|{^tOy zvgcp17D|4Taj4jHD0%&%Wlt#CiH0Y8R0RW&@MI;M0IHTT_5dh#{j13U>|sn$=0;Qv zlL5?Vha#P5+JgQ@TObXjVZei}2nJc08&wUokH-hWb7FE;koTAk2+yBA9&I(>p(|ti r1Zba(jK{PawQW^`?>BARe%Ag!&_Pg!lXk)R00000NkvXXu0mjfEWxCz diff --git a/src-cordova/res/ios/icon-1024.png b/src-cordova/res/ios/icon-1024.png deleted file mode 100755 index 1919074fac91b5f2251d7028ba407cfa244c207d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8855 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 B_Tc~k diff --git a/src-cordova/res/ios/icon-20.png b/src-cordova/res/ios/icon-20.png deleted file mode 100755 index 739349e6585b501f4187c65a145816c5857d6ef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAd3?%E9GuQzsmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIC~0X`wFZc}DCO`LAqKQ(3PDzom1|Ni}d`T6sL6Q{rb{v9%BVa3L+$L>AY zaqY(KSFd~a9C+X*RRh$x)zif>gyVX$MoI%yA)6y3qbeJtf&fdAWG}12BPJ%D<032$ zCLP7eN&#FdXBWuq>S(;(!Kkuodf1UIUj!qr{63?)?2@uVpxegqxlAji9cInY=~=wz zma(Info-x!xqlwpCKgw}?l+~@Q=V&_NXVJ9E+l)`lW!@>ZP)q|RJ(J7y{r#4EE1Mj zcGSX1TH1Jp2B$%VyC#RGWn=7@~ diff --git a/src-cordova/res/ios/icon-20@2x.png b/src-cordova/res/ios/icon-20@2x.png deleted file mode 100755 index 46812c7a1b8037d41a5eaa802af8ff19f82fe86c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 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 Q)Bpeg07*qoM6N<$f)<=lu>b%7 diff --git a/src-cordova/res/ios/icon-29@3x.png b/src-cordova/res/ios/icon-29@3x.png deleted file mode 100755 index 56a8ffe4349f96d54b44c0c230f7a8e97f605e85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1363 zcmV-Z1+4msP)Px#Bv4FLMMRUC|NsB|{{B0Slt+}BfwsC{qNhrhob2@V zyVu&C$I8^^=tQKSHUIzw%}GQ-R7l6AS4~eGM-VM(OOPYg(pn39>XwYKeOZZFke5qI zGa^V_yex_0+Zv=OM@u-86JG+djE_Ka@ht=;N^ZNx%E!M;Re#K^t(j<0`T#rho9b7u zURASTdcQHWSi4`j6|g@Ipw-H*S75az7J0M+=Ljv)FoPRtyYeS+%&oywXpIGd-U0l- z78Z9nDc{W62Ohq=gE|N9O?w(wZmlg3Ts}4ZLEFGXqK)S*N#n>7P1@3U?2Nl<8JS-a zxgXntpAk`8gXh&F{YOH5|?Ru|FDYQ?a zv7W-QFMw`TfcFf!*Ud7!wP7W6F2%QRnzUQ8)ZMbB{aK5DKWldLdNwyE$u*Y}tqq#o zY}~DC8{`W0e9#b?_pH4+8QW-o6@yH_sU}B8s&_;7JF$|nh)$%Mh7F~OJlduyLImT<}1Zic&L9w`{NPO0~uakGY@ zNFp=KQ0hHL|7iLnXU}ULEi&6#0eoqV@{~vF4lUiw>W7B4KdUApv|b-#?)B|c>SEn! z$VK5vfnpz@R4&!IU7p+eE|iWl(=e6J_3=vUc_}5ViHz!IK-9tsPlPiv$1-(#%=I#> zlZ%lPp%I79^o#sJJXq9V#mVvQj#`o~biMXkoE0QxADxTDGW_ zS^An0I&&+2l1_J$rzB8Y?|m;B>nOEPIKS4I;%WQ3MvaqaN{<0MV|lB9xs^w?)p}MZ zGimcl_6Eu#9y4yR> zbO(s}d$+n-Lg4GPWN3)Y5?OdY7<^;sJo6K+Um~XPHm)-6NcfoonZEMrMfWIi$A%brq{LIjXHm`nu@ofc|!e+Htn;PXFa&l?e z+d>n-PPJcEuwV?4#Sl)@)$z!>&+?YAD?YlLS(Q_vw>-zG_EXtYVM{HHL13SsJb$i9 z^;sKIdHDrtB9v$jC+B+KuZ3i>Jk~=nVA+eTKRHjA2?r*+;%gk@LOhA%HT6U0`9{(h zj1aJ%6@*`iT4U)`47@yL2=kG-j2xM1?`lt_j3E#T35A#*>yIns>d~9}ZwP${ff#UP1~|Gp9u4U&W^Co3)7 zK|Tma?JDQ`U|6c*KTe}nLITmbSj7s>6Te$cI0X4Laxy(fAESP2o0VyO%$cFeHYAW= zz*<(6nJ=gjNypmyejTm=-E2bDKQS^UIWRRRz~)%M{V$6^Et));HYi(GVD~Al{0m)F VJ(tklcB%jX002ovPDHLkV1k2`kQM*{ diff --git a/src-cordova/res/ios/icon-40.png b/src-cordova/res/ios/icon-40.png deleted file mode 100755 index 46812c7a1b8037d41a5eaa802af8ff19f82fe86c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560 zcmV-00?+-4P)Px#Cs0gOMMjjGJB^h8|NlXemwK|dYN)MOoul{r`;)=M zr_9g7+}`K%^493-MNWv(0004}Nkle*ze~eV5XbLvAc77rsHH8Pj!K%Q!z)!m za52O`po%|mQaW_#7H9>xb`jhX2XSl%7nf3`t`bN8Det`|X>5-y_wJLs@B7{Zrvodo zF@jL7Mym)2YtaH&lp%+vMX{43Q{wo2oy2ZUu93p4=enjXBe#RAB*fI#I;=c-6wr_X ze7;+d$N>jLV_lntup~?F*OY6!rj(K=PSj^jWtuK~vP`cg5qmUPP8Z&O*O4GRs>+NM z(fq^(B_i9A8Hw@u*k+-#-^V3+6of@Og*|#}WYbwndxJtK(T&}Klq|U&n0>>xdq@|U zl9jp?lR@jcUI>QzERm_isM;J=W&EON8%17KigQQC^Va0sV3uVyU*`(98iimiqABMV z_`ZJ@j}glDCJlvGPx#Ay7r$I2STmL&iH0{lrtK~zY`t(VPj(?Af#pH$VcbMuD~JvwQWw5J+H5pc6oz}!Lr ziQ}T&I8_#?5~mO%&W85HDXQTAWOlt?uakAXLfxuTEdR2edGltn26}J&&h_*PaF%g5 z7-bB{7M$+~3*^4l8snQCI6-0uhVU)d|AL7n7z`}I=U?o==n6|Ka1Pv9fg|83wE@Ry zFMR_%0s1yzbOCrakB$~(.%kdIsSY3x`KcvoKz+CY*K_@yqhzi|sV;^0aJveR~N zg6AA`t8GHoC=;48YC=xvOQ{hg86AdRT9?Us2!q%XCk_cgrsdE9xM50YXF6e zJW_5hYDgy;>piJJ+QTbbRtU)`zH_~XXvpaMPfF`fcqucP*xrtXP>l<@^}};sl?kh? zq=OV3_f0et&pQzf&MGVEU?yY~$=`~7mkGsNm!<;w!*VI-O7y`-G|>SlWh~n{rhus^ zye-pxkjFNy+z@9%&FBZ5gBYjl%7|p$;Ydu0=%v~VZ3U^qvPvDtnX#%;2lxW2O80|VbJVtjDbpv!Js_U}sTH_mhLeQ>BuBbd zp#S)KV|Of!F5`zgKRyI#c^IA>YG7O$a;q)FG2EfmE5I7g#^Pn+lBP6z->qI#{sC`K V9pfIrQZfJl002ovPDHLkV1h~{rLO=0 diff --git a/src-cordova/res/ios/icon-44@2x.png b/src-cordova/res/ios/icon-44@2x.png deleted file mode 100755 index 229156752dc7604998c6a219517e2d08790365ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1463 zcmV;o1xWgdP)Px#Bv4FLMgRZ*M3b32j+94~n*9C!@AmhSz{FCUq15K+ zveVUIqo{qfxaP;^E&u=pF-b&0R7l5_SHDkOM-ZN358XkvZQs!gI9VEZ&3{_%M}j~q{z6EdzM(YU(5eQKJ>I#}Z-*@8VXiJWRWpKg;X zl2&yQKX0k@As}N!Qm_xOhcRAId)V|j<%DSdRjEjHMzUJYA3!FW?TJ!L(fHCf}Iz%$iFyd+QLfz zUN$nKIY(+8j;`z$?Avileghd-dB;$-SfPvZX{Qs_%kO1_)J(D|4sFE@&=mmhC$@|8 zY@nmr9uV?7u&j6-RknL}Y&)lOY`DWhvo4>2V_;aR-r&~OQwV-+N%TZBT_E0wj8+Cr zeUl9rAgO{nDB`D%X!DM0N`IoN={&MTf2caA$W^Pleg4P|bw~lsv0;Lm84<_8-2x{} z;ZUhs3L~V$%J5dnPR8y=}R>~}xlrRWuQgunq6u@I5y5!U_H>`nZ0w@2- z*Nc-e$1Nh6*y?7egmntQ{(R!s3$Tj6DxmJO%Q+!GuWWThHMN`@>B6e=YX`z_GyxBC z$z{QP=5K4?mX!PTs&1SX)6B>`;4ZGXF&SNMs<_`YK4LGNl9wk`Q;hs{68BXXzKZJ` zQ54ZZe)g=|{z0B1e zV|+-^5mFD=lpq`Lir@h1h%Aded16IIa^9eS>j*MRh;ek1K}keYJsR!$pjaZt2bGB4 z7Z^#61|S!;c!~j;4uU@(9*%OyNZtk}TxYa@8$r0lk!Hjk_uZ5Vs1DAU^i(qu*=TuX z`Ws!ZPd8a*_N@_k*AM)YOBRd*mx8W)N+svutuFtWb`*W1T zer_CVci0d}gP2}z)FYgU_R(PCIe8p{b?&<=b2%`H4eh&_Nnz?5vUeV0CIZRwhv1z1 zv-UFPH;$*Vp(YGw?uh)dO8><}9ij~cVyp#!M2jmU_^C{)ipc0g@^#^)gBvtB${<`F zlWrW8L-sM3#WASo1D7ns+7r)NYZHkwdazDq-2K;tM9UaY$iC+|*UHzI_CJo6$(`Po RDT@FA002ovPDHLkV1ni9zJUM$ diff --git a/src-cordova/res/ios/icon-50.png b/src-cordova/res/ios/icon-50.png deleted file mode 100755 index fff62012fc90adc67736d5df7c4dec2b9c75194e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 655 zcmV;A0&x9_P)=BiM00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#Do{*RMMRUC|Ns9xjg&`}nr*7DNR^vZoTA?B?Y`RF z`uzOs^z@3mzoN;^(&gqJ0hJ*D00IL^L_t(I%Y{@iYui8+K6=QThX(@dWC@HV1%q8U zBtlk4q(h*Cu$#qDFxgT%R72a@+BzPDKyVig@h<-ZY3rzj4E;BKrzk-uB>GKv@4LtQ zzI*qMj6QJEflo2{?sO5v|4hQDlc58$CjY}}E0?~l-c5Q^_}3-xX8hf)(<3Dvd);D}28 zfOu5xnAc~lh)|=M9;jl+@Md_Jx?&vbN)LCIH-`g7C3oe%aS7;8_gtYnbSNHk%Tw&& z`Pgy@%E)Z0+Ts4rcKnQmmvy6FyHiA~%#4toZlG}qT<*~1a*$fyQ2LSx5NK!1gAFU@ zaO+_HS_TP6_?bN+bOy;xeABRIKoM2WYWLeC+5#RnPy{agpjFOK3A7@m>*r#LFK<-E z2voqk!q7f9BTnO&P|YM#%wMB4CdAKc=AuG14f#Ej567)T(+c&=f`dF!hprIopz?bI zLcTfeRK~8Ftr)Ub`z>e-W?pxW7o7`(c2CNQ7&|?)S{{O)S^d~I#dNBaX`Tvr^QY+h pU3lM*LXfRapiJOTg!002ovPDHLkV1h^TGRFV_ diff --git a/src-cordova/res/ios/icon-50@2x.png b/src-cordova/res/ios/icon-50@2x.png deleted file mode 100755 index d2a822dfd03984fa6fa6550656e2603f14d5a372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 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 diff --git a/src-cordova/res/ios/icon-60@3x.png b/src-cordova/res/ios/icon-60@3x.png deleted file mode 100755 index 64816916191e74a4e034932b3cd1f7cc3af17ea7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1975 zcmV;o2T1sdP)Px#9#BkFMgRZ*MU$CHm76<_lxnE0+v@9$y}|VP`K!*+ z!`JaNslax$b4 z-m;**}!*-6a07i^LhV`|F{}2X^?ZbVu$xSiwU9aF@71`xghRZ=8_*w1DZ{ z4LZJuu^WH*!3@^EqxA%Kp(FIAtEcGu8APto1YG&U_rZTeKcfGq=qPf94(D@6Xp;W) zTO2w;2d@uRIdy`*1Sq`R33}!oisvSDfDX3DZsH_yfiC;2aq0j~%JypN!s?86n+|+U zE@{7+JFxmWMc;(Oqt8onu^-;*U`efBJ3wzKx@Rw|Mc-5Ocz86y-OeN(9Gw-ojT+u+ zlr{9seHt`*&USxSgIj&Z(ES=^4LbOep*KTY&14O5J2X1JXXt*y*7>^H#H)(Ie4g|} zGg+&J{qw6|(_UyM>w~c63VBv&B@Y@|dlfsEvLB#;leCZ37ZtgX3cI|kX&e_g*<3Ab=#ceprRs9d^!Y`DMp@_g3SncD;!W()arsd%-YOmz z>m<}Q8T8qDipIBv&9tcwN6^aJnZlMKSfv+eFc7s<)L&g%s>&7gAx*D)h)! zd{oYNRcthDiRl-dLh%b$*ZuJA;lU zMT5p{T_@(fLLlnG3%YDQN_~Z}X{sF+x=2@{AL`;XYX==(ZoJZkBWPuPM3XXodO~@{ z7PhGNHA4Q45Y_ZDF(V&Qe!+p;OlE z?)k`|S02r^eK2Tb4KW|ooUq9Z8>cf}ID$gfM<Bftip1I z3ai(eOJe22CP*NvZ)LY_JVt;!B)NF z1p`?(x||u8V*^d$1p`_8Sy%B#U4-rBn%Akc@PaB^3vXliE(evk z<1e~1MW46!-ltrblkt;yyu*#5L*iv?ixSkr#^Ux%$dyU&))c*M^>}=jb1v)_iMsHD zq6ukqru8f*UWyrZ)#{LS3Tc<=pcXc(UMU}56GN*d*^Hdk!d?mb(G*@#$@*IOB~AH9 z<1%q}L&H(JT>YHUd*hfb>XUw31Qw^vd)$!(xV{hU#CRei{))h0xw!? zD@zO2EN9l3Nz!|K-^P3at>t+V?^Uy$cq?x8gw3h2CaOO)o_WA#Ie3kYbW1I)vGNb8 zY=U|lVsfgV#A#t`bu)Ca%Sl_W*7+HOnbp^!B+(v(y`WEmNJeLkN2auTFO8#VGHZ^q z_@RrL)y=wrT~7SE=`Q{qi;=IrEBRaxC*{}D0hf{0-efMHM&f**FIbmQSowO_t`8;P zulCGZCE2$MR_L)h?^=6{LT>`aW@k4%5h-Z24`7(2rc9t=1#@ z5&hqxLsw+d^K7+Im3H+dM3VJ9TWx@T-uv4y27TNlbwfVZ|J;$YSK#P-s^!#j>crV} z+O>D!?U1&$Z*nrQyGfYhS><=}z&;7mAK9VscRvhk_KOck?7y2$cYX+N=;QzZ002ov JPDHLkV1idv=F$KF diff --git a/src-cordova/res/ios/icon-72.png b/src-cordova/res/ios/icon-72.png deleted file mode 100755 index 135b81d98ec8d383fb9d1acc8367e3914a8caddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1119 zcmV-l1fctgP)Px#Bv4FLMMRUC|Ns9-m76<_l=}Sr$>8DP?(dkx#%8Ch zQk$TFwYjp>)fC=)#Q*>U*-1n}R7l5-R!eUaNf0iT#e$C|wI?XKlsp27n>A4|B&U{I zf$Rw@$^|aiLRuLvLUwOL3)?&Ql{kx0hCDQut_w{niJIHw{+^_tR?IPe6 zLHYS(yl#nLZBYFmx)+06@i#jB7aq8tzlqs*Chb4Gu!fWQ`rAul3Jp3d>#mt=8*w{V zC4QeNn4W1?xe&4_)@%_YC!kcb{u@jmZkzL!#nLlN4k z;>Po@SG-|M@x%i|rdP%2|1nd9%v3}imZGWf5CE5RBbEbKfScTPR^*5-*qbkJ)bcI1 zC`=#7CN{q_dllsP2MYqzYofJx7oQOwM+_4+y0+aHp-IHz6jZaJ4oXDKOMGf`mbbyni8`ca+}nKjoUwbYXK1`AUJLX2!o zc8kI&7Iv#gu0Vr&r#;IaC^-;C6!_-|i%^KEJ}%zZR}kddw?NX(v$l{R^CY9j1Q z@#aX*i&iV9#`biBbW(KgEh@iuz z74DzaKJBL!I4_BI##|~ooqQ{-eyCST8If;gfLq6*g;^xR?bPw1>0wyU z>d-h=_FFpVCm;Xwe*f0L0b^+m;}_ zJ?_&K%RT3KE6qavy{xO4A!}=G<+HkuQ-evFN^!|U*0k|EFX?8|GcV=A53^^9yw|1+ ldGMq6&Ea&mr3n5t{{z-I!-ylWx~c#G002ovPDHLkV1f~jCVT(@ diff --git a/src-cordova/res/ios/icon-72@2x.png b/src-cordova/res/ios/icon-72@2x.png deleted file mode 100755 index 32fb214c9ab56857d4bee7c33dc58d28eb2ee18c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 zcmV;>1uy!EP)Px#9#BkFMgRZ*MU$C3jg(53oQ=J~XQ!;z=;`kD_PW>E zpvcSa75hE_00mGSH_-nJG>Y7S#&?+;&^-*DfaZl$(IpYR6`dYW;Ha@j5jJg%1KWpne%f#-PPffQC&) zvTau`;f#z5Aw^U=)5JJyI{|80+pN0jJAZ3FbjL*h`1a5O$Z6I zFfay{GV+$h%P|Y2yFizWuIGfc#og`#T{7~y|Lfvo6Iv9V5gmB^#LK6&C_1xNPT*=x z^hi;InIVYF=xK3iJtM4~v?=InYB@fol>@R#n<7EH4pJ0fPLGmyG0+oRY@wi|aix0jImm{r`aL*S&xfp zU;>J(B~El}<1_U~N80{dAY7Te`XH%=^c`Qa(HbkUKcZRnG^Q!l++~kRHJRGG%3;Gt zHACo_Im*mHN41QE0{3b*3+tWI_79yhk~JYS#IxyTxG_i#B0AJr(RyTzy%Cequ90@u zwsjOd2x&eu)H#c3X+xJARZzLG+-D0(bNap?G*OB&RD0xu6zZ0&5ujz1C>h5;;MVA* z*5Y~4QV9Zul-JWNf8c2y_JX*KJk82pl%&aj;rD`68L2%IP=%qQ3QfX`w`V_T19Paf<$E`*3{DvTlkr4-pA9YhqZdy-$ZInnc^lA*>Q``Np z_0$M%wZRzKd0RS7TBG+~WL7EV*6xC(Dy*J^`(990Sg)2KCR3eT-W^r-aIyuh!RXw! zAM^m-XFZpID;n0~iC^>-1JyJgiJIFAy2R(qv zU7Nx6>Z7(lwE#_x?xPGqbEAt515nJ*4IF^VbA;j80VwzZ;LpGXh<&(=oPdfp7PtZZ z``fHPx#Bv4FLMMjgF{{R0vjgvu1*uO` z8ro~^rYSiIsm0*iLS47%r8Xsn=H!?*^cLY_daN2q{=I&0-g~?2cwzMrV)wn7@6CMk z%}6BQ|49w&#O|iGvtu42LHj(w1Du4B&9xXYC*+#_JKdU8&iI*^Ib&Gt`qgpi3CX#8`yC-s0 zo9M2{dx;RqYsn{dXrsQ!O9#O*(EnL)C#HP_dfKfC zExDA|ZZ4;4l7oY^yLZuab`H`O((c*rf#XnXLW9~)H?~&<5qs zm(EyuES=%FC<8}3MQ-^U7>|uqB)YM8UP?LKh_!27h1;?@jqtKQyi8lS(Gc{=Xd`}R zY@uV{q0u_SGC20ugH(?2@Br3xx)12-1B?nT(VQJS+T7E24sG+70-tU7MS2SjCqH-n z9Jz6t${19q7v9QDPy(m6)Mgu0yRK+OPxZy^c2P3gaCZVKdON0Ec)TsbiffVIgo)Ye zA?q9D@0g5h&#mFsPL6&(s)=wb0!9g7#TlSDtKL$a72?YqnqG*%!1KSI>+ndGFkPvlM5W6~!?Jv0I0tB6#;} z7)s$3XU3|D%da!M)1kq@(sU0eeo*73K+`Z7+>R9(4+rJQ;z}QQG#fC61{%_9=fJ_A z3(;vz1ADvfCn;=b*`pjf&_co1TJE|=HJn<2C0fkX=_m7#S_Bv*PKLz3{l_*jy{9o% zNVs5xt)tsY6hl`J;H?59mhDIKD1>R_MPp~h*%klV{1q<@@p3GM-wCwSCIt$8{yz9{ zZ%LEiiy#_{!SP-#;tp;;{|f!#UZqNkMTSgkbY$hDlHcf7ju$8&e?c`!QbRcEae`>v zXRS}Cy)tF0$e~iB(d-#zheLk}bF5If5hFBE+gp(Q{WS+t3Q~PWBcD0*cfaTV19Mu` U^)l2CNB{r;07*qoM6N<$g89fX#Q*>R diff --git a/src-cordova/res/ios/icon-76@2x.png b/src-cordova/res/ios/icon-76@2x.png deleted file mode 100755 index c270b9be07fff066c6eb19d19cf7ce1ed31b8956..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1450 zcmV;b1y%ZqP)g+ud00004XF*Lt006O% z3;baP00001b5ch_0Itp)=>Px#9#BkFMMaaD{{R0xj+9xSr04PS!`?AE)3HRDj4QWcSSpYTFs$c16kr9G1`DtYB(Q4% zHpGblT?#NHw~0jU!1_2~6M@BIM4B=79*<^>t?+1uMYMAOTj0@*v12@%VG%6{u)!Hd z*#KB>qS5_m#$pH2=;L-Tnz@KZf6jk-zYon^@+h+QDkzxe4Oro*g98Pip&4WEI{$kT zLpj}pW)69T>#X;nnZxa>xkI4S94N5P=zwY#p)?yX*XT@w1)!$cugo<%S^eoe*few3 z=p3>@+oB(8n5AQMz)wTeM27#`;lmKj5Z2Z-i?=L)jj&W9-b3h(MD2DreSI} z;Hl#tGRePn7|n(}bI4=LLOt*Zs5I&Nu#%H9kY+MNKRe}Q5vFFP)Q-X_C-Xp>NlsmM z(>%mbYmj&&*?z?xMiY<%;_`hdsy5NmXLasHH52yR>vTJOR_9)%S@j$d5RG@zJfsY) zG3H#NTA6d#fO(gJhYgXU4%zEq<{|k6YPM-4qHJsSeLxCmGXtV6+G+k%fTaMbD6w<1(>Fh^Np&i(#$^vCT4$&XyYcfnYX26MqM0@O(8sLSU2`g z0qYq+bEdk^u5WYXYbhqpnqgWQX)ZA8PkmAVx~!~hEX*|Ls!G}ow!JeROafdOnq3&i z>PNG_eV9fq}iDj+kwHkjk-kXNwZ^H++wZaFwg$s zX(_2)`Dh=8SPZ%2OFK+c8-gO5)NFl;D;`F(2BK7J0Hq$-;hC43nNe5rI5s5wz%K>b z`mTLAHFG}qN`cNbl{`Kf1f+iXG-(%$rxF8hQA!2;vGJoBZ+%eRgwkvc_O;VHv0H~h zifHC^8s?CzR^NntyS3UMsy4G$h1N37S7tr<`=7VB-){BW4PlP9>MSIb@VIJeD0Ouk zIKieJ;uUZ&Du9_cSll)Exzy~=^2wzF@W^f+mja zS*Bhr+67j03&}XMXA*iDYX?|sX>g*;^?qxz+yRSOp2x9x&&4~-QKMeACfrEv+L63TLK)4;! z#x=~97Fbv$`FN9{ff35_u%313xAs478%(e@CK*wWCL$i1Ovw-}>*xdNqeXx&37Q;> zBd~afbFam*;SvRnX1M_CuMyDb1P(N_{>|&b{t<=mzjabIFt>JGod5s;07*qoM6N<$ Ef=o`kegFUf diff --git a/src-cordova/res/ios/icon-83.5@2x.png b/src-cordova/res/ios/icon-83.5@2x.png deleted file mode 100755 index a847f6e8c058829c7e327c2f2e31e433ff4b6724..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2050 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 Z{0Fma%$7ZvW7Gfu002ovPDHLkV1g5+C;9*Y diff --git a/src-cordova/res/ios/icon.png b/src-cordova/res/ios/icon.png deleted file mode 100755 index c1be1e21e74db1bb3a05088c5f33482c21cfa746..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 760 zcmVPx#Cs0gOMgRZ*MU$CFl$tq=lRuD__xt;0rmKFmxvbC9 z;qLFs;Nnr5ppU=8N%;!^0007SNkl z47C*n6f)crs6+=OpmU^vXtzj_Sh|>2nOJCv)HO(<5*rfj(*9F@cjtuK;qs=_`}ppC zzwdq+?6b$8j`D9{ugY!Fk{E_o8r)-Qh1{LM4!Kx;q+(Is^G8~GwTyPoLpu$6j%TN( ztL~9!UwMSSm5L2uXr~Q^i)8FC(mJponeqB!-8CR@s5q-;Y2_HQP}6XGE^kh0Kj4_& z-^%L+I_So1saI|Hd#3Fv(@o^7q=y>ZMy`&_lqzL6M9{Z8765bJIPMZDB10Ev4ujk(=ATjk&~jzE*Ft3`t(Ju zGAPb8`zpMVYEy*_x4Zd>tR3m}D%MrJ(Uqu){X5!vs&lB*FL9>gqs%LMieV4ezI%%w zI^BZ~rVk5czYe<8uQf=Wjv*yuOyZl;@dCT*=!v%MN=76`GFk14UuOmB2+lXnR2Jid ziK^)~gE|4FpC);LX4rIHx9ORK3G9*pK^d3wZ;f9+xppMuyS{~f;#WU4$$LYF%_a8y z?AUgC+f+S#h=uhm8H#S$y_e@GMatOZkEsq q9{gqhgPx#Ay7>z`e6zU8;NoDTsOIqT zwba*`#K+nVRV)Ai2ntC=K~z}7omkCJ9Y+keWYk2x?MOU6ZZlCKaI*R~6}_#rkO!Qa zgb1l8pfpl?N)S~z22v?K7K)-ClZZdG_I!Hwy{3?XJU07g#vc3UpY4IhuIv-sar}Pd z8ZZy{y1Oof&B>t!d(hokBw+hv0}osHih+0t3-~oFp*?{E(G`L2_=`KRNAhszG2Vh# zMR)n2TR!+F0xy`qyRK=> zd|x0LbfqFOzNvjKG+}tD&Isgb376@3$7UYn#vi5U*iUb1Z)dy^x@ggLaZY*iNHzYSH9CIXwMwu5mm5LA+TgY-1RG)g+AGhKj*HTeTSfu z&@LaJ7hkw$0V*>WTA^g#4KLCx_39K`&YJZe73Dx8_GCtmPIl)aPh2Dgt6kP(y)RKy z5gey}m@F?+_X_KDhLHy$^H z$&5O&B-h{$i~GpIZNBR>tR>cYKhiu&Q`WlAGWS@BS?e>~JvOrPT@LgqZRLG?;+Sm5 z=j@uy0qvOw$7+|+2vvRvBHJgH`Jg?tLe|kFOx+R#qQ1@-P=koc)+|H&Ig>S;h4&FW zu6I)qD69D!cISNGibHP_GAHLYBe`Uu;@v>F6KCye2YfPnkm7$!)-i}W)P$Zam4a`J zopKzk`938|p-~=-Axq&fePfPJd+mdxnU4@Bq0v7DM39M}1`olVVwx?Uyd1-7j!o-c z8p%>Ry-_VxOk?<6e=cN=G4A-#KfA_V>wH+LDzl!lJNZ9jcEn;zcnk~oh?O|bU?(hm z8!J_bPO-kH>zI8fk}SmL4`@cMlhx+^C5;Je*r7hyzZEL!By4+C?G-Ep#iBa_PJ(y5 z(fDz7Q?S+7@ngm#M^BPQHN}f+JI2~;-e}BWDhw;;{wzq8 zf@P(fN(<%G+Y+7R8P;cCiGf3pej!szdApE&DiT6;%2#~g2yuB@>^yUIeIq3yB^^l6yPEZHZS75&tzw&=`IUYD@IoV|1p*eRF{J?@@5|G5lGlfb*3|!h&URC8>AToxIA;tyUzFb7>H|9I>;o7@S=5a-HToFmbO5_k3w zkf~udz>5zr{V)Ig<9u{#hyGxs9P>(A>sDmeOaJrYH{jVuepyq=AJKe1PjDf|9=5*( zTICZv!?UcBAGZdM*YWUg+3=|@^)x%$l&ZvYJGD|I8SD5&mgl-9X!H6uI5s_{PGz6e>n=X}_upayN!GnYVgH}QiD z|8ZjP_KXeiQcT+gwwhe1iH27`*W($MzUQ$ROsbjar}j}bbsskMC>K8D<4YQ?>&Q5` zSx<$r9t5es_S7PSv5_OBnmeO$kKw?v?afaEYOQ9*Unm_#U>@&bOg;IRZgi+*8H_DY zGv9x4ehJc&FQV&LyI}2fy+Zkpp}Mu9TupNLofzLN{g0CR5UClz??Qu?a}brxJF{EL zuO$06?sQgDPl?E?)+gT@_bk1u&NQPeTmaofKVJ&ap$O*+yE zs`FGuS_OLCg@qo6m&TRfu{4~d?(NzW7!k$o^=)!>r-Is$VdwGOB{YBaQ~?32jz7mx z)z@RYW1tzG>IOQK_kW^Ul%MO5EY}HZ`{@FNpgJ>^9*i(g5uSN-Wtx8hzh$Vt`zjz3 P00000NkvXXu0mjf(6A*P diff --git a/src-cordova/res/screen/android/mobistudysplashandroid.png b/src-cordova/res/screen/android/mobistudysplashandroid.png deleted file mode 100644 index 079d26d2b6825d5c133783bac74b1feb37cc5ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9755 zcmdsd_fykPv^F3J(nX5WrKku20qN3v@4bn15RfjR2}qYvmEKF}p#=m46qG783B5=U zT_AvzkT?3(J9B?||A3pBoy=!v>)ErWza#a_4u!#mUOKi-W`YSye&S;C0SkE@2RS z>ixm{gwzGiJpDY_C#@V`$aF8kd^kUmLZ9f)!plLRzrO!cr(@SwRpIr$==AA=@WFS3 z-^)oT%Q7G9YYN?j-Da}YCn)o;4*#($=6~&fmkfikX1}`yy1wenAC;YWl65|coL|cE z-tX8fE5R=4|IDx8#yzPkK2(dP^1ELy+SbUK!Y_l>Qs;&8!NlQYS0`)?Up~3Wu5@`X zBt18c=?Y!{aGTw|ZI?bh_{N*J#}i*;^FKf;3diUIHwdn6bqcEeoC1W%su-1>6-(hQ z1){fZ5>-pq@MT}sSXY;q;nLVTJCz4*zUfX`KC`o%f7Chd{p%;gcOchKjtkgcVRiK= zcs+V?+t@-DeS=5*{M+#8CEjpH5bkQkjmhiDITq^nv~3EjwXQ%|(!}`Fx|gJ(zuvmc zu(ZV`q8K}g*zl={#=&dxF{A4Cwq+DmK>eaz2fuETm86)UT3g%uYQq%5q+AsxVTz@M z%qpWHCg-FR{7EW6I_mi}BNGe3rWcGSTtq^RtC{{GCVCkcl!JWkyZV$RbaLzFEb7{r zBIi&7W_E=26%3cr9lX)_i<;V6U=LNdR&Q|rWaUu?tgh_Ky6w5EYT56GMeR!%0U4P2k$eIg&mJz=^7A$k+1Wm+BEWvzgvN{;RMDBPR(G;yeL09wEpVT|ZOanf>mKCozd@dU^kTvom2d zXNM(~^_D(mrQlx6XLi&8h4AUA`8TCwa`GKgBg!_r-vcJqi6ffid&F}yPtAYa){qdW z_RezdB4GZ~#NHzg{{K}TLCrATRP+{Kd#$6X-|Nu}kNU;@ZGQxv#-YsxdlPfnE0CAI z`>typc!>wkS0oY)+;c5M)4s-sfr6luiF+Uo7PQ^>*IA#u$cE=WMn0%DQS2a5-;(MK zW>r=!gNzS3{9faey?$fc8)Dt(UO?WC)*#N@N(k5qlq04N(GJbtA3my5=|@3<2#rg? zPogrW)*9g?7;kLQgzJW0uy-R>Zaf{|M5%gud1e=}<2D0QdEIs^b6yVqc6Q)j4?r1^ zwox+4QU-cS@u+^hh+QFmEKO)^EVMhuYwaGLl-n683@!uof(Fu(y2cH9QPE;4SR(4zqU8 zQhZ!CX31)|(y3T?FxltX7@+IT1rg$Ss{1mmT)*37XcSYtz*SWpE#4#SKFN28#`Aee zZP4+8W}&-_5H}nrjN@w)d!KEJ)X6DED7fz86LGMY zF^Ms!I-?{^6_iFYG|3v!MKp)8pf`3NCYU0FX}sOXQHl99Qud8Z zgUxKRd1F&JrDV3T0>(s7F-Pt*G+% zYjVI3CLaXH5$b8&sdP)d?M zVeMJMKmDA3GM_!aPi*3xCVqL}wy%fHIrB*<%;-X`45D9cD)1W}GW_gBQhh4uz>h1! z1jJnsp|f$dHvn_jxTPu)0`iyL2HTqydXR3t%En27ffs6qk6OgViBlJ?HS^bZ7}M4m zoHYNteKW%xmcTUF`z6gxn>~z+IjWeQRaX3wpCf-Nb>CYYvW>JIh?1TDdW!wF;n&)= zN$Gge6UsxIdbKDZ4L(s5cNx>n@LCRpnz>2exF%uuz=d19L3D0R1p@}MN#^N~E$@UW z{EVWGni8m)gG#W80@}pPrht{5Vb|U(Sdr*s59BcsC6ZD@qG7J!y_8gnaLoerA>;5@ z(pm1WQM+Iy^ws+JfN1wol>e{KAF@XDTO&~r8idcZJy%%g$mc6X)He?8p1;RCGr*yi zT(M0T$8ElVLBQvCA8WLcKlR;Kd5XC^+GZ&f9JJ=(6n2KVzx8pV3Ig$3mvs*abXrOr-h*s*mbRL0E!LUZH zoG@NTnaurmdmiIJERkx&Q)Ao)cMKBA55*D86dB9<57Zk{Rf$i3ln0p|j`Q}(awiWz zq~je6)vPJ}ZhBlUwvmxHeQEXFbMVKdWdFE|a;Xj4?m=R4ru31}U@6q7hiXJfc%myI zS7jkZl=z>rNTh0`H$`3U(mpDd2alG^y87cMzB;-J0K(}?^4~E-@Oy7b4oi0V36@@o z>1)ROe|1d`wz8(rl#g#V+cI`dfLB8xSa`d%*L{&P8TL=!BODi7gX5zf4>i51-y<(Z z_a>ztcYGf8iy8pt>=8uc>bkt+%qfa&Z_OD%Q$Q@|AX9{Ty+EfOG7ZGkV2yT|= zuC+M)azZuG0IngCILT6Vb(xD9QtC{vrWYg3=_VXa365UR#vomnLa*>8dn@d%xfCAS zF!eVr;UzwwO|}IDT^rv%xs|4T8fvMFsSl9?o-zhQO5%Wrtif;D6PCP64r6`o5*MCN z`4+THAu4Gm_e=@Z8c%b49dFNEAKq8C@mYaCJVEsgdZIM^!XDdYU$@J=k!k-uw&ui# zJ}fp3sp=zMCYh(zg;+C5W)4*t$i@I0oH{703l{pcM2VBE92;|B*%G2I+e;t@{Y!K3 z$7{bUbDz$Nf##(BD55P)wsBtSjt={S&`Xm-9F+-Z*fC8z372mh|)lT&dck0eW4ci|ME%B0|OF+IX@iyZ{{)p|} z*V>0M!3mdIIVCoQYTEl%muk$4f42;hl|IAb!0%o z_w1H7`fc_%Y5;6uv=ONusW4qZhhgw#>Gd5>8J8(B%=O1J<7kp;-Wy%Z-2@k-Ee>PF z#Z(d>d-_xeonEQFUlj;{J+@+6|2or5J?*8S&0k4WYqCWzy5OWY&0;oR2Hzk9)avOU zj6-j$f|;M=UU&~P8Xva4-YQZ{=;bk&wPsE(K6T~X_AQ^RVvKyxW3eq7?|&|Cc3^|@ z+k4PvsVJlJo_$?NAWn0lbum@AjaTo;(gtdI76p`Do2_xeFgQYS-Yfgq1w z_?$3SmU~8x8WREhw|BzeJbBe2BR|K9(+%ej3m~3kV9&&L>hc@(nwSKvYqN}nShtj$ z3#rM<*Z#CEvu3{A*kY7niEBzc!Da`&+&05P_iE7VUqq4_bUJb$VoV>Xb^%`*oa%XU zB3e<`<3$`2=pC)71G+#y^zm)2RVzE$_xm^laE5;u9ICp;8k}U@mV>EP+)B9Dh|oH` z7Iq$Bqa~`b# z@5R`dH^J0Yoi!H=>&Z`d&8(wiGEg~rP*3&vO{YWgM=nvW7jp(}C`seOv^nKrQyB`5 z8I6p;F+jZPV@_zc^}Fm6VVmtRdWKs>JE!~LhsWJpF_vmqO zS13Vp8+9i083nnA0;QN7X$3+ig{K$7s$Fe|(9RJy_^i<6s}huN<}LLiz`eiv!c#Va z!P*6ckpx-Gm%EDtd8@DO5)||s$Tv5137VWk8GQ@bmESv^wDn#Ou@$8}K-;(^WZ8Jj z(M^lgCzV}^#fJK!PD>20^a!3l8ete>xpX>wd#>#}Q2r;8=cxXNTLG&cY>vd{Wp1fZvmUj&)i_swy2DxfP( zOy-kGT%(?N9Q?CLerablNA3C;d5GePw`)Mf2>2`b}P3&^DmZewAS1_t8!w#4^JjmE5QT9}y9$ED%* zkg%bMr+U{{_=Z7fOxr7k2F$dlqimh~To2b+1Y<0!eQ>Hkztfb*?gF@w2YIpO)g~mF zNKkHow%Y3E1mTrf2M*7kR4(+7ad0VQ|8-8Jgnafl+yF&yxr^RxH~@Lr%` zqj45&DAPEB)-CEX8E;rj6l!ph=mEza4Cwq5;2QiY$wj0PT$@X~mb-~txy>qeNE6RV z)*i3_p(s+_oajyN6P0a|ly92kJTG?)TBsxQ`vD~wA%~!k6v^^ChJZIaXZzsjl7wpC z1j%#%XlmoiNd~{EilsyfQS`2J$G#ns>_5of`YMo=_d@o3s#1hKp}qF*$4Q*|Z_X)C z^A1)idePH~iG#-DQM*C@a$wPTVYkw>skyur75PSUQ=}R#pEr%pLgAsCGkftV>IYf!G2l_}~(futlRi*e_8aQfDE8e&@V6(#GKGym4t6t#huhK0L~{&9@ebBkt; zR?yj)79AevI0fSh0)cjiB}@K`W zDUR^%Uao0w#(M~n8E{-1rDS5{MJ>n7|I8;4V>db(`YyZLA!@gXQ1X?CH}Lo!pT(u~ z5NXo0=<1eaW|-sZBTDVnr+o9lb-u}|J4q@^+ahfzm2(^V0e~*7ht$@KDx|&tq1UBH ztrGc(Mp5k6G%u*21Q6|f7={z})@Crw9xys3N>9XVQsfskcPoN-o_Db=S8w9DyF#5I zkA1#eNdf92PVB~Zh8PV5F@YC@03B{|NavS{ zhsW-X+bYHi;giNQ<(HBnod>UG9WOpQ{PEImZPMJn_x*+m?J{7Yxmb~!O5*kUB%79} z6aXNI=ayX)Vy@R(5{Xomn3S?+^D0IE)yP zuJn4@`dV8#P-&8L*ltu8`3&Rpk@VZ^h7ieH+ zZ?V1{B%qVuKLWPa&Z`|U_a7_hKTfaLsleSAfN`KR1J?+U?O(jakrO~e>5c0(6vLaJ@g89>a$n|xl3pMbqC-#`?Q ztsoyJx0976X$OSM{I-m%m|^>H*>Z4`Dq2~b`r5g-TIGPHWvb4=#l-7tLys$^Zi*kP zbQL`vZ~q+pD{Ax-#9VC7A*cQ`z=4wWIsTmy?h1HEW=IzJ%vmgGW$2o3=~HB-#|V_M zuzK>wp)GuWVaes~A;0oduQnH!^ceM8MKg$&|ID{q7X6XBvr$WxmP2%|U&9XCPWwE( zseZp;FObR<;OS_TU0sDT1gTh3m6|Aew3dtEsbyg?XhdhJ#UjP>fmhZ<}Pz#B~7RV;{6&rDQ3rk z)*ieX#A}Kf{P0d%D^rys@rXgPdhB;hGd2#YIt}$CK7{e#VGC?}L7;;9g!!dvDAGE) zNsXJ5P!{?lY-f_!Q2O92O%?oCR_nheiHdTG2BQ zr&QFgL&(TgD~ZAEMl--Z8KtNfTtC;$ON@t~0s{G2V51TxI0~wMv6A2QGp>fj*i}!o zGapt-b1~0Phnq4IOFe2_a!#2{wOqpbQNylq2ItD;8mnZjrPreR+pS& z6{|XYr{Vn$pL8fUGakOU5Ytvu1Fk-R^!p%qAv$rIT%f~k`5A?k82`$B=G|B)>B6jD zZw>*slQ!D%x4EzS7aNVwTUlZQ_J2--f-Z*Na#hmW`lH8-nrwcDclvkJRaDZZvWuGz z>VAqb?G%SD`l3FHhg`INa;-{`ee=dse8PEM->N7qKQULP@8p^<{icO;P^j~KUX1Jm zU3iPw$xuL`mEC%SrH~4V{3B-Kr)`hQ%9g0w< zPBMy=ZI(w6Ay(TJoIAx1%1a4qXj-rgWJPj$N%6}J#M|IJbzEaQk3JqKNJC5KAiMJe z&R}Pqn=c__zBF(%z$N7M?P4mHW=GNWb5DDrTvs2hE|jgiEa0$}Bg&1YEy5Ep%)2lzjbyZ9bl952V=Fc2$YAkC<9l zl_BN?40#ze^4HEbHxa4uuvkCj*-I=Ts#d_Vc6Mqtv=-bsx_lXU2ZdgEIiWQ5`;yf; z&5?VxQ1H0!NlCoeKa(ArYYCMh5v?)1UgmWf+YJ3iTHEgzVf(N=p06A_ixBN}g_##a3OTe}2Q8tLXJ_hW=OOnofb_kqn4?8gQe3>)FP_xCPXxZR zU3N_mNJ|QIuDF?NeANK{`eY!y;YDJYEx?E{3C{As= z^AOpY^K*dCZ2`hrRod=F-PG&CvSNS~9@tGV#|CQr7EMxn5)<=g>4O-2THeyRRg+Kt zLJwdI6rRNOnCaMl?_MfrHovt;=+WvRU>K}?PRwg?y}yDVG+8CIBQoAnA`?V21@Z44 zwLA1~>+C;1gg%N7PUPE$@M9odi5`{THW{z)M~QtJIy>G{@3+7w?LCekMIsbF)-$Xca0 zaa#{S*Lb`Szh%jRbJ;+DVx1l-CRvK6;681yN{*e-@V$mXbNWa?i=$piCqjKbG~)*0`Lk zI<(5yIP3ZzzS-G)kQ24zK_eCX3FXB1h)KcajBK7?P@P=1kY-CGVb^E&#n6(Kl%D%BTS_kFZ6cYPR zqM^G#rU25{6-8O(CIIVHTqf?p$DV(@n(BxA&W<|_@T~M(+*3Md^F==gSN#^P3WUo# zrQ#~9kLMT4+Df@?PvQ)l!Ol)7OwH`M?(0LFaK8h8+uJEHv-G`RI+~dH+zN<@19&8~ zh+I3T3CM)aIz)BZ5~hQKUmT&A-XD&Z+QO%Pj@ouhr$>jndoFneTVF19taRF^A5>uu zIIpi&X>;cUj^LT5O!e*NlXSlK*1=1fSq^(H{^d6m{raYqKM+kT-4sw9rZxL$&_NEK zta9TQo3dh)HTC6r=zt>mP<7^RvgHI!)?93-t2vMu=?-oD5(N0IC2#W>eO1f}O~bg| zA$+Hu>7k%b$TRI-Z&XqQ&T$WHl?gHTAn3VG67yL! zJS@yiVHZa3kAkTBj7giwb{tVP21;L;DaNd!4{SO-E`ozBFEMZ6ce7%s$GX)@qCoq4% zZ4fbv6l#B%vQSe8b=%s&t8 z$>DP}f9@I=;&R5KBl!9vhz|xK!&*=>Y|@})0GNH*aMk3~H$odu#Rt3ynGZauGOCOq zV@|z+i0Vjc7;#L0`W7X8~dLO{2Xc!o4Iz`=UjBJzr?s+MAi-<83;^E88VX3V$&D?=& zutue6qg8C&TpnZ^x%smKhI$IN4z6uD({>d8%eo4?HLxCf2p&JW+-rr8y*mQ|?<_dey*XqiuGQy&!(_ z%bPi=g3+G`q@T!Pd|05oi_O;E)2NAY;2+32CKqbo4ViL{EICWe8Rk_!u<(E#V6jE# z&p6eDKyh$Vh>5P|CPTJai5UPNn{m$-Q(xj^QC}JWeA+Kt!lFfChToc9{nMQ$(ixNO zw5Tn_=#Kw^VU01N|MNRgyMI|&E!xyz3opj8cVzp7v}!jle{`4nfZ?H3V?b!*zx4IP zc-4HQxrxEiCV*5~f}e!SSHY*YQ1`^)!(`Lm!ZYd2;lCVw>NgI8)DxLt5;bHodtcgg zf2EUZdzxu@lhYg_JW?OJhP-d)f}$E#I<`RWrk zC5r!^fR{j~I5D^`gL$23^V`bftd5Xk7vV0yDQ1MvuGlq(IY4nrbIwrYPg?%>egy$? zUZk3XF)w|28mm)2fTAmmM)TnuAGKir@|*)M4ayp2GwZ+dWM6t^ZJ*@%DQ5qr=pMFP zYA0;W{ZmZRot%H2>PDRZYU}^1bP{D?=7@oZk8vK8lkHg0etQ0!$3p5;R;!ai+`=fo zn2A8C?@v4ZuDwhDn4(ihI0|?fF`VHZC6*neLcoXOe%$)|eT3_ue&&=HzFjL`*LEa` zvoCTI84&}~sX;0oI=Y(j;p+i^AZ;-qz}oR}=F5XU&MeK}Zx#RumQQ0tEKb|GEWj_= zW1vVjGC2Z=Vc$yJ;T?NEJ76>57~E5%Mt}3Y!QdH*#wGVp+I*njT0dVSksFhR1s2rs z5~jS10Ve7@RSzD8YdRAY#>>moL9aoe)rg9i!4zsYI-17VoykNz z%b@mvLU<@EQ7WUTtCr_#xhM22Tqn3|MXhzugwJ{zw!+T0u5snsxJdjgmbP%e2W^cs zHp$`42cp$0*HRNF;?xo-h)w!3;{1r?E3C_NE(iuoem;{xupl3I@{3YmsFlRY@6v;jmNgN478t~siAB4}WF&6~kr)Y+se&cBFX2Y4)nuhcW*E@9GW4oO?| jeE-ipI>K(mhY~}k{mR#MF7E5p?|rE%YAMvpJrDnXQd#G3 diff --git a/src-cordova/res/screen/ios/Default@2x~ipad~anyany.png b/src-cordova/res/screen/ios/Default@2x~ipad~anyany.png deleted file mode 100755 index d021cc95811797547468f5db0ea2035a4801b01a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13410 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 MVdHRwZB2{*Ct;NBUjP6A diff --git a/src-cordova/res/screen/ios/Default@2x~iphone~anyany.png b/src-cordova/res/screen/ios/Default@2x~iphone~anyany.png deleted file mode 100755 index f4835786b4842978475dcfad483f28b5b042a6f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4612 zcmc&&`(G1DwnrW1-a%w{oRLLPR0a^_H5&z6V&Ve?Mjk2(^7etYuL0}^Av{%B^JVHcUhyjvpvwy+8KW%?L-Boo?)v50}Rdvp( z&N$%hrvL5QZ*_EZ^gY~N4(aGDcU*jzE+Z*DE=#J&;v0Ck*KQr1I;P&j@#SQD33|wF zk4_CR87CVn4|pDS)oQh_c}2XTk&6%Oo(;7R=;-{lz{6$t;kXa-{+8@bqW+HKYh5n; zaSw(qE!=e`WB-OTjjXh{|5%k_tNRLcDp#5O0=#k}<=oC+HD=Xr{jL{5MVQwcy%DO< zmlsW^{fL7;{>72qf@9=-|K*2zGi9N1u3wFpr&p`+Ui}4z_SUwP?bQ(@9qA7t>ca?$ zJ@Xb}@U)T>pYRGx?~{sYL$RQDiaHc4ROzEN*#@y2=Vl5ZtyDO-?Kv$Fh`i96^;3SD zs6Nc#(l4e14YG6UqmZQ&P)!7tN0un(s?qvD>S6Gv8dU^m)Qm^gxYW2By}5%Y{?3X> zCNP7Tvn{C@Gx{vOpN5--e25G~>l3lt_nf~@B>vO+LHD}Emb9&qe4E(*^|onV6$Ou^i{?`?f1XM^IO72(CBX}`*E!g`PL6i!hm%lkF4331 z$y3t&Gl(qppyd+QP)pKE`2lcVws3WSLOv8b7>eW&YoVt|CX%%y(Im zg=lbt94z`8G@ee54I|;je6)u*;2uCI6FY`R=lFsq9_LK+SO7_&I)-j7B-oJhhGCcF zCQ*Z|k~E(H>=xZPYupkgQJ#VtPQ`w3T{#j;HG8w)EHa0&=MvP!xT4y4NdYMy9k zY-rN-Lwnp0)bdH#C}g;3i%;?+D7k9)u=!R)yXYCI37651MdGz zFx|FNX_i#Jo;oCZXpum!CQ+D) zrN94W;xKrbA0NL`D&`vTAlk1Ho26MH6>#6{b+32C$LCUz8v#6{#zVr`yI9lMc*SQ- z`0?(ab$AI<5Rtfw|9ac$jqq51aeB;V{HOSaS_(dYLwI&|*6@%#XfR_8TH|`pY>BA1LQPH+omzmEw$+kxaDk2_l&!~Ga$ZzeG?s| z;K5))EaEb*^|IKvD347ejaxLHV1f2-d$v$Y?oMuUa}LEZ))4_GBJY>-NTebrX;K;Z z^JDWPQ>PSl2KE5E(n@%NAyN#K@%*VDI03wbm=7XTa*l-4724fTW@IZ@mZ<4aeGS&M zul0{1E0~H0#g-Ri-AQ)jlnGkhi7un}Od(n#5qPeB!(J`1Lc$B#+hg~w5E7U!M9c@9 zy+y;9u-IlWo-Cd_J_SP*z3v71p49@VkV21Lu|nt%wUNE>XOsPz#S}JnV{mTkD;~r?{ioWzAopOcbx2*JtByv#;OWs6_09bI*Ay z4%QS6j*oHeU4~bs5(8wsh+Akm_Q%wj!>*l7>r0CTlUm5L$-99mxyHch^Q_ zI_dPvs14{E<*2f$XV@DY0-s#LUMt)kaK)lJ(-u>aC4WSHxE`|icFOEw;AVIr_~Snu zEq}Z*nr@C0u5|(9T-pHF=$12ySBX&;%{V;bM7OowKon}&yOu*vhOtHMt;ES~$+rC^ zJO<-DWM#WS7cxU(23@oLap}O%Ps@8{!7`MVKk#G&d`4koP-3d*KJx1kz{K+SSXP@f9qMLt&u@c05iIcMBypg5vg8bPFuxPzuo7i4U-Oer?^$A;tv^ zH%x2ut%r2eFkw3xG)ToS(${a*^xCDwL`>|Z@Q2E1qgoNrfY(#aP&9 zX_lZ^+bWJ_&if~k&4VzkH6iF)J?n%8X3o9g(eUGMq`?dTWT4p&E z45n1{!A=snG1U+s{H7pdTcrYPl6+s7&?f)1@Lj!NDh??teRKn%H(Z>3U<;pB2tIbC zMuWRpJ66=nuD|@sbj^`G3KT0FaOm6dm~SK~5;6OrFob=EL_hu}Jf0r0PBbbUI43Mx zPkqNBkFDN(Fbob(_96wSU9Pq{CcKc+Ae7FIUINo>C&+iu*Kq1oc&X+?jU%k^gZ%+i z!0r%>zN&rn^xPMYAGC$ga>bV+PGpK(J{txeiVnx0;mUKUYz^NF!tchk=d!oPI@%rd zNi%E0I7tet*k#*z>i7F<;mCR^CP7v$iV+3bLWV{3>P~fB(kJsKLE^=Cw~6=pXwH1y zjZhM7Cr8-7y=;Xr(=6eu=nff2`!ccaa^rf5iDXrOMJw7zBUQcQ{KoWI)I}0MO8@g*$MgIXv@ zy++;%28<3DQBvGJSC-s)1tr_V#}uBjV9R~ZiwEPgKAZpQexhLAp(+4%4zjYp)w_n_ z$(?ePM4!Njxt{EP!W?3X)@G>VSX@p%<)^kAM9`ZKFPU`dCOAsrsb4bx%1dT9-}O|6 z5qm%?)`~qa=xKS+TIWg^Ny8$Ufyv-nG=jyY={~`nS$&GmX z5aeFsE^WSWPylTvUE2yAWU99_!kILi$}M>F7yFY?2U4INc>Q*$i26819*4~GIo`NU zzscbOcH;d2tRvJQx2*|lRsU9RYRQy$r@I~@VWSNzgwlpt8sK?ZZ;<{C!>9d^BT~|rx%TpcJfE}u^gxK1?2BYQ2jus5HI%Ih_URk=d z@%!Q@^WRaA(o=`VzIzfqejp0e7>|vCb$VkKPhk0b^Yh(LcC9`*QYyH2P5qTReI`6^ zH;bD7B-d2bft0i;sG65)x%%#HaO88Y>Sz&#^y)?;V_L$bD+rOgE87M=l^W-y4putI zkARCa`4fYfxmf}mQ}5XE6iH6QIB9r|+@&dx;J&cH?@woL0bEfn3U|4e3L(3M6(eI0 z2SQC`!8c2c-Xe~CRdm!0i(PlHziPl>QS8b09OBp#fA(~6e#sf9Y|z|aGI93FuBQnF12jn<*!Vxl7^OQQW`!Q7&!wF#@}e=B6l5l5g>A+%zD6J8Mt z=jn5YHF2Rk9yUyALvAa>FV(WTLkri1-3qqSnI znQ<{EG6(goO9~9n1{VImrKZ70fCbZOE)VV5fOj=cxXf?D|2gvE(4%Ra!OIJydzr`! zzxnq+;!*w#o0f#?Ja6EdKVhFY_jp<`5xK0{IIR4bi78)o3BFJ&d01F{G0z&VF2)SI zAo8Aai3w*NK;8!Ojf#lye1>H?7ShQ$H0%e~6u=Kl$z*y`MrCNvSi^e4-K2+V_vw|a z?BWzskYOl~5;Y9nWFG-Gr^!6W0l$G&BZ?FIE~cLHXfHaz6*=P8;Uu18!&dMlM&#&U!`hv??71`GtvM1y3iDjEe8oH$%TgT^Idw-eB`212HWdZL3o?ySkq|=B+w4{;t z_$y?(%y9!!Vna2RWC<8sU>D%^2Pw}3RFJ$vWS=Z}IjKsCM9ep0q3az^@)*=p*^;bI z&UyOxos7ittt^TKUa3wC0r!#;o3^kpH{W?BvQL^wZh3_?iwDh*&nSzq;}A>-l9d7| z&(|B0-uyp*fVMcv5Q&i7WOLmhvtOG2b9F23Qr+?dXAMc;x$=p-C4OJe4KDBmeRdMh zveQkqdDrJ2mFE#P%OHGQViH5HWii&aio9x^rN0x^jrl-bw~C)Lh2QZQYGdI)BAlC| zMj;<7{B_cyK%Y!U59vZz1Eperf@72|Vm>iezqxu#cQ5{1%n8WSyO^b@4J1zG+Ykk&w%#^)Dnn+n5T7QT l59@sU&42mVh0f&{bH)yvm*R;5&F+g>JY2n9YW5tv`fp$#W?29L diff --git a/src-cordova/res/screen/ios/Default@2x~iphone~comany.png b/src-cordova/res/screen/ios/Default@2x~iphone~comany.png deleted file mode 100755 index 47e34e6b636d45d94966e62454252cd0429262ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2555 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 diff --git a/src-cordova/res/screen/ios/Default@2x~iphone~comcom.png b/src-cordova/res/screen/ios/Default@2x~iphone~comcom.png deleted file mode 100755 index 2d036cc9d3508e12c04abbe656c4e9609826d3fa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2852 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 diff --git a/src-cordova/res/screen/ios/Default@3x~iphone~comany.png b/src-cordova/res/screen/ios/Default@3x~iphone~comany.png deleted file mode 100755 index 6ec88a9c00547311f8e70535adda982c9f5d948f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4651 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 diff --git a/src-pwa/pwa-flag.d.ts b/src-pwa/pwa-flag.d.ts deleted file mode 100755 index 7e26a9d5..00000000 --- a/src-pwa/pwa-flag.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -// THIS FEATURE-FLAG FILE IS AUTOGENERATED, -// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING -import "quasar/dist/types/feature-flag"; - -declare module "quasar/dist/types/feature-flag" { - interface QuasarFeatureFlags { - pwa: true; - } -} diff --git a/src/App.vue b/src/App.vue old mode 100755 new mode 100644 index 5263f37d..2ef818c5 --- a/src/App.vue +++ b/src/App.vue @@ -1,57 +1,41 @@ diff --git a/src/assets/goalflags.svg b/src/assets/goalflags.svg deleted file mode 100755 index 0f84ef89..00000000 --- a/src/assets/goalflags.svg +++ /dev/null @@ -1,119 +0,0 @@ - - - - -Created by potrace 1.15, written by Peter Selinger 2001-2017 - - - - - diff --git a/src/assets/quasar-logo-vertical.svg b/src/assets/quasar-logo-vertical.svg new file mode 100644 index 00000000..82108310 --- /dev/null +++ b/src/assets/quasar-logo-vertical.svg @@ -0,0 +1,15 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/assets/sad.svg b/src/assets/sad.svg deleted file mode 100755 index 628136f5..00000000 --- a/src/assets/sad.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/assets/thank-you.svg b/src/assets/thank-you.svg deleted file mode 100755 index 3de5ae24..00000000 --- a/src/assets/thank-you.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/src/boot/.gitkeep b/src/boot/.gitkeep old mode 100755 new mode 100644 diff --git a/src/boot/axios.js b/src/boot/axios.js old mode 100755 new mode 100644 index f35017fa..9dbc9420 --- a/src/boot/axios.js +++ b/src/boot/axios.js @@ -1,4 +1,24 @@ -import Vue from 'vue' +import { boot } from 'quasar/wrappers' import axios from 'axios' -Vue.prototype.$axios = axios +// Be careful when using SSR for cross-request state pollution +// due to creating a Singleton instance here; +// If any client changes this (global) instance, it might be a +// good idea to move this instance creation inside of the +// "export default () => {}" function below (which runs individually +// for each client) +const api = axios.create({ baseURL: 'https://api.example.com' }) + +export default boot(({ app }) => { + // for use inside Vue files (Options API) through this.$axios and this.$api + + app.config.globalProperties.$axios = axios + // ^ ^ ^ this will allow you to use this.$axios (for Vue Options API form) + // so you won't necessarily have to import axios in each vue file + + app.config.globalProperties.$api = api + // ^ ^ ^ this will allow you to use this.$api (for Vue Options API form) + // so you can easily perform requests against your app's API +}) + +export { api } diff --git a/src/boot/i18n.js b/src/boot/i18n.js old mode 100755 new mode 100644 index fdb46c28..6661e9c5 --- a/src/boot/i18n.js +++ b/src/boot/i18n.js @@ -1,21 +1,17 @@ -import Vue from 'vue' -import VueI18n from 'vue-i18n' -import { mergeDeep } from 'modules/tools' -import studiesMessages from 'i18n/studies/studies' -import commonMessages from 'i18n/common/common' +import { boot } from 'quasar/wrappers' +import { createI18n } from 'vue-i18n' +import { mergeDeep } from '@shared/tools' +import studiesMessages from '@i18n/studies/studies' +import commonMessages from '@i18n/common/common' -Vue.use(VueI18n) - -const i18n = new VueI18n({ - locale: navigator.language.split('-')[0], // can use this instead: https://quasar.dev/options/app-internationalization#detecting-locale +export const i18n = createI18n({ + locale: 'en', fallbackLocale: 'en', - silentFallbackWarn: true, + globalInjection: true, messages: mergeDeep(commonMessages, studiesMessages) }) -export default ({ app }) => { +export default boot(({ app }) => { // Set i18n instance on app - app.i18n = i18n -} - -export { i18n } + app.use(i18n) +}) diff --git a/src/boot/vuelidate.js b/src/boot/vuelidate.js deleted file mode 100755 index 30d04fcb..00000000 --- a/src/boot/vuelidate.js +++ /dev/null @@ -1,5 +0,0 @@ -import Vuelidate from 'vuelidate' - -export default ({ Vue }) => { - Vue.use(Vuelidate) -} diff --git a/src/components/.gitkeep b/src/components/.gitkeep deleted file mode 100755 index e69de29b..00000000 diff --git a/src/components/BarChart.js b/src/components/BarChart.js deleted file mode 100755 index 6d32696d..00000000 --- a/src/components/BarChart.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Bar } from 'vue-chartjs' - -export default { - extends: Bar, - props: [ 'chartData', 'options' ], - mounted () { - this.renderChart(this.chartData, this.options) - } -} diff --git a/src/components/Consents.vue b/src/components/Consents.vue deleted file mode 100755 index 60119dc2..00000000 --- a/src/components/Consents.vue +++ /dev/null @@ -1,333 +0,0 @@ - - - diff --git a/src/components/EssentialLink.vue b/src/components/EssentialLink.vue new file mode 100644 index 00000000..585f98ce --- /dev/null +++ b/src/components/EssentialLink.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/Intro.vue b/src/components/Intro.vue deleted file mode 100755 index 9ed253f1..00000000 --- a/src/components/Intro.vue +++ /dev/null @@ -1,79 +0,0 @@ - - - diff --git a/src/components/LineChart.js b/src/components/LineChart.js deleted file mode 100755 index 15d67467..00000000 --- a/src/components/LineChart.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Line } from 'vue-chartjs' - -export default { - extends: Line, - props: [ 'chartData', 'options' ], - mounted () { - this.renderChart(this.chartData, this.options) - } -} diff --git a/src/components/PieChart.js b/src/components/PieChart.js deleted file mode 100755 index ecb7f4d9..00000000 --- a/src/components/PieChart.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Pie } from 'vue-chartjs' - -export default { - extends: Pie, - props: [ 'chartData', 'options' ], - mounted () { - this.renderChart(this.chartData, this.options) - } -} diff --git a/src/components/ProfileEditor.vue b/src/components/ProfileEditor.vue deleted file mode 100755 index 3622f5d2..00000000 --- a/src/components/ProfileEditor.vue +++ /dev/null @@ -1,510 +0,0 @@ - - - diff --git a/src/components/StudyInfo.vue b/src/components/StudyInfo.vue deleted file mode 100755 index 0085d70a..00000000 --- a/src/components/StudyInfo.vue +++ /dev/null @@ -1,111 +0,0 @@ - - - diff --git a/src/components/TaskListItem.vue b/src/components/TaskListItem.vue deleted file mode 100755 index 465aa1a2..00000000 --- a/src/components/TaskListItem.vue +++ /dev/null @@ -1,152 +0,0 @@ - - - diff --git a/src/components/WalkingMan.vue b/src/components/WalkingMan.vue deleted file mode 100755 index 428183a6..00000000 --- a/src/components/WalkingMan.vue +++ /dev/null @@ -1,52 +0,0 @@ - - - - - diff --git a/src/css/app.css b/src/css/app.css old mode 100755 new mode 100644 index baa2de76..0fc2c347 --- a/src/css/app.css +++ b/src/css/app.css @@ -1,21 +1 @@ /* app global css */ -.mobibtn { - padding: 5px; -} - -.mobitxt1 { - font-size: 1.1em; -} - -.mobitxt2 { - font-size: 1.3em; -} - -.summaryTable { - background: #f8f8f8; - padding: 4px; - width: 70%; - margin: 0px auto; - font-size: 1rem; - box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.1); -} diff --git a/src/css/quasar.variables.sass b/src/css/quasar.variables.sass deleted file mode 100755 index 46626228..00000000 --- a/src/css/quasar.variables.sass +++ /dev/null @@ -1,12 +0,0 @@ -// src/css/quasar.variables.sass - -$primary : #459399 -$secondary : #71bbcd -$accent : #459399 - -$dark : #191919 - -$positive : #65e060 -$negative : #e83c4b -$info : #f0f0f0 -$warning : #fcc450 \ No newline at end of file diff --git a/src/i18n/common/common.js b/src/i18n/common/common.js index d679b7ef..2b1e74ce 100755 --- a/src/i18n/common/common.js +++ b/src/i18n/common/common.js @@ -2,7 +2,7 @@ import en from './en/common' import sv from './sv/common' import es from './es/common' -let messages = { +const messages = { en, sv, es diff --git a/src/i18n/studies/en/studies.js b/src/i18n/studies/en/studies.js index 89dc6da4..361d42bb 100755 --- a/src/i18n/studies/en/studies.js +++ b/src/i18n/studies/en/studies.js @@ -12,7 +12,7 @@ import holdphoneTask from './tasks/holdphone' import vocalizationTask from './tasks/vocalization' import drawingTask from './tasks/drawing' -let studies = { +const studies = { studies: { newStudy: 'New study', insertInvitationCode: 'Insert the invitation code here', diff --git a/src/i18n/studies/en/tasks/holdphone.js b/src/i18n/studies/en/tasks/holdphone.js index 0dfd33fc..8a5b1b5c 100644 --- a/src/i18n/studies/en/tasks/holdphone.js +++ b/src/i18n/studies/en/tasks/holdphone.js @@ -13,22 +13,22 @@ export default { { title: 'Step 1', img: 'instructions/HoldYourPhone_task-02.svg', - description: `You will perform the test in 3 ways: 1) Holding your phone in your lap, when seated comfortably.` + description: 'You will perform the test in 3 ways: 1) Holding your phone in your lap, when seated comfortably.' }, { title: 'Step 2', img: 'instructions/HoldYourPhone_task-03.svg', - description: `2) Holding your phone with your arm outstretched at shoulder level.` + description: '2) Holding your phone with your arm outstretched at shoulder level.' }, { title: 'Step 3', img: 'instructions/HoldYourPhone_task-04.svg', - description: `3) Holding the phone while you move the arm from outstretched to touching your nose repeatedly.` + description: '3) Holding the phone while you move the arm from outstretched to touching your nose repeatedly.' }, { title: 'Important!', img: 'instructions/HoldYourPhone_task-05.svg', - description: `When the 1 minute has passed, your phone will vibrate. You will be asked to repeat the test for both the right and left arm. If you feel like you cannot hold the phone for the whole duration of the test, simply relax your arm.` + description: 'When the 1 minute has passed, your phone will vibrate. You will be asked to repeat the test for both the right and left arm. If you feel like you cannot hold the phone for the whole duration of the test, simply relax your arm.' } ], instructions: { diff --git a/src/i18n/studies/en/tasks/peakflow.js b/src/i18n/studies/en/tasks/peakflow.js index 1d64453b..a54bfe67 100644 --- a/src/i18n/studies/en/tasks/peakflow.js +++ b/src/i18n/studies/en/tasks/peakflow.js @@ -25,7 +25,7 @@ export default { { title: 'Setup', img: 'instructions/peakflow_3.svg', - description: `The peak flow meter requires light from above, like sunlight or an electric bulb. Make sure you are not covering the top of the device.` + description: 'The peak flow meter requires light from above, like sunlight or an electric bulb. Make sure you are not covering the top of the device.' }, { title: 'Instructions', @@ -46,7 +46,7 @@ export default { measurementCompleted3: 'Third and last measurement completed. Press "Next" to proceed.', measurementError: 'Something went wrong, please retry', measurementErrorMaxRetries: 'The app cannot measure your peak flow correctly. Make sure that the device is well plugged into the audio jack and under a light source. If the problem persists, use the Bluetooth adapter. Follow the instructions provided with the device for that.', - todayBest: `Today's Best Peak Flow:`, + todayBest: 'Today\'s Best Peak Flow:', results: 'Past Peak Flow Readings', pef: 'Peak Flow', weeks: 'Weeks' diff --git a/src/i18n/studies/en/tasks/tugt.js b/src/i18n/studies/en/tasks/tugt.js index 87af1297..a461668b 100644 --- a/src/i18n/studies/en/tasks/tugt.js +++ b/src/i18n/studies/en/tasks/tugt.js @@ -1,6 +1,6 @@ export default { title: 'Timed Up & Go test', - shortTitle: 'TU&G test', + shortTitle: 'TUG test', shortDescription: 'Stand up from a chair and walk 3m', OSpermissioniOS: 'This task requires the app to access the motion sensors in your phone if available. This is needed to compute how long it took to complete the test. The motion data will be shared with the research team of this study for analysis. Tap on Next if you want to proceed with the authorization process.', OSpermissionAndroid: 'This task requires the app to access the motion sensors in your phone if available. This is needed to compute how long it took to complete the test. The motion data will be shared with the research team of this study for analysis. Tap on Next if you want to proceed with the authorization process.', diff --git a/src/i18n/studies/es/studies.js b/src/i18n/studies/es/studies.js index 34c033b7..9a165c89 100755 --- a/src/i18n/studies/es/studies.js +++ b/src/i18n/studies/es/studies.js @@ -12,7 +12,7 @@ import holdphoneTask from './tasks/holdphone' import vocalizationTask from './tasks/vocalization' import drawingTask from './tasks/drawing' -let studies = { +const studies = { studies: { newStudy: 'Nuevo estudio', insertInvitationCode: 'Copie el código de invitación aquí', diff --git a/src/i18n/studies/es/tasks/holdphone.js b/src/i18n/studies/es/tasks/holdphone.js index 3fa769fa..387ff618 100644 --- a/src/i18n/studies/es/tasks/holdphone.js +++ b/src/i18n/studies/es/tasks/holdphone.js @@ -13,22 +13,22 @@ export default { { title: 'Paso 1', img: 'instructions/HoldYourPhone_task-02.svg', - description: `Realizarás la prueba de 3 maneras: 1) Sosteniendo tu teléfono en su regazo, estando sentado cómodamente.` + description: 'Realizarás la prueba de 3 maneras: 1) Sosteniendo tu teléfono en su regazo, estando sentado cómodamente.' }, { title: 'Paso 2', img: 'instructions/HoldYourPhone_task-03.svg', - description: `2) Sosteniendo tu teléfono con el brazo extendido al nivel del hombro.` + description: '2) Sosteniendo tu teléfono con el brazo extendido al nivel del hombro.' }, { title: 'Paso 3', img: 'instructions/HoldYourPhone_task-04.svg', - description: `3) Sosteniendo el teléfono mientras mueves el brazo desde extendido hasta tocarte la nariz repetidamente.` + description: '3) Sosteniendo el teléfono mientras mueves el brazo desde extendido hasta tocarte la nariz repetidamente.' }, { title: 'Importante!', img: 'instructions/HoldYourPhone_task-05.svg', - description: `Cuando haya pasado el minuto 1, tu teléfono vibrará. Se te pedirá que repitas la prueba tanto para el brazo derecho como para el izquierdo. Si sientes que no puedes sostener el teléfono durante toda la prueba, simplemente relaja el brazo.` + description: 'Cuando haya pasado el minuto 1, tu teléfono vibrará. Se te pedirá que repitas la prueba tanto para el brazo derecho como para el izquierdo. Si sientes que no puedes sostener el teléfono durante toda la prueba, simplemente relaja el brazo.' } ], instructions: { diff --git a/src/i18n/studies/es/tasks/peakflow.js b/src/i18n/studies/es/tasks/peakflow.js index bf81755a..78273933 100644 --- a/src/i18n/studies/es/tasks/peakflow.js +++ b/src/i18n/studies/es/tasks/peakflow.js @@ -24,7 +24,7 @@ export default { { title: 'Preparación', img: 'instructions/peakflow_3.svg', - description: `El medidor de flujo máximo requiere luz de arriba, como la luz del sol o de una bombilla eléctrica. Asegúrate de no cubrir la parte superior del dispositivo` + description: 'El medidor de flujo máximo requiere luz de arriba, como la luz del sol o de una bombilla eléctrica. Asegúrate de no cubrir la parte superior del dispositivo' }, { title: 'Instrucciones', @@ -45,7 +45,7 @@ export default { measurementCompleted3: 'Tercera y última medición completada. Selecciona "Siguiente" para continuar', measurementError: 'Algo salió mal, vuelve a intentarlo', measurementErrorMaxRetries: 'La aplicación no puede medir tu flujo máximo correctamente. Asegúrate de que el dispositivo esté bien conectado al conector de audio y debajo de una fuente de luz. Si el problema persiste, utiliza el adaptador Bluetooth. Sigue las instrucciones proporcionadas con el dispositivo para eso.', - todayBest: `El mejor flujo máximo de hoy:`, + todayBest: 'El mejor flujo máximo de hoy:', results: 'Lecturas de flujo máximo pasadas', pef: 'Flujo máximo', weeks: 'Semanas' diff --git a/src/i18n/studies/sv/studies.js b/src/i18n/studies/sv/studies.js index ea3689b3..a3866dd8 100755 --- a/src/i18n/studies/sv/studies.js +++ b/src/i18n/studies/sv/studies.js @@ -12,7 +12,7 @@ import holdphoneTask from './tasks/holdphone' import vocalizationTask from './tasks/vocalization' import drawingTask from './tasks/drawing' -let studies = { +const studies = { studies: { newStudy: 'Ny studie', insertInvitationCode: 'Ange inbjudningskoden här', diff --git a/src/i18n/studies/sv/tasks/holdphone.js b/src/i18n/studies/sv/tasks/holdphone.js index 9d47cc34..516584ac 100644 --- a/src/i18n/studies/sv/tasks/holdphone.js +++ b/src/i18n/studies/sv/tasks/holdphone.js @@ -13,22 +13,22 @@ export default { { title: 'Step 1', img: 'instructions/HoldYourPhone_task-02.svg', - description: `Du kommer att utföra testet på 3 sätt: 1) Håll telefonen i knät när du sitter bekvämt.` + description: 'Du kommer att utföra testet på 3 sätt: 1) Håll telefonen i knät när du sitter bekvämt.' }, { title: 'Step 2', img: 'instructions/HoldYourPhone_task-03.svg', - description: `2) Håll telefonen med armen utsträckt i axelhöjd.` + description: '2) Håll telefonen med armen utsträckt i axelhöjd.' }, { title: 'Step 3', img: 'instructions/HoldYourPhone_task-04.svg', - description: `3) Håll i telefonen medan du flyttar armen från utsträckt till att röra vid näsan upprepade gånger.` + description: '3) Håll i telefonen medan du flyttar armen från utsträckt till att röra vid näsan upprepade gånger.' }, { title: 'Important!', img: 'instructions/HoldYourPhone_task-05.svg', - description: `När 1 minut har gått vibrerar din telefon. Du kommer att bli ombedd att upprepa testet för både höger och vänster arm. Om du känner att du inte kan hålla telefonen under hela testet, slappna helt enkelt av i armen.` + description: 'När 1 minut har gått vibrerar din telefon. Du kommer att bli ombedd att upprepa testet för både höger och vänster arm. Om du känner att du inte kan hålla telefonen under hela testet, slappna helt enkelt av i armen.' } ], instructions: { diff --git a/src/i18n/studies/sv/tasks/peakflow.js b/src/i18n/studies/sv/tasks/peakflow.js index dbacd5f0..a61ea5f9 100644 --- a/src/i18n/studies/sv/tasks/peakflow.js +++ b/src/i18n/studies/sv/tasks/peakflow.js @@ -2,11 +2,11 @@ export default { title: 'Smart toppflödesmätning', shortTitle: 'Toppflöde', shortDescription: 'Mät toppflöde på din utandning med den smarta PEF-mätaren', - OSpermissioniOS: `Denna uppgift kräver att appen har behörighet att använda mikrofonen på din telefon. + OSpermissioniOS: `Denna uppgift kräver att appen har behörighet att använda mikrofonen på din telefon. Detta behövs för att kunna mäta toppflödet med den smarta PEF-mätaren. För analys delas insamlad data med forskningsgruppen för denna studie. Klicka på Nästa om du vill fortsätta med behörighetsprocessen.`, - OSpermissionAndroid: `Denna uppgift kräver att appen har behörighet att använda mikrofonen på din telefon. + OSpermissionAndroid: `Denna uppgift kräver att appen har behörighet att använda mikrofonen på din telefon. Detta behövs för att kunna mäta toppflödet med den smarta PEF-mätaren. För analys delas insamlad data med forskningsgruppen för denna studie. Klicka på Nästa om du vill fortsätta med behörighetsprocessen.`, @@ -24,7 +24,7 @@ export default { { title: 'Förberedelser', img: 'instructions/peakflow_3.svg', - description: `Toppflödesmätaren behöver ljus uppifrån, såsom solljus eller från en lampa. Försäkra dig om att du inte täcker för ovansidan av toppflödesmätaren.` + description: 'Toppflödesmätaren behöver ljus uppifrån, såsom solljus eller från en lampa. Försäkra dig om att du inte täcker för ovansidan av toppflödesmätaren.' }, { title: 'Instruktioner', @@ -45,7 +45,7 @@ export default { measurementCompleted3: 'Tredje och sista mätningen är klar. Tryck på Nästa för att fortsätta.', measurementError: 'Något gick fel, försök igen.', measurementErrorMaxRetries: 'Appen kan inte mäta ditt toppflöde korrekt. Se till att enheten är ordentligt ansluten till ljuduttaget och under en ljuskälla. Om problemet kvarstår, använd Bluetooth-adaptern. Följ instruktionerna som medföljer enheten för detta.', - todayBest: `Dagens bästa toppflödesmätning:`, + todayBest: 'Dagens bästa toppflödesmätning:', results: 'Tidigare toppflödesmätningar', pef: 'Toppflöde', weeks: 'Veckor' diff --git a/src/i18n/studies/sv/tasks/tapping.js b/src/i18n/studies/sv/tasks/tapping.js index a2ea6a6f..f754a44b 100644 --- a/src/i18n/studies/sv/tasks/tapping.js +++ b/src/i18n/studies/sv/tasks/tapping.js @@ -11,7 +11,7 @@ export default { { title: 'Förberedelser', img: 'instructions/fingertapping2.svg', - description: `Placera din telefon på ett plant underlag såsom ett bord före testet påbörjas. Så snabbt du kan, växla mellan att trycka på knapparna 1 och 2 med ditt pekfinger och långfinger på din dominanta hand (höger om du är högerhänt, vänster om du är vänsterhänt). Försök hålla samma takt i 20 sekunder.` + description: 'Placera din telefon på ett plant underlag såsom ett bord före testet påbörjas. Så snabbt du kan, växla mellan att trycka på knapparna 1 och 2 med ditt pekfinger och långfinger på din dominanta hand (höger om du är högerhänt, vänster om du är vänsterhänt). Försök hålla samma takt i 20 sekunder.' } ], instructions: 'Tryck på start för att påbörja övningen. När du startat, växla så snabbt du kan mellan att trycka med pekfinger och långfinger på knapparna som visas på skärmen.', diff --git a/src/i18n/studies/sv/tasks/tugt.js b/src/i18n/studies/sv/tasks/tugt.js index dd3568bf..852c1f0e 100644 --- a/src/i18n/studies/sv/tasks/tugt.js +++ b/src/i18n/studies/sv/tasks/tugt.js @@ -1,6 +1,6 @@ export default { - title: 'Timed Up and Go testet', - shortTitle: 'TU&G testet', + title: 'Stå-upp-och-gå-testet (TUG)', + shortTitle: 'TUG test', shortDescription: 'Stiga upp från en stol och gå 3m', OSpermissioniOS: 'Den här uppgiften kräver att appen kommer åt rörelsesensorerna i din telefon om de är tillgängliga. Detta behövs för att beräkna hur lång tid det tog att slutföra testet. Rörelsedata kommer att delas med forskargruppen i denna studie för analys. Klicka på Nästa om du vill fortsätta med auktoriseringsprocessen.', OSpermissionAndroid: 'Den här uppgiften kräver att appen kommer åt rörelsesensorerna i din telefon om de är tillgängliga. Detta behövs för att beräkna hur lång tid det tog att slutföra testet. Rörelsedata kommer att delas med forskargruppen i denna studie för analys. Klicka på Nästa om du vill fortsätta med auktoriseringsprocessen.', diff --git a/src/index.template.html b/src/index.template.html old mode 100755 new mode 100644 index b2d74e14..8157cbff --- a/src/index.template.html +++ b/src/index.template.html @@ -1,27 +1,22 @@ + + <%= productName %> - - - <%= htmlWebpackPlugin.options.productName %> - + + + + + - - - - - - - - - - - - - - -

- - - \ No newline at end of file + + + + + + + + +
+ + diff --git a/src/layouts/ConsentLayout.vue b/src/layouts/ConsentLayout.vue deleted file mode 100755 index d668cf15..00000000 --- a/src/layouts/ConsentLayout.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/src/layouts/HomeLayout.vue b/src/layouts/HomeLayout.vue deleted file mode 100755 index d67d375b..00000000 --- a/src/layouts/HomeLayout.vue +++ /dev/null @@ -1,124 +0,0 @@ - - - - - diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue new file mode 100644 index 00000000..4570e1ca --- /dev/null +++ b/src/layouts/MainLayout.vue @@ -0,0 +1,117 @@ + + + diff --git a/src/layouts/RegLayout.vue b/src/layouts/RegLayout.vue deleted file mode 100755 index b91d4aab..00000000 --- a/src/layouts/RegLayout.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/src/layouts/TaskLayout.vue b/src/layouts/TaskLayout.vue deleted file mode 100755 index cd707fa7..00000000 --- a/src/layouts/TaskLayout.vue +++ /dev/null @@ -1,95 +0,0 @@ - - - diff --git a/src/modules/API/mockdata/participant.js b/src/modules/API/mockdata/participant.js deleted file mode 100755 index 69aa75d8..00000000 --- a/src/modules/API/mockdata/participant.js +++ /dev/null @@ -1,85 +0,0 @@ -export default { - _key: '098765', - userKey: '1231232', - createdTS: '2019-12-10T09:30:32.492Z', - name: 'Jameson', - surname: 'Lee', - country: 'gb', - language: 'en', - sex: 'male', - dateOfBirth: '1970-11-10', - height: 172, - weight: 67, - diseases: [ - { - term: 'COPD', - conceptId: '13645005', - vocabulary: 'SNOMED' - } - ], - medications: [], - studiesSuggestions: true, - studies: [ - { - studyKey: '1978', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString(), - reminders: true, - criteriaAnswers: ['yes'], - taskItemsConsent: [ - { taskId: 1, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString() }, - { taskId: 2, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 3, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 4, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 5, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 6, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 7, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 8, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 9, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 10, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 11, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 12, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 13, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, - { taskId: 14, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() } - ] - } - - // { - // studyKey: '4590699', - // currentStatus: 'accepted', - // acceptedTS: '2021-07-10T10:35:23.279Z', - // reminders: true, - // taskItemsConsent: [ - // { - // taskId: 1, - // consented: true, - // lastExecuted: '2021-07-22T12:49:55.859Z' - // }, - // { - // taskId: 2, - // consented: true - // }, - // { - // taskId: 3, - // consented: true - // } - // ], - // extraItemsConsent: [] - // } - - // { - // studyKey: '5349389', - // currentStatus: 'accepted', - // acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60).toISOString(), - // reminders: true, - // criteriaAnswers: ['yes'], - // taskItemsConsent: [ - // { taskId: 1, consented: true }, - // { taskId: 2, consented: true }, - // { taskId: 3, consented: true }, - // { taskId: 4, consented: true }, - // { taskId: 5, consented: true } - // ] - // } - ] -} diff --git a/src/modules/API/mockdata/surgeryai/surgeryai.json b/src/modules/API/mockdata/surgeryai/surgeryai.json deleted file mode 100644 index 9008bd1f..00000000 --- a/src/modules/API/mockdata/surgeryai/surgeryai.json +++ /dev/null @@ -1,172 +0,0 @@ -{ - "_key": "33777013", - "teamKey": "32182691", - "invitationCode": "222333", - "invitational": true, - "numberOfParticipants": 100, - "createdTS": "2023-07-07T22:00:39.708Z", - "generalities": { - "languages": [ - "en", - "es" - ], - "title": { - "en": "SurgeryAI", - "es": "SurgeryAI" - }, - "shortDescription": { - "en": "Incorporating digital tools and AI into the surgery value chain", - "es": "Incorporación de herramientas digitales e IA en la cadena de valor de la cirugía" - }, - "longDescription": { - "en": "", - "es": "" - }, - "startDate": "2023-07-01", - "endDate": "2025-12-31", - "principalInvestigators": [ - { - "name": "Paula de Toledo Heras", - "contact": "email: paula.detoledo@uc3m.es", - "institution": "Universidad Carlos Tercero de Madrid" - } - ], - "institutions": [ - { - "name": "Universidad Carlos Tercero de Madrid", - "contact": "Escuela Politécnica Superior, Avda. de la Universidad, 30. 28911 Leganés (Madrid) España", - "dataAccess": "full", - "reasonForDataAccess": { - "en": "Data needed to complete the objectives of the research.", - "es": "Los datos se usarán para llevar a cabo los objetivos de la investigación." - } - }, - { - "name": "Malmö Universitet", - "contact": "Institutionen för datavetenskap och medieteknik, Nordenskiöldsgatan 1, Malmö", - "dataAccess": "anonymised", - "reasonForDataAccess": { - "en": "Malmö University is responsible for the Mobistudy app and will analyse the data about physical activity.", - "es": "Malmö Universitet es responsable de la app Mobistudy y llevará a cabo el análisis de los datos de actividad física." - } - } - ] - }, - "inclusionCriteria": { - "minAge": 30, - "maxAge": 100, - "sex": [ - "male", - "female", - "other" - ], - "diseases": [], - "medications": [], - "minBMI": 5, - "maxBMI": 210 - }, - "tasks": [ - { - "id": 1, - "type": "form", - "scheduling": { - "startEvent": "consent", - "startDelaySecs": 0, - "intervalType": "d", - "untilSecs": 1296000, - "interval": 1, - "occurrences": 14 - }, - "formKey": "33776579", - "formName": { - "en": "Wound followup", - "es": "Seguimiento de la herida" - }, - "useCustomTitle": false - }, - { - "id": 2, - "type": "smwt", - "scheduling": { - "startEvent": "consent", - "startDelaySecs": 0, - "intervalType": "d", - "untilSecs": 1296000, - "interval": 12, - "occurrences": 2 - }, - "useCustomTitle": false - }, - { - "id": 3, - "type": "miband3", - "scheduling": { - "startEvent": "consent", - "startDelaySecs": 0, - "intervalType": "d", - "untilSecs": 1296000, - "interval": 2 - }, - "useCustomTitle": false - }, - { - "id": 4, - "type": "form", - "scheduling": { - "startEvent": "consent", - "startDelaySecs": 0, - "intervalType": "d", - "untilSecs": 1296000, - "interval": 1, - "occurrences": 14 - }, - "formKey": "XXX", - "formName": { - "en": "Usability questionnaire", - "es": "Formulario de usabilidad" - }, - "useCustomTitle": false - } - ], - "consent": { - "invitation": { - "en": "", - "es": "" - }, - "privacyPolicy": { - "en": "", - "es": "" - }, - "taskItems": [ - { - "description": { - "en": "I accept answering the wound followup questionnaire every day", - "es": "Acepto contestar el formulario de seguimiento de la herida una vez al día" - }, - "taskId": 1 - }, - { - "description": { - "en": "I agree to send the data collected by the electronic bracelet every 2 days.", - "es": "Acepto enviar mis datos recopilados por la pulsera electrónica una vez cada dos días" - }, - "taskId": 2 - }, - { - "description": { - "en": "I agree to perform a 6-minute walk test at the beginning and the end of the study", - "es": "Acepto realizar la prueba de caminata de seis minutos, al principio y al final del estudio" - }, - "taskId": 3 - }, - { - "description": { - "en": "I agree to answer the usability questionnaire a week after beginning the study", - "es": "Acepto contestar el cuestionario sobre el uso de la app, una semana después de haber comenzado el estudio" - }, - "taskId": 4 - } - ], - "extraItems": [] - } -} \ No newline at end of file diff --git a/src/modules/audio.js b/src/modules/audio.js deleted file mode 100755 index 943e3279..00000000 --- a/src/modules/audio.js +++ /dev/null @@ -1,88 +0,0 @@ -'use strict' - -// This module contains useful methods for handling audio - -export default { - metronome: { - metronomeID: null, - audioContext: null, - nextNoteTime: 0.0, // When the next note should be played - currentQuarterNote: 0, - volume: 0.2, // 1 = 100% volume - scheduleBeeping (beatNumber, time) { - // Create an oscillator - const osc = this.audioContext.createOscillator() - const envelope = this.audioContext.createGain() - - // Four-step cadence - osc.frequency.value = (beatNumber % 4 === 0) ? 1000 : 800 - envelope.gain.value = this.volume - envelope.gain.exponentialRampToValueAtTime(this.volume, time + 0.001) - envelope.gain.exponentialRampToValueAtTime(0.001, time + 0.02) - - osc.connect(envelope) - envelope.connect(this.audioContext.destination) - - osc.start(time) - osc.stop(time + 0.03) - }, - nextBeep (cadence) { - let bpm = (cadence === 625 ? 96 : 88) // Current tempo, cadence gets converted to bpm - let secondsPerBeat = 60.0 / bpm - this.nextNoteTime += secondsPerBeat // Add beat length to last beat time - - this.currentQuarterNote++ // Advance the beat number, wrap to zero - if (this.currentQuarterNote === 4) { - this.currentQuarterNote = 0 - } - }, - start (cadence, indicator) { - // For legacy browsers - const AudioContext = window.AudioContext || window.webkitAudioContext - this.audioContext = new AudioContext() - - this.currentQuarterNote = 0 - this.nextNoteTime = this.audioContext.currentTime + 0.05 - - this.metronomeID = setInterval(() => { - while (this.nextNoteTime < this.audioContext.currentTime + 0.1) { - this.scheduleBeeping(this.currentQuarterNote, this.nextNoteTime) - this.nextBeep(cadence) - indicator.click() - } - }, 25) - }, - stop () { - clearInterval(this.metronomeID) - console.log('Stopping metronome') - } - }, - media: { - // Pass in reference, this.$refs. - playSound (soundfile) { - if (soundfile !== undefined) { - var audio = new Audio(soundfile.currentSrc) - audio.play() - } - } - }, - textToSpeech: { - speech: null, - language: null, // If language is unset (userinfo.user.language), defaults to device language - volume: 1, - playVoice (text) { - if ('speechSynthesis' in window) { - this.speech = new SpeechSynthesisUtterance() - this.speech.volume = this.volume - this.speech.text = text - this.speech.lang = this.language - console.log(this.speech) - if (this.speech !== null) { - window.speechSynthesis.speak(this.speech) - } - } else { - console.log('Text-to-speech is not supported on this device') - } - } - } -} diff --git a/src/modules/bledevice/BLEDevice.js b/src/modules/bledevice/BLEDevice.js deleted file mode 100755 index bfbcd194..00000000 --- a/src/modules/bledevice/BLEDevice.js +++ /dev/null @@ -1,153 +0,0 @@ -export default class BLEDevice { - device = undefined - deviceId = undefined - disconnectCallback = undefined - - constructor (device) { - this.device = device - this.deviceId = this.device.id - } - - /** - * Requests permission to access bluetooth - * the promise is returned either immediately if permissions are given - * and there are BLE devices around (visible in a scan) - * or because of a timeout or no devices around - * in other words, it's impossible to say if permission was really given or not - */ - static async requestPermission () { - return new Promise((resolve, reject) => { - // we need to get permissions from iOS or Android - // there is no explicit call for that, so we start a scan and wait for the user to confirm - // the scan does not produce any callback until it finds a device - // given that it is possible that no device is found or that permission is denied, - // we use a timeout to stop searching after a short time - let timer = setTimeout(() => { - // after the timeout we resolve because it's impossible to say if the scan failed because - // of no device found or because of denied permission - window.ble.stopScan(resolve, reject) - }, 5000) - - window.ble.startScan([], function () { - // we got a result, scanning can stop - window.ble.stopScan() - // no need of the timeout anuy longer - clearTimeout(timer) - resolve() - }, reject) - }) - } - - static async scan (deviceName, searchTime) { - return new Promise((resolve, reject) => { - const devices = [] - window.ble.startScan([], (deviceFound) => { - if (deviceFound.name === deviceName && !deviceExists(devices, deviceFound)) devices.push(deviceFound) - }, (failureResponse) => { - console.log('Start scan failed.', failureResponse) - reject() - }) - setTimeout(() => { - window.ble.stopScan((success) => { - resolve(devices) - }, (failureResponse) => { - console.log('Stop scan failed.', failureResponse) - resolve() - }) - }, searchTime) - }) - function deviceExists (devices, device) { - return devices.find((d) => d.id === device.id) - } - } - - static async scanForId (deviceId, searchTime) { - return new Promise((resolve, reject) => { - const timeoutId = setTimeout(() => { - window.ble.stopScan() - reject() - }, searchTime) - - window.ble.startScan([], (deviceFound) => { - if (deviceFound.id === deviceId) { - window.ble.stopScan() - clearTimeout(timeoutId) - resolve(deviceFound) - } - }, (failureResponse) => { - console.log('Start scan failed.', failureResponse) - clearTimeout(timeoutId) - reject() - }) - }) - } - - async connect () { - return new Promise((resolve, reject) => { - this.disconnectCallback = reject - window.ble.connect( - this.deviceId, - success => { - resolve(success) - }, - failureResponse => { - console.error('Connect failed.', failureResponse) - if (this.disconnectCallback) this.disconnectCallback(failureResponse) - } - ) - }) - } - async disconnect () { - if (this.deviceId === null || this.deviceId === undefined) { - return Promise.resolve() - } else { - return new Promise((resolve, reject) => { - window.ble.disconnect( - this.deviceId, - success => { - console.log('Disconnect succeded.') - resolve(success) - }, - failureResponse => { - console.log('Disconnect failed.', failureResponse) - reject(failureResponse) - } - ) - }) - } - } - async isConnected () { - if (!this.deviceId) return Promise.resolve(false) - return new Promise((resolve, reject) => { - window.ble.isConnected( - this.deviceId, - success => { - console.log('IsConnected succeeded.') - resolve(true) - }, - failure => { - console.log('IsConnected failed.', failure) - resolve(false) - } - ) - }) - } - async writeWithoutResponse (data) { - return new Promise((resolve, reject) => { - window.ble.writeWithoutResponse( - this.deviceId, - this.SERVICE_UUID, - this.WRITE_CHAR_UUID, - data.buffer, - successResponse => { - console.log('Write without response succeeded.') - resolve(successResponse) - }, - failureResponse => { - console.log('Write without response failed.') - reject(failureResponse) - } - ) - }) - } -} diff --git a/src/modules/bledevice/BLEDevice.mock.js b/src/modules/bledevice/BLEDevice.mock.js deleted file mode 100755 index 2cee94a7..00000000 --- a/src/modules/bledevice/BLEDevice.mock.js +++ /dev/null @@ -1,82 +0,0 @@ -import { Dialog } from 'quasar' - -const SEARCH_FAIL = false -const CONNECT_FAIL = false - -export default class BLEDevice { - device = undefined - deviceId = undefined - disconnectCallback = undefined - - constructor (device) { - this.device = device - this.deviceId = this.device.id - } - - static async requestPermission () { - return new Promise((resolve, reject) => { - Dialog.create({ - title: 'Confirm', - message: 'Do you agree to give this app access to Bluetooth?', - cancel: true, - persistent: true - }).onOk(() => { - resolve() - }).onCancel(() => { - reject() - }).onDismiss(() => { - reject() - }) - }) - } - - static async scan (deviceName, searchTime) { - if (SEARCH_FAIL) { - return Promise.reject() - } - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve([ - { - id: '00:11:22:33:FF:EE', - rssi: 200 - }, - { - id: '01:22:32:43:1D:09', - rssi: 100 - } - ]) - }, searchTime) - }) - } - - static async scanForId (deviceId, searchTime) { - if (SEARCH_FAIL) { - return Promise.reject() - } - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve({ - id: deviceId, - rssi: 200 - }) - }, 2000) - }) - } - - async connect () { - if (!this.device) throw new Error('Interface has no device object initialized.') - if (CONNECT_FAIL) return Promise.reject() - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(true) - }, 2000) - }) - } - disconnect () { - return Promise.resolve(true) - } - async isConnected () { - return Promise.resolve(true) - } -} diff --git a/src/modules/files/files.js b/src/modules/files/files.js deleted file mode 100755 index 35dc8343..00000000 --- a/src/modules/files/files.js +++ /dev/null @@ -1,129 +0,0 @@ -import { Platform } from 'quasar' -// this module abstracts the file system using cordova-plugin-file -// files are stored on cordova.file.documentsDirectory on iOS and -// cordova.file.externalDataDirectory on Android -// to retrieve the file from iTunes see this: https://stackoverflow.com/questions/31554886/how-do-you-export-a-file-out-of-ios-when-using-cordova-file-plugin -// this plugin can be used to automatically set the permissions: https://github.com/christianjunk/cordova-plugin-itunesfilesharing#readme - -/** -* Utility function that translates the error code to a string -*/ -let errorCodeToString = (code) => { - switch (code) { - case 1: - return 'NOT_FOUND_ERR' - case 2: - return 'SECURITY_ERR' - case 3: - return 'ABORT_ERR' - case 4: - return 'NOT_READABLE_ERR' - case 5: - return 'ENCODING_ERR' - case 6: - return 'NO_MODIFICATION_ALLOWED_ERR' - case 7: - return 'INVALID_STATE_ERR' - case 8: - return 'SYNTAX_ERR' - case 9: - return 'INVALID_MODIFICATION_ERR' - case 10: - return 'QUOTA_EXCEEDED_ERR' - case 11: - return 'TYPE_MISMATCH_ERR' - case 12: - return 'PATH_EXISTS_ERR' - default: - return 'Unknown Error ' + code - } -} - -export default { - - /** - * Opens a file. - * @param {string} filename - filename to be opened - * @param {string} folder - can be either 'cache' (default) for temporary storage or 'shared' for exposed folder - * @param {string} forcecreate - if true the file is created if does not exist - * @returns {Promise} returns a promise, the resolve callback passes an instance of the file - */ - async openFile (filename, folder, forcecreate) { - let localDir = cordova.file.cacheDirectory - if (folder && folder === 'shared') { - if (Platform.is.ios) localDir = window.cordova.file.documentsDirectory - else localDir = window.cordova.file.externalDataDirectory - } - - return new Promise((resolve, reject) => { - window.resolveLocalFileSystemURL(localDir, function (dir) { - dir.getFile(filename, { create: forcecreate }, function (file) { - resolve(file) - }, function (e) { - reject('Cannot get file ' + filename + ', ' + errorCodeToString(e.code)) - }) - }) - }) - }, - - /** - * Reads a file and delivers the content - * @param {string} filename - the file to be opened - * @param {string} folder - folder, either 'cache' (default) or 'shared' - * @param {string} type - how to read the data, 'blob' for Uint8Array, 'text' for text - */ - async load (filename, folder, type) { - let file = await this.openFile(filename, folder, false) - - return new Promise((resolve, reject) => { - file.file(function (file) { - var reader = new FileReader() - reader.onloadend = function () { - resolve(this.result) - } - if (type === 'blob') { - reader.readAsArrayBuffer(file) - } else { - reader.readAsText(file) - } - }, function (e) { - reject('Cannot read file ' + filename + ': ' + errorCodeToString(e.code)) - }) - }) - }, - - /** - * Saves an object as a JSON file - * @param {string} filename - filename is the name of the file - * @param {object} object - is the object to be saved - */ - async save (filename, folder, object) { - let file = await this.openFile(filename, folder, true) - return new Promise((resolve, reject) => { - file.createWriter(function (fileWriter) { - var blob = JSON.stringify(object) - - fileWriter.onwriteend = function (e) { - resolve() - } - fileWriter.onerror = function (e) { - reject('Cannot write to file: ' + errorCodeToString(e.code)) - } - fileWriter.write(blob) - }) - }) - }, - - /** - * Deletes a file - * @param {string} filename - * @param {string} folder - * @returns a promise - */ - async delete (filename, folder) { - let file = this.openFile(filename, folder, false) - return new Promise((resolve, reject) => { - file.remove(resolve, reject) - }) - } -} diff --git a/src/modules/files/files.mock.js b/src/modules/files/files.mock.js deleted file mode 100755 index 0f649fa8..00000000 --- a/src/modules/files/files.mock.js +++ /dev/null @@ -1,39 +0,0 @@ -export default { - - /** - * Reads a file and delivers the content - * @param {string} filename - the file to be opened - * @param {string} folder - folder, either 'cache' (default) or 'shared' - * @param {string} type - how to read the data, 'blob' for Uint8Array, 'text' for text - */ - async load (filename, folder, type) { - let file = window.localStorage.getItem(folder + '_' + filename) - if (type === 'text') return Promise.resolve(file) - else if (type === 'blob') { - let enc = new TextEncoder() - let blob = enc.encode(file) - return Promise.resolve(blob) - } - }, - - /** - * Saves an object as a JSON file - * @param {string} filename - filename is the name of the file - * @param {object} object - is the object to be saved - */ - async save (filename, folder, object) { - window.localStorage.setItem(folder + '_' + filename, JSON.stringify(object)) - return Promise.resolve(true) - }, - - /** - * Deletes a file - * @param {string} filename - * @param {string} folder - * @returns a promise - */ - async delete (filename, folder) { - window.localStorage.removeItem(folder + '_' + filename) - return Promise.resolve(true) - } -} diff --git a/src/modules/files/logger.js b/src/modules/files/logger.js deleted file mode 100644 index ade3b475..00000000 --- a/src/modules/files/logger.js +++ /dev/null @@ -1,74 +0,0 @@ -import 'modules/files/files' -import files from './files' - -export class Logger { - /** - * Instantiates a logger. - * @param {string} filename - filename to be opened - * @param {string} folder - can be either 'cache' (default) for temporary storage or 'shared' for exposed folder - */ - constructor (filename, folder) { - this.filename = filename - this.folder = folder - this.buffer = '' - this.writing = false - this.storageLocation = '' - this.fileEntry = '' - } - - /** - * Creates a logger, instatiates the file and prepares it for logging. - */ - async create () { - this.buffer = '' - this.writing = false - - this.fileEntry = await files.openFile(this.filename, this.folder, true) - } - - writeBuffer (completed, error) { - this.writing = true - let toWrite = this.buffer - this.buffer = '' - - this.fileEntry.createWriter((fileWriter) => { - fileWriter.onerror = error - fileWriter.onwriteend = () => { - if (this.buffer.length > 0) { - // buffer not empty, keep writing - this.writeBuffer(completed, error) - } else { - // buffer empty, completed! - this.writing = false - if (completed) completed() - } - } - fileWriter.seek(fileWriter.length) - // dataObj = new Blob([line], { type: 'text/plain' }) - fileWriter.write(toWrite) - }, error) - } - - /** - * Appends lines to the logger. - * If the logger is busy writing, the promise resolves immediately - * @param {string} line - the text to be appended - */ - async log (line) { - // add the line to the buffer - this.buffer += line - - return new Promise((resolve, reject) => { - // if writing, return immediately - if (this.writing) resolve() - else this.writeBuffer(resolve, reject) - }) - } - - /** - * Deletes the temporary logfile. - */ - async delete () { - return this.files.delete(this.filename, this.folder) - } -} diff --git a/src/modules/healthDataTypesEnum.js b/src/modules/healthDataTypesEnum.js deleted file mode 100755 index 6a81835e..00000000 --- a/src/modules/healthDataTypesEnum.js +++ /dev/null @@ -1,14 +0,0 @@ -export default { - values: [ 'steps', 'weight', 'height', 'activity', 'heart_rate', 'heart_rate_variability', 'calories', 'distance' ], - toNativeType (v) { - if (v === 'heart_rate_variability') return 'heart_rate.variability' - return v - }, - isIOSOnly (v) { - if (v === 'heart_rate_variability') return true - return false - }, - isAndroidOnly (v) { - return false - } -} diff --git a/src/modules/healthstore.js b/src/modules/healthstore.js deleted file mode 100755 index 6f95a259..00000000 --- a/src/modules/healthstore.js +++ /dev/null @@ -1,65 +0,0 @@ -export default { - isAvailable: async function () { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - navigator.health.isAvailable(resolve, reject) - }) - }, - - promptInstallFit: async function () { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - navigator.health.promptInstallFit(resolve, reject) - }) - }, - - requestAuthorization: async function (datatypes) { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - navigator.health.requestAuthorization(datatypes, resolve, reject) - }) - }, - - isAuthorized: async function (datatypes) { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - navigator.health.isAuthorized(datatypes, resolve, reject) - }) - }, - - disconnect: async function () { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - navigator.health.disconnect(resolve, reject) - }) - }, - - query: async function (queryOpts) { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - - // we always need to request authorization before querying - // this is needed for Android particularly - navigator.health.requestAuthorization([{ - read: [queryOpts.dataType] - }], () => { - navigator.health.query(queryOpts, resolve, reject) - }, reject) - }) - }, - - queryAggregated: async function (queryOpts) { - return new Promise((resolve, reject) => { - if (!navigator.health) reject(new Error('Cordova Health is not installed')) - - // we always need to request authorization before querying - // this is needed for Android particularly - navigator.health.requestAuthorization([{ - read: [queryOpts.dataType] - }], () => { - navigator.health.queryAggregated(queryOpts, resolve, reject) - }, reject) - }) - } - -} diff --git a/src/modules/healthstore.mock.js b/src/modules/healthstore.mock.js deleted file mode 100755 index 240a916b..00000000 --- a/src/modules/healthstore.mock.js +++ /dev/null @@ -1,156 +0,0 @@ -'use strict' - -import moment from 'moment' -import { Dialog } from 'quasar' - -export default { - isAvailable: async function () { - return Promise.resolve() - }, - - promptInstallFit: async function () { - return Promise.resolve() - }, - - requestAuthorization: async function (datatypes) { - return new Promise((resolve, reject) => { - Dialog.create({ - title: 'Confirm', - message: 'Would you like to give access to ' + datatypes[0].read[0] + '?', - cancel: true, - persistent: true - }).onOk(() => { - resolve() - }).onCancel(() => { - reject() - }).onDismiss(() => { - reject() - }) - }) - }, - - isAuthorized: async function (datatypes) { - return Promise.resolve() - }, - - disconnect: async function () { - return Promise.resolve() - }, - - query: async function (queryOpts) { - let retval = [] - let date = queryOpts.startDate.getTime() - do { - let value, unit, timeDur - if (queryOpts.dataType === 'steps') { - timeDur = (Math.random() * 60000) + 120000 // 2 to 3m - value = Math.floor((Math.random() * 100) + 1) - unit = 'count' - } else if (queryOpts.dataType === 'weight') { - const dayms = 24 * 60 * 60 * 1000 - timeDur = (Math.random() * dayms) + dayms // 1 to 2d - value = Math.floor((Math.random() * 2) + 79) - unit = 'kg' - } else if (queryOpts.dataType === 'heart_rate') { - timeDur = (Math.random() * 120000) + 180000 // 3 to 5h - value = Math.floor((Math.random() * 20) + 60) - unit = 'bpm' - } else if (queryOpts.dataType === 'distance') { - timeDur = (Math.random() * 10800000) + 3600000 // 1 to 4h - value = Math.floor(Math.random() * 1000) - unit = 'm' - } - retval.push({ - startDate: new Date(date), - endDate: new Date(date + timeDur), - unit, - value - }) - date = date + timeDur - } - while (date < queryOpts.endDate.getTime()) - return retval - }, - - queryAggregated: async function (queryOpts) { - let retval - let startDate = moment(queryOpts.startDate) - let endDate = moment(queryOpts.endDate) - if (queryOpts.bucket && queryOpts.bucket !== 'none') { - // aggregated with bucket - retval = [] - startDate.subtract(1, queryOpts.bucket + 's') - - while (startDate.isBefore(moment(queryOpts.endDate))) { - startDate.add(1, queryOpts.bucket + 's') - endDate = startDate.clone() - endDate.add(1, queryOpts.bucket + 's') - if (queryOpts.dataType === 'steps') { - retval.push({ - startDate: startDate.toDate(), - endDate: endDate.toDate(), - unit: 'count', - value: Math.floor((Math.random() * 5000) + 500) - }) - } if (queryOpts.dataType === 'distancee') { - retval.push({ - startDate: startDate.toDate(), - endDate: endDate.toDate(), - unit: 'm', - value: Math.floor((Math.random() * 5000) + 100) - }) - } else if (queryOpts.dataType === 'activity') { - retval.push({ - startDate: startDate.toDate(), - endDate: endDate.toDate(), - unit: 'activitySummary', - value: { - still: { - duration: Math.floor((Math.random() * 64800000) + 28800000), - calories: 1500, - distance: 0 - }, - walking: { - duration: Math.floor((Math.random() * 10800000) + 1800000), - calories: 20, - distance: 1250 - }, - in_vehicle: { - duration: Math.floor((Math.random() * 10800000) + 1800000), - calories: 20, - distance: 3520 - } - } - }) - } - } - } else { - // aggregated no bucket - if (queryOpts.dataType === 'activity') { - retval = { - startDate: startDate.toDate(), - endDate: endDate.toDate(), - unit: 'activitySummary', - value: { - still: { - duration: Math.floor((Math.random() * 64800000) + 28800000), - calories: 1500, - distance: 0 - }, - walking: { - duration: Math.floor((Math.random() * 10800000) + 1800000), - calories: 20, - distance: 1250 - }, - in_vehicle: { - duration: Math.floor((Math.random() * 10800000) + 1800000), - calories: 20, - distance: 3520 - } - } - } - } - } - return retval - } -} diff --git a/src/modules/miband3/CustomDate.js b/src/modules/miband3/CustomDate.js deleted file mode 100755 index 45059e68..00000000 --- a/src/modules/miband3/CustomDate.js +++ /dev/null @@ -1,68 +0,0 @@ -// Could be implemented more simply but i wanted to try an iterator. - -class CustomDate { - constructor (date) { - this.date = date - this.dateFunctions = [ - this.date.getFullYear(), - this.date.getMonth() + 1, - this.date.getDate(), - this.date.getHours(), - this.date.getMinutes(), - this.date.getSeconds(), - this.date.getDay(), - this.makeMilliseconds() - ] - } - - makeMilliseconds () { // Needs a better way. How to represent milliseconds in 6 bytes as fractions? - return '000000' - } - - getDateStringPacket () { - let dateStringPacket = '' - for (let dateItem of this) { - dateStringPacket += this.dateTimeToHex(dateItem) - } - return dateStringPacket - } - - dateTimeToHex (value) { - let hexValue = value.toString(16) - if (hexValue.length % 2 !== 0) { - hexValue = '0' + hexValue - } - if (hexValue.length === 4) { - // year - hexValue = hexValue.substring(2, 4) + hexValue.substring(0, 2) - } - return hexValue - } -} - -class CustomDateIterator { - constructor (customDate) { - this.customDate = customDate - this.dateFunctions = customDate.dateFunctions - this.startIndex = 0 - this.currentIndex = 0 - } - - next () { - let length = this.dateFunctions.length - if (this.currentIndex < length) { - return { - value: this.dateFunctions[this.currentIndex++], - done: false - } - } - this.currentIndex = this.startIndex - return { done: true } - } -} - -CustomDate.prototype[Symbol.iterator] = function () { - return new CustomDateIterator(this) -} - -export default CustomDate diff --git a/src/modules/miband3/Miband3Driver.js b/src/modules/miband3/Miband3Driver.js deleted file mode 100755 index 07e97f92..00000000 --- a/src/modules/miband3/Miband3Driver.js +++ /dev/null @@ -1,1575 +0,0 @@ -/* eslint-disable no-undef, used to skip cordova ble es-lint warning. */ -/** - * Author: Daniel Abella with the help of - * Dario Salvi - * based on work done by Volodymyr Shymanskyy - https://github.com/vshymanskyy/miband-js - * and work done by José Rebelo as well as work done by the good folks at https://gadgetbridge.org/ - */ - -// Imports - -// eslint-disable-next-line camelcase -import crypto_aes from 'browserify-aes' -import CustomDate from './CustomDate' - -const customUUID = x => `0000${x}-0000-3512-2118-0009af100700` -// const standardUUID = x => `0000${x}-0000-1000-8000-00805f9b34fb` - -var Miband3 = { - authenticationKey: undefined, - deviceId: undefined, - // services - hrMonitorService: '180d', - mibandCustomService0: 'fee0', - mibandCustomService1: 'fee1', - // characteristics - authenticationCharacteristic: customUUID('0009'), - notificationCharacteristic: customUUID('0003'), - hrMonitorControlCharacteristic: '2a39', - hrMonitorMeasureCharacteristic: '2a37', - timeCharacteristic: '2a2b', - batteryCharacteristic: customUUID('0006'), - deviceInformationService: '180a', - hardwareCharacteristic: '2a27', - softwareCharacteristic: '2a28', - storageControlCharacteristic: customUUID('0004'), - storageDataCharacteristic: customUUID('0005'), - rawDataCharacteristic: customUUID('0002'), - configCharacteristic: customUUID('0003'), - manufacturerNameCharacteristic: '2a29', - modelNumberCharacteristic: '2a24', - serialNumberCharacteristic: '2a25', - firmwareCharacteristic: '2a26', - userCharacteristic: customUUID('0008'), - stepCountCharacteristic: customUUID('0007'), - sensorCharacteristic: customUUID('0001'), - - crypto: window.crypto || window.msCrypto, - textDecoder: new TextDecoder(), - - messages: { - authentication: { - keySentOK: '100101', - encryptionValueReceived: '100201', - notAuthenticated: '100304', - authenticated: '100301', - sendKey: '01', - requestEncryptionValue: '02', - sendEncryptedKey: '03', - authFlag: '00' - }, - heartRate: { - turnOffHROneShot: '150200', - turnOffHRContinuous: '150100', - turnOnHRContinuous: '150101', - ping: '16' - }, - rawData: { - rawHRAndACC: '010319', - rawHR: '010219', - rawAcc: '010119', - ping: '02' - }, - storedData: { - activityType: '01', - response: '01', - startDate: '01', - success: '01', - failure: '00' // Not sure if corret... - }, - setup: { - dateTimeFormat: '060a00', - hourFormat: '060200', - distance: '060300', - changeScreens: [ - '0a', - '01', - '30', - '00', - '00', - '00', - '06', - '00', - '00', - '00', - '00', - '00' - ], - sendUserInfo: '4f', - setLanguage: '061700', - setUserInfo: '0x4f', - dateFormat: '061e00', // After 00 --> MM/dd/yyyy in hex characters - nightMode: '1a', - wearLocation: '200000', - fitnessGoalStart: '100000', - fitnessGoalEnd: '0000', - defaultStepGoal: '8000', - scrollWristOff: '060d0000', - displayOnLift: '060500', - goalNotification: '060600', - enableHRSleepSupport: '150001', - disableHRSleepSupport: '150000', - disableHRExpose: '06010000', - enableHRExpose: '06010001', - setHRInterval: '14', - response: '10', - okResponse: '01' - } - }, - - // this is used to keep track of running notifications - runningNotifications: new Map(), - - // TODO: remove, just use the keys in Map - runningNotificationCharacteristics: [], - - /** - * Initialises the instance of the MiBand3 driver - * @param {string} deviceId this is the device id provide dby the ble-central plugin (MAC address) - * @param {string} key authentication key used for this device - */ - init: async function (deviceId, key) { - this.deviceId = deviceId - this.authenticationKey = key - }, - - scan: async function (searchTime, cbk, ckbFailureSearch) { - return new Promise((resolve, reject) => { - ble.startScan([], (device) => { - if (device.name === 'Mi Band 3') cbk(device) - }, (failure) => { - ckbFailureSearch() - reject() - }) - setTimeout(() => { - ble.stopScan((success) => { - resolve() - }, (failure) => { - resolve() - }) - }, searchTime) - }) - }, - - /** - * Connects to the device using ble-central, does not authenticate - */ - connect: async function () { - return new Promise((resolve, reject) => { - ble.connect( - this.deviceId, - success => { - resolve(success) - }, - error => { - console.error('Connection error:', error) - // connectFailedCallback(device) - reject(error) - } - ) - }) - }, - - /** - * Disconnects the Miband3 device, TODO: disconnect callback? - */ - disconnect: async function () { - if (this.deviceId === null || this.deviceId === undefined) { - return Promise.resolve() - } else { - return new Promise((resolve, reject) => { - ble.disconnect( - this.deviceId, - success => { - resolve(success) - }, - failure => { - console.log('Failed to disconnect:', failure) - reject(failure) - } - ) - }) - } - }, - - /** - * Tells if the drivers is connected to a device - */ - isConnected: async function () { - if (!this.deviceId) return Promise.resolve(false) - return new Promise((resolve, reject) => { - ble.isConnected( - this.deviceId, - success => { - resolve(true) - }, - failure => { - console.log('Failure is connected', failure) - resolve(false) - } - ) - }) - }, - - fullAuthentication: async function () { - return this.sendAuthenticationKey() - }, - - halfAuthentication: async function () { - return this.requestEncryptionValue() - }, - - /** - * Authenticate the device - * @param {boolean} deviceAuthenticated if true, the device has already been authenticated once - */ - authenticate: async function (deviceAuthenticated) { - this.registerNotification( - this.mibandCustomService1, - this.authenticationCharacteristic - ) - - return new Promise((resolve, reject) => { - ble.startNotification( - this.deviceId, - this.mibandCustomService1, - this.authenticationCharacteristic, - dataResponse => { - let value = Buffer.from(dataResponse) - const command = value.slice(0, 3).toString('hex') - - if (command === this.messages.authentication.keySentOK) { - // let currentDate = new Date() - // this.setTimeStatus(currentDate) - this.requestEncryptionValue() - } else if ( - command === this.messages.authentication.encryptionValueReceived - ) { - let encryptionValue = value.slice(3) - let encryptedKey = this.createEncryptedKey(encryptionValue) - this.sendEncryptedKey(encryptedKey) - } else if ( - command === this.messages.authentication.notAuthenticated - ) { - reject() - } else if (command === this.messages.authentication.authenticated) { - resolve() - // TODO: Can't currently stop notifications and start another one, issue raised: https://github.com/don/cordova-plugin-ble-central/issues/552 - } - }, - failure => { - console.log('Start auth notification failure:', failure) - reject() - } - ) - - if (!deviceAuthenticated) { - this.fullAuthentication(this.device) - } else { - this.halfAuthentication(this.device) - } - }) - }, - - sendAuthenticationKey: function () { - let packet = this.hexStringToHexBuffer( - this.messages.authentication.sendKey + - this.messages.authentication.authFlag + - this.authenticationKey - ) - this.sendWithoutResponse( - this.mibandCustomService1, - this.authenticationCharacteristic, - packet - ) - }, - - requestEncryptionValue: function () { - let packet = this.hexStringToHexBuffer( - this.messages.authentication.requestEncryptionValue + - this.messages.authentication.authFlag - ) - this.sendWithoutResponse( - this.mibandCustomService1, - this.authenticationCharacteristic, - packet - ) - }, - - createEncryptedKey: function (encryptionValue) { - let keyAsBuffer = Buffer.from(this.authenticationKey, 'hex') - let cipher = crypto_aes - .createCipheriv('aes-128-ecb', keyAsBuffer, '') - .setAutoPadding(false) - let encrypted = Buffer.concat([ - cipher.update(encryptionValue), - cipher.final() - ]) - return encrypted - }, - - sendEncryptedKey: function (encryptedKey) { - let packet = this.hexStringToHexBuffer( - this.messages.authentication.sendEncryptedKey + - this.messages.authentication.authFlag + - encryptedKey.toString('hex') - ) - this.sendWithoutResponse( - this.mibandCustomService1, - this.authenticationCharacteristic, - packet - ) - }, - - /** - * It seems that messages can be sent to the config characteristic if the preamble command is correct, no matter the length of the packet. - * @param {*} service - * @param {*} characteristic - * @param {*} packet - * @param {*} okResponse - */ - sendAndVerifyConfiguration: async function ( - service, - characteristic, - packet, - command - ) { - this.registerNotification(service, characteristic) - return new Promise((resolve, reject) => { - ble.startNotification( - this.deviceId, - service, - characteristic, - dataResponse => { - let response = Buffer.from(dataResponse).toString('hex') - let responseMessage = this.messages.setup.response - let okResponse = this.messages.setup.okResponse - if (response === responseMessage + command + okResponse) { - resolve() - } else { - reject() // TODO: Do i reject if if the right command was not received as a response? - } - // TODO: check if i can unsubscribe to all notifications once authenticated and configurations are sent. - }, - failure => { - console.log('Config fail:', failure) - reject(failure) - } - ) - this.sendWithoutResponse(service, characteristic, packet) - }) - }, - - /** - * Sets the device's language - * @param {string} lang the language to be set. The format is: en_US, or fr_FR for example. - */ - setLanguage: async function (lang) { - let command = this.messages.setup.setLanguage - let packet = this.hexStringToHexBuffer( - command + this.convertLangAndCountryStringToHex(lang) - ) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - convertLangAndCountryStringToHex (langAndCountry) { - if (langAndCountry.length !== 5) return - return Buffer.from(langAndCountry).toString('hex') - }, - - /** - * Sets night mode - * @param {Date} startTime start time, if null or undefined, night mode is always OFF - * @param {Date} endTime end time - */ - setNightMode: async function (startTime, endTime) { - let packet = '' - let command = '' - if (startTime !== null && endTime !== null) { - let startHour = this.createByteStringFromInt(startTime.getHours()) - let startMinute = this.createByteStringFromInt(startTime.getMinutes()) - let endHour = this.createByteStringFromInt(endTime.getHours()) - let endMinute = this.createByteStringFromInt(endTime.getMinutes()) - let schedule = '01' - command = this.messages.setup.nightMode - let message = startHour + startMinute + endHour + endMinute - packet = this.hexStringToHexBuffer(command + schedule + message) - } else { - let off = '00' - command = this.messages.setup.nightModeOff - packet = this.hexStringToHexBuffer(command + off) - } - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Decide if you want date and time, or only one of those - * Currently only allows date and time, doesn't seem to set only time, and such a setting doesn't exist in Gadgetbridge app. - */ - setDisplayDateTime: async function () { - let dateAndTime = '03' - // let timeOnly = '00' // Does not work currently, for some reason. - let command = this.messages.setup.dateTimeFormat - let packet = this.hexStringToHexBuffer( - command + dateAndTime - ) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Sets time format: 24h or 12h - * Defaults to 24h - * @param {string} format "24h" or "12h" - */ - setTimeFormat: async function (format) { - let packet = '' - let command = this.messages.setup.hourFormat - if (format === '12h') { - let twelveHourFormat = '00' - packet = this.hexStringToHexBuffer(command + twelveHourFormat) - } else { - let twentyFourHourFormat = '01' - packet = this.hexStringToHexBuffer(command + twentyFourHourFormat) - } - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Sets the format of the date - * Currently only sets day/month/year - * @param {boolean} dayFirst if true, the format is day/month/year, else it's month/day/year - */ - setDateFormat: async function (dayFirst) { - let packet = '' - let format = '' - let message = '' - if (dayFirst) { - format = 'dd/MM/yyyy' - message = Buffer.from(format).toString('hex') - } else { - format = 'MM/dd/yyyy' - message = Buffer.from(format).toString('hex') - } - let command = this.messages.setup.dateFormat - packet = this.hexStringToHexBuffer(command + message) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Sets the distance metric: meters or feet - * Currently only supports meters - * @param {boolean} meters if true uses meters, else uses feet - */ - setDistanceType: async function (meters) { - let packet = '' - let message = '' - let command = this.messages.setup.distance - if (meters) { - let metric = '00' - message = command + metric - } else { - let imperial = '01' - message = command + imperial - } - packet = this.hexStringToHexBuffer(message) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Sets the wear position - * @param {boolean} right if true watch is worn on the right - */ - setWearLocation: async function (right) { - let packet = '' - let message = '' - let command = this.messages.setup.wearLocation - if (right) { - let right = '82' - message = command + right - } else { - let left = '02' - message = command + left - } - packet = this.hexStringToHexBuffer(message) - await this.sendWithResponse( - this.mibandCustomService0, - this.userCharacteristic, - packet - ) - }, - - /** - * Sets the goal in steps - * @param {number} goalSteps - */ - setStepGoal: async function (goalSteps) { - let stepsHex = this.createByteStringFromInt(goalSteps) - if (stepsHex.length === 2) { - stepsHex = stepsHex + '00' - } else if (stepsHex.length === 4) { - stepsHex = stepsHex.substring(2, 4) + stepsHex.substring(0, 2) - } - - let packet = this.hexStringToHexBuffer( - this.messages.setup.fitnessGoalStart + - stepsHex + - this.messages.setup.fitnessGoalEnd - ) - - await this.sendWithResponse( - this.mibandCustomService0, - this.userCharacteristic, - packet - ) - }, - - /** - * Sets screens and its order - * A small battery icon is shown when the battery is running out on the main clock screen. - * However if the user is to see the battery status, the status screen needs to be enabled which also includes the - * step count. - * @param {string[]} screens an array of "clock", "heartRate", "status", "more", "notifications", "activity" and "weather" - */ - setupScreens: async function (screens) { - let packet = '' - let messageArray = this.messages.setup.changeScreens - let command = '0a' - let pos = 1 - if (screens.includes('notifications')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '02' - ) - messageArray[4] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('weather')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '04' - ) - messageArray[5] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('activity')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '08' - ) - messageArray[6] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('more')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '10' - ) - messageArray[7] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('status')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '20' - ) - messageArray[8] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('heartRate')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '40' - ) - messageArray[9] = this.parsePositionToString(pos) - pos++ - } - if (screens.includes('timer')) { - messageArray[1] = this.performOROperationOnStringBytes( - messageArray[1], - '80' - ) - messageArray[10] = this.parsePositionToString(pos) - pos++ - } - for (let i = 4; i <= 11; i++) { - if (messageArray[i] === '00') { - messageArray[i] = this.paddHex(parseInt(pos++, 16).toString(16)) - } - } - let reducer = (accumulator, currentValue) => accumulator + currentValue - packet = this.hexStringToHexBuffer(messageArray.reduce(reducer)) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - performOROperationOnStringBytes (firstValue, secondValue) { - let ORValue = this.paddHex( - (parseInt(firstValue, 16) | parseInt(secondValue, 16)).toString(16) - ) - return ORValue - }, - - parsePositionToString (pos) { - let value = this.paddHex(parseInt(pos, 10).toString(16)) - return value - }, - - /** - * Activates display when wrist is lifted - * @param {string} type, on, off, schedule - */ - activateDisplayOnWristLift: async function (type, startTime, endTime) { - let packet = '' - let message = '' - let command = this.messages.setup.displayOnLift - if (type === 'on') { - let on = '01' - message = command + on - } else if (type === 'off') { - let off = '00' - message = command + off - } else if (type === 'schedule') { - let startHour = this.createByteStringFromInt(startTime.getHours()) - let startMinute = this.createByteStringFromInt(startTime.getMinutes()) - let endHour = this.createByteStringFromInt(endTime.getHours()) - let endMinute = this.createByteStringFromInt(endTime.getMinutes()) - let schedule = '01' - message = - command + schedule + startHour + startMinute + endHour + endMinute - } - packet = this.hexStringToHexBuffer(message) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Shows message when goal is reached - * Currently only turns it off - * @param {boolean} enable - */ - setGoalNotification: async function (enable) { - let packet = '' - let message = '' - let command = this.messages.setup.goalNotification - if (enable) { - let on = '01' - message = command + on - } else { - let off = '00' - message = command + off - } - packet = this.hexStringToHexBuffer(message) - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet, - command - ) - }, - - /** - * Sets support for HR supporte sleep detection - * @param {boolean} on - */ - setHRSleepSupport: async function (on) { - let packet = '' - let message = '' - if (on) { - message = this.messages.setup.enableHRSleepSupport - } else { - message = this.messages.setup.disableHRSleepSupport - } - packet = this.hexStringToHexBuffer(message) - - return this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, - - /** - * Sets HR avaialble to non authenticated apps - * Currently only supports disabled - * @param {boolean} on - */ - setExposeHRToThirdParty: async function (on) { - let packet = '' - let message = '' - - if (on) { - message = this.messages.setup.enableHRExpose - } else { - message = this.messages.setup.disableHRExpose - } - - packet = this.hexStringToHexBuffer(message) - - await this.sendAndVerifyConfiguration( - this.mibandCustomService0, - this.configCharacteristic, - packet - ) - }, - - /** - * Sets the HR measurement interval - * @param {number} interval - */ - setHeartRateMeasurementInterval: async function (interval) { - // if hrMonitorControlCharacteristic can send notifications, register to them and observe response - let intervalString = this.createByteStringFromInt(interval) - - let packet = this.hexStringToHexBuffer( - this.messages.setup.setHRInterval + intervalString // convert interval to hex - ) - return this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, - - /** - * Technically does not turn off the measurement interval. Instead it sets it to a high amount of minutes. - */ - turnOffHRMeasurementInterval: async function () { - this.setHeartRateMeasurementInterval(256) // Once every 24 hrs - }, - - /** Sets the user profile - * @param height: height in cm - * @param weight: weight in kg - * @param birthYear: DOB year - * @param birthMonth: DOB month - * @param birthDay: DOB day - * @param sex: false for male - **/ - setUser: async function ( - height, // number - weight, // number - birthYear, // number - birthMonth, // number - birthDay, // number - sex // boolean, false for male - ) { - let heightString = this.paddHexToBytes( - this.createByteStringFromInt(height), - 4 - ) - let height1 = heightString.substring(2, 4) // Is this the right order? Little or big endian, not certain, needs to ask Dario. - let height2 = heightString.substring(0, 2) - - let weightString = this.paddHexToBytes( - this.createByteStringFromInt(weight * 200), - 4 - ) - let weight1 = weightString.substring(2, 4) // Same, little or big endian? - let weight2 = weightString.substring(0, 2) - - let birthYearString = this.createByteStringFromInt(birthYear) - let birthYear1 = birthYearString.substring(2, 4) - let birthYear2 = birthYearString.substring(0, 2) - let birthMonth1 = this.createByteStringFromInt(birthMonth) - let birthDay1 = this.createByteStringFromInt(birthDay) - - let sex1 = sex ? '01' : '00' // 01 if true/female, 00 if false/male - - // Random hex values, easter egg. - let alias1 = '44' - let alias2 = '41' - let alias3 = '44' - let alias4 = '53' - - let packet = this.hexStringToHexBuffer( - this.messages.setup.sendUserInfo + - '00' + - '00' + - birthYear1 + - birthYear2 + - birthMonth1 + - birthDay1 + - sex1 + - height1 + - height2 + - weight1 + - weight2 + - alias1 + - alias2 + - alias3 + - alias4 - ) - await this.sendWithResponse( - this.mibandCustomService0, - this.userCharacteristic, - packet - ) - }, - - createByteStringFromInt (value) { - let hexInt = parseInt(value, 10) - let byteString = this.paddHex(hexInt.toString(16)) - return byteString - }, - - paddHex: function (hexValue) { - let paddedHexValue = '' - if (hexValue.length % 2 !== 0) { - paddedHexValue += '0' + hexValue - } else { - return hexValue - } - return paddedHexValue - }, - - paddHexToBytes: function (hexValue, bytes) { - let paddedHexValue = hexValue.slice() - while (paddedHexValue.length % bytes !== 0) { - paddedHexValue = '0' + paddedHexValue - } - return paddedHexValue - }, - - // STORED DATA - /** - * Fetches stored data from a given date - * @returns a promise which is solved if the fecthing starts - * @param {date} startDate - * @param {function} dataCallback callback function with data in it. Example data: { timestamp: date, activityType: 1, intensity: 30, steps: 10, heartRate: 65, buffer: Uint8Array } - */ - fetchStoredData: async function (startDate, dataCallback) { - let actualStartDate // actual start date as communicated by the watch - let sampleCounter = 0 - let totalSamples = 0 - // register to storage control - this.registerNotification( - this.mibandCustomService0, - this.storageControlCharacteristic - ) - return new Promise((resolve, reject) => { - ble.startNotification( - this.deviceId, - this.mibandCustomService0, - this.storageControlCharacteristic, - responseData => { - let dataHex = Buffer.from(responseData).toString('hex') - if (dataHex.substring(0, 6) === '100101') { - actualStartDate = this.createDateFromHexString( - dataHex.substring(14, 26) - ) - totalSamples = this.getTotalSamplesFromBuffer(Buffer.from(responseData)) - sampleCounter = 0 - // here we know we should receive data, so we register for the characteristic - this.registerNotification( - this.mibandCustomService0, - this.storageDataCharacteristic - ) - ble.startNotification( - this.deviceId, - this.mibandCustomService0, - this.storageDataCharacteristic, - dataResponse => { - // got data! - let buffer = new Uint8Array(dataResponse) - let sampleArray = this.createSingleActivitySamplesFromSeveral( - actualStartDate, - sampleCounter, - buffer - ) - for (let sample of sampleArray) { - dataCallback( - sample - ) - } - sampleCounter += Math.floor(buffer.length / 4) - }, - reject - ) - - // start fetch sequence - this.sendFetchCommand().catch(reject) - } - if (dataHex === '100201') { - // Fetch completed - let fifteenMinutes = 15 * 60 * 1000 - let lastDateReceived = new Date(actualStartDate.getTime() + totalSamples * 1000 * 60) - let currentDate = new Date() - if (this.differenceInMinutes(lastDateReceived, currentDate) > 15) { - let nextStartDate = new Date(lastDateReceived.getTime() + fifteenMinutes) - actualStartDate = nextStartDate - this.sendStartDateAndActivity(nextStartDate, 1) - } else { - resolve() // Data was received that was close enough to the current time, and hence we will not ask for more packets. Not sure how else to this issue. - // If the above if statement is not implemented then the we keep a preamble packet with the same date and will continue to ask for that packet indefinitely. - } - } - if (dataHex === '100204') { - // No data was found, can be triggered if a data was already sent recently, or if there is no data left to fetch. - resolve() - } - }, - reject - ) - - this.sendStartDateAndActivity(startDate, 1).catch(reject) - }) - }, - - getTotalSamplesFromBuffer (buffer) { - let totalSamples = (buffer[6] << 24) | (buffer[5] << 16) | (buffer[4] << 8) | (buffer[3]) - return totalSamples - }, - - /** - * Creates an array of sample objects, TODO: add buffer to sample - * @param {Buffer} samples Contains 1-4 samples of recorded activity - */ - createSingleActivitySamplesFromSeveral ( - actualStartDate, - amountOfSamples, - samples - ) { - // let packageNumber = samples[0] // First item in buffer array is always the package number - let sampleObjectArray = [] - for (let i = 1; i < samples.length; i += 4) { - let sample = { - date: new Date( - actualStartDate.getTime() + 60000 * amountOfSamples++ - ), // adding minutes to the start date - activityType: samples[i], - intensity: samples[i + 1], - steps: samples[i + 2], - hr: samples[i + 3] // Should add a buffer array of each value in the object? - } - sampleObjectArray.push(sample) - } - return sampleObjectArray - }, - - differenceInMinutes (date1, date2) { - let diff = (date2.getTime() - date1.getTime()) / 1000 - diff /= 60 - return Math.round(diff) - }, - - createDateFromHexString: function (hexString) { - let year = parseInt( - hexString.substring(2, 4) + hexString.substring(0, 2), - 16 - ) - let month = parseInt(hexString.substring(4, 6), 16) - 1 - let day = parseInt(hexString.substring(6, 8), 16) - let hour = parseInt(hexString.substring(8, 10), 16) - let minutes = parseInt(hexString.substring(10, 12), 16) - let seconds = 0 - let date = new Date(year, month, day, hour, minutes, seconds) - return date - }, - - // activity type not currently supported, only fetches activity 01 - sendStartDateAndActivity: async function (date, activityType) { - let customDate = new CustomDate(date) - let dateMessage = customDate.getDateStringPacket() - let packet = this.hexStringToHexBuffer( - this.messages.storedData.startDate + - this.messages.storedData.activityType + - dateMessage.substring(0, 16) // Removes last 3 bytes because they shouldn't be sent in this case (milliseconds in 3 bytes representing fractions are not send for some reason) - ) - return this.sendWithoutResponse( - this.mibandCustomService0, - this.storageControlCharacteristic, - packet - ) - }, - - sendFetchCommand: async function () { - let packet = this.hexStringToHexBuffer('02') - return this.sendWithoutResponse( - this.mibandCustomService0, - this.storageControlCharacteristic, - packet - ) - }, - - // Real-time step count measurement - - /** - * Starts monitoring steps - * @param {function} dataCallback called when step count is available - * @param {function} errorCallback - */ - startStepCountMonitoring: async function (dataCallback) { - this.registerNotification( - this.mibandCustomService0, - this.stepCountCharacteristic - ) - return new Promise((resolve, reject) => { - ble.startNotification( - this.deviceId, - this.mibandCustomService0, - this.stepCountCharacteristic, - dataResponse => { - let data = Buffer.from(dataResponse).toString('hex') - dataCallback({ - timestamp: new Date(), - steps: this.parseStepCount(this.convertToLittleEndian(data)) - }) - }, - failure => { - reject() - } - ) - }) - }, - - convertToLittleEndian: function (value) { - let littleEndian = value - .match(/../g) - .reverse() - .join('') - return littleEndian - }, - - parseStepCount: function (value) { - let parsedValue = '' - for (let i = 0; i < value.length; i += 2) { - if (!(value.charAt(i) === '0' && value.charAt(i + 1) === '0')) { - parsedValue += value.charAt(i) + value.charAt(i + 1) - } - } - return parseInt(parsedValue, 16) - }, - - // Raw data measurement - - /** - * Starts raw data monitoring - * @param {boolean} ppg if true streams PPG raw data - * @param {boolean} acceleration if true streams raw accelerometry - * @param {function} dataCallback called when data is available - */ - startRawDataMonitoring: async function (ppg, acceleration, dataCallback) { - await this.turnOffHRMeasuring() - this.registerNotification( - this.mibandCustomService0, - this.rawDataCharacteristic - ) - return new Promise((resolve, reject) => { - ble.startNotification( - this.deviceId, - this.mibandCustomService0, - this.rawDataCharacteristic, - dataResponse => { - const dataArray = [...new Uint8Array(dataResponse)] - let type = '' - if (dataArray[0] === 1) { - type = 'ACC' - if (dataArray.length >= 16) { - dataCallback( - { - timestamp: new Date(), - data: this.createSeveralFromSingleRawData( - dataArray.splice(2), - type - ) - }, - type - ) - } - } else if (dataArray[0] === 2) { - type = 'HR' - dataCallback( - { - timestamp: new Date(), - data: this.createSeveralFromSingleRawData( - dataArray.splice(2), - type - ) - }, - type - ) - } - // TODO? - // dataCallback({ - // type: type, - // data: { - // x: 12, - // y: 0, - // z: 333 - // } - // OR - // data: 2323 - // }) - }, - failure => { - console.log('Failed to start raw HR notifications:', failure) - reject() - } - ) - - // Error callback, if register to notifications doesnt work (same as rej), second if there is a disconnect, if disconnect callback is called then errorcallback is not necessary - if (ppg && acceleration) { - let enableMessage = this.messages.rawData.rawHRAndACC - this.enableRawData(enableMessage) - .then(this.turnOnContinuousHRMeasuring()) - .then(this.sendStartRawDataCommand()) - .then( - this.pingRawData( - this.messages.rawData.rawHRAndACC, - this.messages.rawData.ping - ) - ) - .then(resolve()) - .catch(reject()) - } else if (acceleration) { - let enableMessage = this.messages.rawData.rawAcc - this.enableRawData(enableMessage) - .then(this.sendStartRawDataCommand()) - .then( - this.pingRawData( - this.messages.rawData.rawAcc, - this.messages.rawData.ping - ) - ) - .then(resolve()) - .catch(reject()) // '0x02' to sensor characteristic - } else if (ppg) { - let enableMessage = this.messages.rawData.rawHR - this.enableRawData(enableMessage) - .then(this.turnOnContinuousHRMeasuring()) - .then(this.sendStartRawDataCommand()) - .then( - this.pingRawData( - this.messages.rawData.rawHR, - this.messages.rawData.ping - ) - ) - .then(resolve()) - } else { - reject() // Parameters are incorrect. - } - }) - }, - - createSeveralFromSingleRawData: function (rawData, type) { - let rawDataArray = [] - for (let i = 0; i < rawData.length; i += 2) { - if (type === 'HR') { - let tot = (rawData[i + 1] << 8) | rawData[i] - rawDataArray.push(tot) - } else if (type === 'ACC') { - let tot = (rawData[i + 1] << 8) | rawData[i] - let value = this.fromTwosComplement(tot, 2) - rawDataArray.push(value) - } - } - return rawDataArray - }, - - // taken from http://www.java2s.com/example/nodejs/number/converts-the-given-twos-complement-representation-to-the-represented.html - fromTwosComplement: function (twosComplement, numberBytes) { - var numberBits = (numberBytes || 1) * 8 - let throwString = "Two's complement out of range given " + - numberBytes + - ' byte(s) to represent.' - if (twosComplement < 0 || twosComplement > (1 << numberBits) - 1) { - throw throwString - } - - // If less than the maximum positive: 2^(n-1)-1, the number stays positive - if (twosComplement <= Math.pow(2, numberBits - 1) - 1) { return twosComplement } - - // Else convert to it's negative representation - return -((~twosComplement & ((1 << numberBits) - 1)) + 1) - }, - - enableRawData: async function (message) { - let packet = this.hexStringToHexBuffer(message) - await this.sendWithoutResponse( - this.mibandCustomService0, - this.sensorCharacteristic, - packet - ) - }, - - sendStartRawDataCommand: async function () { - let packet = this.hexStringToHexBuffer('02') - return this.sendWithoutResponse( - this.mibandCustomService0, - this.sensorCharacteristic, - packet - ) - }, - - pingRawData: async function (ping1, ping2) { - this.rawDataTimer = - this.rawDataTimer || - setInterval(() => { - let packet = this.hexStringToHexBuffer(ping1) - this.sendWithoutResponse( - this.mibandCustomService0, - this.sensorCharacteristic, - packet - ) - packet = this.hexStringToHexBuffer(ping2) - this.sendWithoutResponse( - this.mibandCustomService0, - this.sensorCharacteristic, - packet - ) - }, 30000) - }, - - stopRawNotifications: async function () { - clearInterval(this.rawDataTimer) - this.rawDataTimer = undefined - let packet = this.hexStringToHexBuffer('03') - await this.sendWithoutResponse( - // Stopping notifications first and then sending without response does not work. Why??? - this.mibandCustomService0, - this.sensorCharacteristic, - packet - ) - - return this.stopNotification( - this.mibandCustomService0, - this.rawDataCharacteristic - ) - }, - - // Real-time HR measurement - - startHRContinuousMonitoring: async function (callback) { - this.startHRNotifications(callback) - await this.turnOffHRMeasuring() - await this.turnOnContinuousHRMeasuring() - await this.pingHRControlMonitor() - }, - - stopHRContinuousMonitoring: async function () { - clearInterval(this.hrPingTimer) - this.hrPingTimer = undefined - return this.turnOffContinuousHRMeasuring() - }, - - turnOffHRMeasuring: async function () { - await this.turnOffOneShotHRMeasuring() - return this.turnOffContinuousHRMeasuring() - }, - - turnOffOneShotHRMeasuring: async function () { - let packet = this.hexStringToHexBuffer( - this.messages.heartRate.turnOffHROneShot - ) - return this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, - - turnOffContinuousHRMeasuring: async function () { - let packet = this.hexStringToHexBuffer( - this.messages.heartRate.turnOffHRContinuous - ) - return this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, - - startHRNotifications: function (callback) { - this.registerNotification( - this.hrMonitorService, - this.hrMonitorMeasureCharacteristic - ) - - ble.startNotification( - this.deviceId, - this.hrMonitorService, - this.hrMonitorMeasureCharacteristic, - responseData => { - let value = Buffer.from(responseData) - let hrValue = '0x' + value.toString('hex') - callback(parseInt(hrValue)) - }, - failure => { - console.log('Failed to start HR notifications:', failure) - } - ) - }, - - turnOnContinuousHRMeasuring: async function () { - let packet = this.hexStringToHexBuffer( - this.messages.heartRate.turnOnHRContinuous - ) - return this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, - - pingHRControlMonitor: async function () { - this.hrPingTimer = - this.hrPingTimer || - setInterval(() => { - let packet = this.hexStringToHexBuffer(this.messages.heartRate.ping) - this.sendWithResponse( - this.hrMonitorService, - this.hrMonitorControlCharacteristic, - packet - ) - }, 12000) - }, - - // Stop HR Monitoring, both raw and real-time. This needs an own function because the notifications need to stop after messages have been sent for some reason. - - stopHRMonitoring: async function () { - this.stopRawNotifications() - this.stopHRContinuousMonitoring() - }, - - // Setting and getting device time, battery, hw info and sw info. - - getTimeStatus: async function () { - let data = await this.read( - this.mibandCustomService0, - this.timeCharacteristic - ) - let dataBuffer = Buffer.from(data) - - let year = dataBuffer.readUInt16LE(0), - mon = dataBuffer[2] - 1, - day = dataBuffer[3], - hrs = dataBuffer[4], - min = dataBuffer[5], - sec = dataBuffer[6] - return new Date(year, mon, day, hrs, min, sec) - }, - - setCurrentTimeStatus: async function () { // TODO: Convert to UTC - let currentDate = new Date() - return this.setTimeStatus(currentDate) - }, - - setTimeStatus: async function (date) { - let customDate = new CustomDate(date) - let packetContent = customDate.getDateStringPacket() - let packet = this.hexStringToHexBuffer(packetContent) - - return this.sendWithResponse( - this.mibandCustomService0, - this.timeCharacteristic, - packet - ) - }, - - getBatteryStatus: async function () { - let data = await this.read( - this.mibandCustomService0, - this.batteryCharacteristic - ) - let dataBuffer = Buffer.from(data) - - const batteryStatus = { - chargeLevel: dataBuffer[1], - currentlyCharging: dataBuffer[2], - lastChargedDate: new Date(dataBuffer.readUInt16LE(3), dataBuffer[4] - 1, dataBuffer[5], dataBuffer[6], dataBuffer[7], dataBuffer[8]), - numOfCharges: dataBuffer[9], - amountCharged: dataBuffer[10] - } - - return batteryStatus - }, - - getHardwareInfo: async function () { - let data = await this.read( - this.deviceInformationService, - this.hardwareCharacteristic - ) - let dataString = this.dataToASCII(new Uint8Array(data)) - return dataString - }, - - getSoftwareInfo: async function () { - let data = await this.read( - this.deviceInformationService, - this.softwareCharacteristic - ) - let dataString = this.dataToASCII(new Uint8Array(data)) - return dataString - }, - - getSerialNumber: async function () { - let data = await this.read(this.deviceInformationService, this.serialNumberCharacteristic) - let dataString = this.dataToASCII(new Uint8Array(data)) - return dataString - }, - - // BLE communication functions - - read: async function (service, characteristic) { - return new Promise((resolve, reject) => { - ble.read( - this.deviceId, - service, - characteristic, - responseData => { - resolve(responseData) - }, - failure => { - console.log(failure) - alert('Failed to read characteristic from device.') - reject() - } - ) - }) - }, - - sendWithoutResponse: async function (service, characteristic, data) { - var dataInBits = new Uint8Array(data) - return new Promise((resolve, reject) => { - ble.writeWithoutResponse( - this.deviceId, - service, - characteristic, - dataInBits.buffer, - successResponse => { - resolve(successResponse) - }, - failure => { - console.log('Write without response failed') - reject(failure) - } - ) - }) - }, - - sendWithResponse: async function (service, characteristic, data) { - const dataInBits = new Uint8Array(data) - return new Promise((resolve, reject) => { - ble.write( - this.deviceId, - service, - characteristic, - dataInBits.buffer, - successResponse => { - if (!successResponse) { - resolve() // IOS doesnt send a response for some strange reason. - return - } - let response = Buffer.from(successResponse).toString('hex') - if (response === '4f4b') { - // User step goals set properly, probably also an OK response for a bunch of other messages. - // Sleep support set properly, same confirmation response is used for several characteristics. - // Only Android sends a response. - resolve(successResponse) - } else { - reject() - } - }, - failure => { - console.log('Failed to send:', failure) - reject() - } - ) - }) - }, - - registerNotification: function (service, characteristic) { - if (!this.runningNotifications.has(characteristic)) { - this.runningNotificationCharacteristics.push(characteristic) - this.runningNotifications.set(characteristic, service) - } - }, - - stopAllNotifications: async function () { - while (this.runningNotificationCharacteristics.length > 0) { - let characteristic = this.runningNotificationCharacteristics.pop() - let service = this.runningNotifications.get(characteristic) - await this.stopNotification(service, characteristic) - this.runningNotifications.delete(characteristic) - } - return Promise.resolve() - }, - - stopNotification: async function (service, characteristic) { - return new Promise((resolve, reject) => { - ble.stopNotification( - this.deviceId, - service, - characteristic, - success => { - resolve() - }, - failure => { - console.log('Failed to stop notifications', failure) - reject() - } - ) - }) - }, - - generateKey: function () { - let keyArray = new Uint8Array(16) - keyArray = crypto.getRandomValues(keyArray) - this.authenticationKey = Buffer.from(keyArray).toString('hex') - return this.authenticationKey - }, - - delay: async function (ms) { - return new Promise(resolve => setTimeout(resolve, ms)) - }, - - dataToASCII: function (data) { - let dataString = this.textDecoder.decode(data) - return dataString - }, - - hexStringToHexBuffer: function (data) { - let hexBuffer = Buffer.from(data, 'hex') - return hexBuffer - } -} - -export default Miband3 diff --git a/src/modules/miband3/miband3.js b/src/modules/miband3/miband3.js deleted file mode 100755 index 86c372dc..00000000 --- a/src/modules/miband3/miband3.js +++ /dev/null @@ -1,193 +0,0 @@ -'use strict' -import miband3Driver from './Miband3Driver' - -export default { - /** - * Finds all Miband3 around and returns an array of device objects, each containing an ID (MAC address) and RSSI - * If a timeout occurs or BLE is not activated, the promise is rejected - * @param {Number} timeout max number of milliseconds to search for a Miband3 - */ - async search (searchTime) { - return new Promise((resolve, reject) => { - let devices = [] - window.ble.startScan([], (device) => { - if (device.name === 'Mi Band 3' && !deviceExists(devices, device)) { - devices.push(device) - } - }, reject) - setTimeout(window.ble.stopScan, searchTime, (success) => { - resolve(devices) - }, reject) - }) - function deviceExists (devices, device) { - return devices.find((d) => d.id === device.id) - } - }, - - async searchForId (deviceId, searchTime) { - return new Promise((resolve, reject) => { - const timeoutId = setTimeout(() => { - window.ble.stopScan() - reject() - }, searchTime) - - window.ble.startScan([], (deviceFound) => { - if (deviceFound.id === deviceId) { - window.ble.stopScan() - clearTimeout(timeoutId) - resolve(deviceFound) - } - }, (failureResponse) => { - console.log('Start scan failed.', failureResponse) - clearTimeout(timeoutId) - reject() - }) - }) - }, - - /** - * Connects to a MiBand3 - * @param {Object} device a device object as returned by search() + can contain an authentication key - * @param {Function} disconnectCallback called if the device is disconnected - */ - async connect (device) { - // generate the key if not inside device - if (!device.key) { - let key = miband3Driver.generateKey() - device.key = key - } - // init - miband3Driver.init(device.id, device.key) - // connect - return miband3Driver.connect() - }, - - /** - * Disconnects from the tracker - */ - async disconnect () { - return miband3Driver.disconnect() - }, - - /** - * Returns true if connected to a Miband3 - */ - async isConnected () { - return miband3Driver.isConnected() - }, - - /** - * Authenticates the phone with the Miband3 - * @param {boolean} full if true the full authentication is performed - */ - async authenticate (full) { - return miband3Driver.authenticate(full) - // return miband3Driver.stopAllNotifications() - }, - - /** - * Configures a Miband3 - * @param {Object} user a user configuration like { height: 180, weight: 80, dob: '1974-11-21', sex: 'male', language: 'en' } - * @param {number} hrFreq how often HR is measured in minutes - */ - async configure (user, hrFreq) { - // configures: - // user, language = EN, dateFormat = 'DD/MM/YYYY, hrFreq, wearLocation=LEFT - // displayOnlift = not [22:00 - 8:00], nightMode = [22:00 - 8:00], - // screens = [home, HR, status], HRsleep support = YES, timeFormat = 24G - - // Default settings - await miband3Driver.setLanguage('EN_en') - - await miband3Driver.setDateFormat(true) - - await miband3Driver.setDistanceType(false) - - await miband3Driver.setTimeFormat('24h') - - // Synch phone time with miband watch time - await miband3Driver.setCurrentTimeStatus() - - // Setting night mode between 22:00 and 8:00 - let dateStartHour = new Date() - dateStartHour.setHours(20) - dateStartHour.setMinutes(0) - let dateEndHour = new Date() - dateEndHour.setHours(8) - dateEndHour.setMinutes(0) - await miband3Driver.setNightMode(dateStartHour, dateEndHour) - - await miband3Driver.setHRSleepSupport(true) - - // setting screen pages - let screens = ['heartRate', 'status'] - await miband3Driver.setupScreens(screens) - // Maybe we need to expose the HR functionality to a third party?, i'm guessing this may be the case. - // Dario: NO, do not expose. - - // User supplied settings - await miband3Driver.setHeartRateMeasurementInterval(hrFreq) - - // make sure thee DOB is a date - let DOB = new Date(user.dob) - await miband3Driver.setUser( - user.height, - user.weight, - DOB.getFullYear(), - DOB.getMonth() + 1, - DOB.getDate(), - user.sex === 'female' // false for male - ) - return miband3Driver.stopAllNotifications() // TODO: Seems to work here, but not in authenticate(), why? - }, - - /** - * Retrieves information about the device - */ - async getDeviceInfo () { - let time = await miband3Driver.getTimeStatus() - let battery = await miband3Driver.getBatteryStatus() - let hardware = await miband3Driver.getHardwareInfo() - let software = await miband3Driver.getSoftwareInfo() - let serialNumber = await miband3Driver.getSerialNumber() - // let serialNr = await miband3.getSerialNumber() needs to be implemented - return Promise.resolve({ - id: miband3Driver.deviceId, - serialNumber: serialNumber, - battery: battery, // Object with battery status data - hwVersion: hardware, - swVersion: software, - clock: time - }) - }, - - /** - * Retrieves the data stored on the tracker - * @param {Date} startDate a JS Date object from which we want to retrieve the data - * @param {Function} cbk called at every sample of data retrieved - */ - async getStoredData (startDate, cbk) { - function interfaceCallback (data) { // Filters the noisy heart rate values, eg 0 and 255. - if (data.hr === 0 || data.hr === 255) { - data.hr = Number.NaN - } - if (data.date.getTime() > startDate.getTime()) cbk(data) // Filter our the dates that are previous to our startDate - } - return miband3Driver.fetchStoredData(startDate, interfaceCallback) - }, - - /** - * Starts live streaming of heart rate - * @param {function} callback retrieves the heart rate, as a single number - */ - async startLiveHR (callback) { - return miband3Driver.startHRContinuousMonitoring(callback) - }, - - /** - * Stops streaming heart rate - */ - async stopLiveHR () { - return miband3Driver.stopHRMonitoring() - } -} diff --git a/src/modules/miband3/miband3.mock.js b/src/modules/miband3/miband3.mock.js deleted file mode 100755 index ea8f0516..00000000 --- a/src/modules/miband3/miband3.mock.js +++ /dev/null @@ -1,178 +0,0 @@ -'use strict' - -// this module emulates a Mibadn3 fitness tracker - -const SEARCH_FAIL = false -const CONNECT_FAIL = false -const STOREDDATA_FAIL = false -const NO_DATA_FAIL = false - -export default { - liveHRTimer: undefined, - /** - * Finds Miband3s - * If a timeout ocurrs, the promise is rejected - * @param {Number} timeout max number of milliseconds to search for a Miband3 - */ - async search (searchTime) { - if (SEARCH_FAIL) { - return Promise.reject() - } - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve([ - { - id: '00:11:22:33:FF:EE', - rssi: 200 - }, - { - id: '01:22:32:43:1D:09', - rssi: 100 - } - ]) - }, searchTime) - }) - }, - async searchForId (deviceId, searchTime) { - if (SEARCH_FAIL) { - return Promise.reject() - } - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve({ - id: deviceId, - rssi: 200 - }) - }, 2000) - }) - }, - /** - * Connects to a MiBand3 - * @param {Object} device a device object as returned by search() + can contain an authentication key - * @param {Function} disconnectCallback called if the device is disconnected - */ - async connect (device, disconnectCallback) { - if (!device) throw new Error('Valid device must be passed in connect()') - if (CONNECT_FAIL) return Promise.reject() - return new Promise((resolve, reject) => { - setTimeout(() => { - device.key = 'ababababababa' - device.connected = true - resolve(true) - }, 1000) - }) - }, - /** - * Disconnects from the tracker - */ - async disconnect () { - return Promise.resolve(true) - }, - /** - * Returns true if connected to a Miband3 - */ - async isConnected () { - return Promise.resolve(true) - }, - /** - * Authenticates a Miband3 - * @param {boolean} full if true requries a full authentication - */ - async authenticate (full) { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve(true) - }, 3000) - }) - }, - - /** - * Configures a Miband3 - * @param {Object} user a user configuration like { height: 180, weight: 80, dob: '1974-11-21', sex: 'male' } - * @param {number} hrFreq how often HR is measured in minutes - */ - async configure (user, hrFreq) { - return Promise.resolve(true) - }, - /** - * Retrieves information about the device - */ - async getDeviceInfo () { - return Promise.resolve({ - id: '00:11:22:33:FF:EE', - serialNumber: '180a-555-333', - battery: { - chargeLevel: 80, - currentlyCharging: 0, - lastChargedDate: new Date(), - numOfCharges: 4, - amountCharged: 50 - }, - charging: false, - swVersion: '11', - hwVersion: '3', - serialNumebr: 'asdasd' - }) - }, - /** - * Retrieves the data stored on the tracker - * @param {Date} startDate a JS Date object from which we want to retrieve the data - * @param {Function} cbk called at every sample of data retrieved - */ - async getStoredData (startDate, cbk) { - if (STOREDDATA_FAIL) return Promise.reject() - return new Promise((resolve, reject) => { - let amountPackages = 0 - let interval = setInterval(() => { - if (NO_DATA_FAIL) { - clearInterval(interval) - resolve() - return - } - for (let i = 0; i < 10; i++) { - ++amountPackages - let ran = this.randomNum(3) - let activity = 0 - if (ran === 1) activity = 98 // sedentary - else if (ran === 2) activity = 92 // sedentary - else if (ran === 3) activity = 112 // sleep - - cbk({ - date: new Date(startDate.getTime() + amountPackages * 60000), - activityType: activity, - intensity: this.randomNum(10), - steps: this.randomNum(20), - hr: this.randomNum(100), - buffer: new ArrayBuffer(8) - }) - } - if (amountPackages === 1440) { - clearInterval(interval) - resolve() - } - }, 10) - }) - }, - randomNum (max) { - return 1 + Math.floor(Math.random() * Math.floor(max)) - }, - /** - * Starts live streaming of heart rate - * @param {function} callback retrieves the heart rate, as a single number - */ - async startLiveHR (callback) { - this.liveHRTimer = setInterval(() => { - for (let i = 0; i < 10; i++) { - callback(Error.Error, (60 + Math.floor(Math.random() * 15))) - } - }, 1000) - return Promise.resolve(true) - }, - /** - * Stops streaming heart rate - */ - async stopLiveHR () { - clearInterval(this.liveHRTimer) - return Promise.resolve(true) - } -} diff --git a/src/modules/miband3/miband3ActivityTypeEnum.js b/src/modules/miband3/miband3ActivityTypeEnum.js deleted file mode 100755 index 137eeff8..00000000 --- a/src/modules/miband3/miband3ActivityTypeEnum.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * This provides an identifier for the activity type index recorded - * by the Miband3 - * @param {index} index the activity type index - */ -export function getStringIdentifier (index) { - switch (index) { - case 1: - case 16: - return 'walk' - case 3: - return 'not_worn' - case 6: - return 'charging' - case 80: - case 90: - case 89: - case 91: - case 92: - case 96: - return 'sedentary' - case 98: - case 82: - return 'running' - case 17: - return 'activity_high' - case 106: - case 112: - case 121: - case 122: - case 123: - return 'sleep' - default: - return 'unknown' - } -} diff --git a/src/modules/notifications/notifications.js b/src/modules/notifications/notifications.js deleted file mode 100755 index 43ef539b..00000000 --- a/src/modules/notifications/notifications.js +++ /dev/null @@ -1,31 +0,0 @@ - -export default { - async hasPermission () { - return new Promise((resolve, reject) => { - cordova.plugins.notification.local.hasPermission(resolve) - }) - }, - async requestPermission () { - return new Promise((resolve, reject) => { - // notification.registerPermission(resolve) ??? - cordova.plugins.notification.local.requestPermission(resolve) - }) - }, - async schedule (obj) { - return new Promise((resolve, reject) => { - cordova.plugins.notification.local.schedule(obj, resolve) - }) - }, - async cancelAll () { - return new Promise((resolve, reject) => { - cordova.plugins.notification.local.cancelAll(resolve) - }) - }, - registerNotificationsListener (callback, scope) { - // Possible events: add, trigger, click, clear, cancel, update, clearall and cancelall - cordova.plugins.notification.local.on('trigger', callback, scope) - }, - unregisterNotificationsListener (callback, scope) { - cordova.plugins.notification.local.un('trigger', callback, scope) - } -} diff --git a/src/modules/notifications/notifications.mock.js b/src/modules/notifications/notifications.mock.js deleted file mode 100755 index ea924d43..00000000 --- a/src/modules/notifications/notifications.mock.js +++ /dev/null @@ -1,75 +0,0 @@ -import { Dialog } from 'quasar' - -// Mock of the notifications, uses the browser notifcations API -export default { - timeoutIDs: [], - isAuthorized: false, - clickListener: undefined, - async hasPermission () { - return this.isAuthorized - }, - async requestPermission () { - if (!this.isAuthorized) { - return new Promise((resolve, reject) => { - Dialog.create({ - title: 'Confirm', - message: 'Allow this app to send notifications?', - cancel: true, - persistent: true - }).onOk(() => { - this.isAuthorized = true - resolve(this.isAuthorized) - }).onCancel(() => { - this.isAuthorized = false - resolve(this.isAuthorized) - }).onDismiss(() => { - this.isAuthorized = false - resolve(this.isAuthorized) - }) - }) - } else return true - }, - async schedule (obj) { - for (let not of obj) { - let millis = not.trigger.at.getTime() - (new Date().getTime()) - if (millis < 0) { - // discard the notification, it's in the past - continue - } - if (millis <= 2147483647) { - console.log('NOTIFICATIONS - scheduling', not) - // time difference in millis from trigger.at and now - let timeoutID = setTimeout(() => { - console.log('NOTIFICATIONS - trigger!') - Dialog.create({ - title: 'Notification', - message: not.text, - cancel: true, - persistent: true - }).onOk(() => { - console.log('accepted', this) - console.log(this.clickListener) - if (this.clickListener) this.clickListener() - }) - }, millis) - this.timeoutIDs.push(timeoutID) - } else { - // console.info('Notification too far in the future: ' + (millis / 86400000)) - } - } - }, - async cancelAll () { - for (let timeoutID of this.timeoutIDs) { - clearTimeout(timeoutID) - } - console.log('NOTIFICATIONS - all notifications cancelled') - }, - registerNotificationsListener (callback, scope) { - this.clickListener = callback - this.clickListener.bind(scope) - console.log('added notification listener', this.me) - }, - unregisterNotificationsListener (callback, scope) { - this.clickListener = undefined - } -} diff --git a/src/modules/notifications/notifications.web.js b/src/modules/notifications/notifications.web.js deleted file mode 100755 index f4100196..00000000 --- a/src/modules/notifications/notifications.web.js +++ /dev/null @@ -1,56 +0,0 @@ -// Browser notifcations API -export default { - timeoutIDs: [], - clickListener: undefined, - async hasPermission () { - let isgranted = Notification.permission === 'granted' - console.log('NOTIFICATIONS - permission for notifications?', isgranted) - return isgranted - }, - async requestPermission () { - return new Promise((resolve, reject) => { - Notification.requestPermission(function (permission) { - let isgranted = (permission === 'granted') - console.log('NOTIFICATIONS - requesting permission for notifications, granted?', isgranted) - resolve(isgranted) - }) - }) - }, - async schedule (obj) { - for (let not of obj) { - let millis = not.trigger.at.getTime() - Date.now() - if (millis < 0) { - // discard the notification, it's in the past - continue - } - console.log('NOTIFICATIONS - scheduled ' + not.trigger.at + ' in ' + millis, not) - if (millis <= 2147483647) { - let timeoutID = setTimeout(function () { - if (Notification && Notification.permission === 'granted') { - new Notification('Mobistudy', { - body: not.text - }).addEventListener('click', () => { - this.clickListener() - }) - } - }, millis) // time difference in millis from trigger.at and now - this.timeoutIDs.push(timeoutID) - } else { - // console.info('Notification too far in the future: ' + (millis / 86400000)) - } - } - }, - async cancelAll () { - for (let timeoutID of this.timeoutIDs) { - clearTimeout(timeoutID) - } - console.log('NOTIFICATIONS - all notifications cancelled') - }, - registerNotificationsListener (callback, scope) { - this.clickListener = callback - this.clickListener.bind(scope) - }, - unregisterNotificationsListener (callback, scope) { - this.clickListener = undefined - } -} diff --git a/src/modules/outdoorDistance.js b/src/modules/outdoorDistance.js deleted file mode 100755 index 67bb7947..00000000 --- a/src/modules/outdoorDistance.js +++ /dev/null @@ -1,201 +0,0 @@ -/** -* Six Minute Walk Test algorithm for the outdoor test. -* Based on https://mhealth.jmir.org/2020/1/e13756/ -* @param {number} selectEverySecs - seconds after which coordinates are selected for accumulating the distance -* @param {number} maxspeed - maximum allowable speed for a person (discards what is above that) in m/s -*/ -export default { - // maximum allowable speed - MAX_SPEED: 2, - - // minimum accuracy to be used to pass the signal check routine - CHECKSIGNAL_MINACCURACY: 15, - - // period, in seconds, when to select a sample - SELECTION_PERIOD: 5, - - // holder of all positions - positions: [], - // holder of a selected number of positions - selectedPositions: [], - - // total "official" distance - distance: 0, - // last approximate distance used for showing - showdistance: 0, - - // tells if the actual test has started - started: false, - - /** - * Tells the algorithm that the test has officially started - * @param ts: the timestamp (for testing purposes), not mandatory - */ - startTest: function (ts) { - this.distance = 0 - this.started = true - this.selectedPositions = [] - // select the starting position - let selected = this.selectPosition(this.positions[0].timestamp, this.SELECTION_PERIOD / 4) - if (!selected) { // if there is no candidate for selection just use the last one - selected = this.positions[0] - } - this.selectedPositions.unshift(selected) - }, - - /** Tells the algorithm that the test has officially ended - */ - stopTest: function () { - this.started = false - // if there were no steps, then just give zero - if (this.positions[0].steps !== undefined && this.positions[0].steps === 0) { - this.distance = 0 - return - } - - // last update of the distance - var selected = this.selectPosition(this.positions[0].timestamp, 10) // for the last sample, let's try to focus on the last 10 seconds - if (!selected) { // if there is no candidate for selection, well, then just use the last one - selected = this.positions[0] - } - if (selected.timestamp !== this.selectedPositions[0].timestamp) { // it may happen that it was already selected - this.distance += this.crowDist(this.selectedPositions[0], selected) - this.selectedPositions.unshift(selected) - } - }, - - /** Resest the internals of the algorithm - */ - reset: function () { - this.distance = 0 - this.showdistance = 0 - this.started = false - this.positions = [] - this.selectedPositions = [] - }, - - /** - * A position is available and has to be computed - * @param position: the position object, like { timestamp: ttt, coords: {longitude: xx, latitude: yy, accuracy: zz,a ltitude: bbb}, steps: ss}, steps can be undefined or null! - * @return for debugging purposes, returns true if the sample was selected - */ - addPosition: function (position) { - this.positions.unshift(position) - - if (this.started) { - // selection criterium - if ((position.timestamp - this.selectedPositions[0].timestamp) >= (this.SELECTION_PERIOD * 1000)) { - // select the best one within a reasonable time window - let selected = this.selectPosition(position.timestamp, this.SELECTION_PERIOD / 4) - if (selected) { - this.distance += this.crowDist(this.selectedPositions[0], selected) - this.selectedPositions.unshift(selected) - return true - } - } - } - return false - }, - - /** - * Tells if the signal is of enough quality - */ - isSignalOK: function () { - // we define "enough quality" when there is altitude (means that the GPS is on) - // and the accuracy is less than CHECKSIGNAL_MINACCURACY - if (this.positions.length === 0) return false - let lastP = this.positions[0] - return lastP && (lastP.coords.altitude) && (lastP.coords.accuracy <= this.CHECKSIGNAL_MINACCURACY) - }, - - /** - * Computes the latest available distance - * if the test is not stopped it will give the best effort estimation - */ - getDistance: function () { - if (this.started) { - // if there are no new steps, freeze the distance - if ((this.positions.length > 1) && (this.positions[0].steps || (this.positions[0].steps === 0)) && ((this.positions[0].steps - this.positions[1].steps) === 0)) { - return this.showdistance - } - let d = this.crowDist(this.selectedPositions[0], this.positions[0]) - this.showdistance = this.distance + d - return this.showdistance - } else { - // when not running, give the official one - return this.distance - } - }, - - // gives the distance between two points in direct line (crow flight distance) - // latitude and longitude are in decimal degrees - // returns the distance in meters - crowDist: function (point1, point2) { - let lat1 = point1.coords.latitude - let lat2 = point2.coords.latitude - let lon1 = point1.coords.longitude - let lon2 = point2.coords.longitude - let R = 6371 // km - let dLat = this.toRad(lat2 - lat1) - let dLon = this.toRad(lon2 - lon1) - lat1 = this.toRad(lat1) - lat2 = this.toRad(lat2) - - let a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + - Math.sin(dLon / 2) * Math.sin(dLon / 2) * Math.cos(lat1) * Math.cos(lat2) - let c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)) - let d = R * c - return d * 1000 - }, - - // Converts numeric degrees to radians - toRad: function (Value) { - return Value * Math.PI / 180 - }, - - // selects the best position in this moment - // time: current time, as Unixtimestamp - // secs: how big can the time window be - selectPosition: function (time, secs) { - // if there are no new steps, don't compute distance - if ((this.positions.length > 1) && this.positions[0].steps && ((this.positions[0].steps - this.positions[1].steps) === 0)) { - return null - } - - // use the best sample within secs - // "best" is the one with highest accuracy and that does not suppose extreme speeds (>10Km hour) - let bestAccuracy = 10000 - let bestAccuracyI = -1 - - for (let i = 0; i < this.positions.length; i++) { - let pos = this.positions[i] - if (time - pos.timestamp > (secs * 1000)) { - // we don't have to go further - if (bestAccuracyI >= 0) { - // there's a candidate - return this.positions[bestAccuracyI] // returns the one with the best accuracy - } else { // there are no suitable options in this time window :( - return null - } - } - if (pos.coords.accuracy < 5) { - return pos // that's enough accuracy! no need to go further - } - // compute speed since last selected point - let speed = 0 - if (this.selectedPositions.length > 0) { // (only possible when there is at least one selected) - speed = this.crowDist(pos, this.selectedPositions[0]) / ((time - this.selectedPositions[0].timestamp) / 1000) // m/s - } - if (speed < this.MAX_SPEED) { - if (pos.coords.accuracy < bestAccuracy) { - bestAccuracy = this.positions[i].coords.accuracy - bestAccuracyI = i - } - } else { - // just ignore this point - // console.log('what a jump! speed: '+speed, pos); - } - } - return this.positions[bestAccuracyI] - } -} diff --git a/src/modules/passwordChecker.js b/src/modules/passwordChecker.js deleted file mode 100755 index eb1d7414..00000000 --- a/src/modules/passwordChecker.js +++ /dev/null @@ -1,136 +0,0 @@ -import zxcvbn from 'zxcvbn' -import owasp from 'owasp-password-strength-test' - -const config = { - allowPassphrases: true, - maxLength: 70, - minLength: 8, - minPhraseLength: 10, - minOptionalTestsToPass: 3 -} - -owasp.config(config) - -export let owaspConfig = config - -// vuelidator validator with parameter (email) -// see https://vuelidate.js.org/#sub-extra-parameters -export function checkPwdStrength (email) { - return (pwd) => { - if (!pwd) return false - if (email) { - // check if password includes name in email - let i = email.indexOf('@') - if (i > 0) { - let userName = email.substring(0, i) - if (pwd.toUpperCase().includes(userName.toUpperCase())) { - return false - } - } - } - if (!owasp.test(pwd).strong) return false - - let strengthCheck = zxcvbn(pwd) - if (strengthCheck.score < 2) return false - - return true - } -} - -function owasp2tokens (ow) { - if (ow.indexOf('The password must be at least') !== -1) { - return 'passwordCheck.minChars' - } - if (ow.indexOf('The password must be fewer than') !== -1) { - return 'passwordCheck.maxChar' - } - if (ow.indexOf('The password may not contain sequences of three or more repeated characters.') !== -1) { - return 'passwordCheck.noRepeat' - } - if (ow.indexOf('The password must contain at least one lowercase letter') !== -1) { - return 'passwordCheck.lowerCase' - } - if (ow.indexOf('The password must contain at least one uppercase letter') !== -1) { - return 'passwordCheck.upperCase' - } - if (ow.indexOf('The password must contain at least one number') !== -1) { - return 'passwordCheck.number' - } - if (ow.indexOf('The password must contain at least one special character') !== -1) { - return 'passwordCheck.specialChar' - } -} - -function zxcvbn2tokens (zx) { - if (zx.indexOf('Straight rows of keys are easy to guess') !== -1) { - return 'passwordCheck.noKeysRow' - } - if (zx.indexOf('Short keyboard patterns are easy to guess') !== -1) { - return 'passwordCheck.noShortPattern' - } - if (zx.indexOf('Repeats like "aaa" are easy to guess') !== -1) { - return 'passwordCheck.noRepeat2' - } - if (zx.indexOf('Repeats like "abcabcabc"') !== -1) { - return 'passwordCheck.noRepeat3' - } - if (zx.indexOf('Sequences like abc or 6543 are easy to guess') !== -1) { - return 'passwordCheck.noSequence' - } - if (zx.indexOf('Recent years are easy to guess') !== -1) { - return 'passwordCheck.noRecentYear' - } - if (zx.indexOf('Dates are often easy to guess') !== -1) { - return 'passwordCheck.noDate' - } - if (zx.indexOf('This is a top-10 common password') !== -1) { - return 'passwordCheck.noTop10' - } - if (zx.indexOf('This is a top-100 common password') !== -1) { - return 'passwordCheck.noTop100' - } - if (zx.indexOf('This is a very common password') !== -1) { - return 'passwordCheck.noCommonPwd' - } - if (zx.indexOf('This is similar to a commonly used password') !== -1) { - return 'passwordCheck.noCommonPwdSimilar' - } - if (zx.indexOf('A word by itself is easy to guess') !== -1) { - return 'passwordCheck.no1Word' - } - if (zx.indexOf('Names and surnames by themselves are easy to guess') !== -1) { - return 'passwordCheck.noNames' - } - if (zx.indexOf('Common names and surnames are easy to guess') !== -1) { - return 'passwordCheck.noNames' - } -} - -export function pwdCheckError (email, pwd) { - if (!pwd) return 'passwordCheck.tooShort' - if (email) { - // check if password includes name in email - let i = email.indexOf('@') - if (i > 0) { - let userName = email.substring(0, i) - if (pwd.toUpperCase().includes(userName.toUpperCase())) { - return 'passwordCheck.noEmail' - } - } - } - let result = owasp.test(pwd) - if (!result.strong) { - return owasp2tokens(result.errors[0]) - } else { - result = zxcvbn(pwd) - if (result.feedback) { - let mesg = 'passwordCheck.tooSimple' - if (result.feedback.warning) mesg = zxcvbn2tokens(result.feedback.warning) - // uncomment this code to show also suggestions - // if (result.feedback.suggestions && result.feedback.suggestions.length) { - // mesg += '.\nSuggestion: ' + result.feedback.suggestions[0] - // } - return mesg - } else return 'passwordCheck.ok' - } -} diff --git a/src/modules/peakflow/peakflow.js b/src/modules/peakflow/peakflow.js deleted file mode 100644 index 59763f81..00000000 --- a/src/modules/peakflow/peakflow.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict' - -// smart peak flow meter cordova-plugin -export default { - - /** - * Requests permission to access the microphone - */ - async requestPermission () { - return new Promise((resolve, reject) => { - if (!cordova.plugins.spf) reject(new Error('Cordova spf is not installed')) - cordova.plugins.spf.requestPermissions(resolve, reject) - }) - }, - - /** - * Starts the calibration process, the promise is resolved once the process is completed - */ - async startCalibration (maxTime) { - return new Promise((resolve, reject) => { - if (!cordova.plugins.spf) reject(new Error('Cordova spf is not installed')) - cordova.plugins.spf.startCalibration(resolve, reject) - setTimeout(() => { - cordova.plugins.spf.stopCalibration(reject(new Error('Calibration reached maxTime')), - reject(new Error('Error in stopping calibration'))) - }, maxTime) - }) - }, - - /** - * Stops the calibration process - */ - async stopCalibration () { - return new Promise((resolve, reject) => { - if (!cordova.plugins.spf) reject(new Error('Cordova spf is not installed')) - cordova.plugins.spf.stopCalibration(resolve, reject) - }) - }, - - /** - * Starts the peak flow measurement, promise is resolved when the measurement is completed - */ - async startMeasurement () { - return new Promise((resolve, reject) => { - if (!cordova.plugins.spf) reject(new Error('Cordova spf is not installed')) - - // set a timeout in case the plugin does not callback - let timerID = setTimeout(() => { - cordova.plugins.spf.stopMeasurement() - reject('Timeout') - }, 30000) - - cordova.plugins.spf.startMeasurement((message) => { - console.log(message) - clearTimeout(timerID) - timerID = setTimeout(() => { - cordova.plugins.spf.stopMeasurement() - reject('Timeout') - }, 5000) - - if (message.state === 'completed') { - clearTimeout(timerID) - resolve({ - pef: message.peakFlowRate - }) - } - }, reject) - }) - }, - - /** - * Stops the peak flow measurements - */ - async stopMeasurement () { - return new Promise((resolve, reject) => { - if (!cordova.plugins.spf) reject(new Error('Cordova spf is not installed')) - cordova.plugins.spf.stopMeasurement(resolve, reject) - }) - } -} diff --git a/src/modules/peakflow/peakflow.mock.js b/src/modules/peakflow/peakflow.mock.js deleted file mode 100644 index c3246e21..00000000 --- a/src/modules/peakflow/peakflow.mock.js +++ /dev/null @@ -1,53 +0,0 @@ -import { Dialog } from 'quasar' - -// simulates a device that sends absurd data -const SEND_BADDATA = false - -// MOCK smart peak flow meter -export default { - - async requestPermission () { - // return Promise.resolve(false) - return new Promise((resolve, reject) => { - Dialog.create({ - title: 'Confirm', - message: 'Would you like to give access to the microphone?', - cancel: true, - persistent: true - }).onOk(() => { - resolve() - }).onCancel(() => { - reject() - }).onDismiss(() => { - reject() - }) - }) - }, - - async startCalibration () { - return new Promise((resolve, reject) => { - setTimeout(() => { - resolve() - }, 3000) - }) - }, - - async stopCalibration () { - return Promise.resolve() - }, - - async startMeasurement () { - return new Promise((resolve, reject) => { - setTimeout(() => { - let pef - if (SEND_BADDATA) pef = 12000 - else pef = 400 + Math.floor(Math.random() * 200) - resolve({ pef }) - }, 5000) - }) - }, - - async stopMeasurement () { - return Promise.resolve(true) - } -} diff --git a/src/modules/po60/CustomDate.js b/src/modules/po60/CustomDate.js deleted file mode 100755 index d677fa7d..00000000 --- a/src/modules/po60/CustomDate.js +++ /dev/null @@ -1,82 +0,0 @@ -// Could be implemented more simply but i wanted to try an iterator. - -class CustomDate { - constructor (date) { - this.date = date - this.dateFunctions = [ - this.date.getFullYear(), - this.date.getMonth() + 1, - this.date.getDate(), - this.date.getHours(), - this.date.getMinutes(), - this.date.getSeconds(), - this.date.getDay(), - this.makeMilliseconds() - ] - } - - makeMilliseconds () { // Needs a better way. How to represent milliseconds in 6 bytes as fractions? - return '000000' - } - - getDateByteArrayPO60 () { - const dateByteArray = [] - let count = 0 - for (let dateItem of this) { - if (count === 0) { - dateByteArray.push(dateItem - 2000) // If year is 2020, then one byte would contain the number 2020 - 2000 = 20 - count++ - } else { - dateByteArray.push(dateItem) - } - } - return dateByteArray - } - - getDateStringPacket () { - let dateStringPacket = '' - for (let dateItem of this) { - dateStringPacket += this.dateTimeToHex(dateItem) - } - return dateStringPacket - } - - dateTimeToHex (value) { - let hexValue = value.toString(16) - if (hexValue.length % 2 !== 0) { - hexValue = '0' + hexValue - } - if (hexValue.length === 4) { - // year - hexValue = hexValue.substring(2, 4) + hexValue.substring(0, 2) - } - return hexValue - } -} - -class CustomDateIterator { - constructor (customDate) { - this.customDate = customDate - this.dateFunctions = customDate.dateFunctions - this.startIndex = 0 - this.currentIndex = 0 - } - - next () { - let length = this.dateFunctions.length - if (this.currentIndex < length) { - return { - value: this.dateFunctions[this.currentIndex++], - done: false - } - } - this.currentIndex = this.startIndex - return { done: true } - } -} - -CustomDate.prototype[Symbol.iterator] = function () { - return new CustomDateIterator(this) -} - -export default CustomDate diff --git a/src/modules/po60/IPulseOxDevice.js b/src/modules/po60/IPulseOxDevice.js deleted file mode 100755 index 1add9aa0..00000000 --- a/src/modules/po60/IPulseOxDevice.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict' -import PulseOxDevice from 'modules/po60/PulseOxDevice' - -export default { - device: undefined, - deviceToSearch: 'PO60', - - async requestPermission () { - return PulseOxDevice.requestPermission() - }, - - async scan (searchTime) { - const foundDevices = await PulseOxDevice.scan(this.deviceToSearch, searchTime) - if (!foundDevices) return Promise.reject() - return foundDevices - }, - - async scanForId (deviceId, searchTime) { - const device = await PulseOxDevice.scanForId(deviceId, searchTime) - if (!device) return Promise.reject() - return device - }, - - async connect (device) { - if (!this.device) this.device = new PulseOxDevice(device) // Return the first device found - return this.device.connect() - }, - - async disconnect () { - if (!this.device) return Promise.reject() - return this.device.disconnect() - }, - - async isConnected () { - if (!this.device) return Promise.reject() - return this.device.isConnected() - }, - - async getAllData () { - if (!this.device) return Promise.reject() - return this.device.getAllData() - }, - - async getLatestData () { - if (!this.device) return Promise.reject() - return this.device.getLatestData() - } - -} diff --git a/src/modules/po60/IPulseOxDevice.mock.js b/src/modules/po60/IPulseOxDevice.mock.js deleted file mode 100755 index 41029805..00000000 --- a/src/modules/po60/IPulseOxDevice.mock.js +++ /dev/null @@ -1,82 +0,0 @@ -'use strict' -import BLEDevice from 'modules/bledevice/BLEDevice.mock.js' - -const NO_DATA_FAIL = false -const AMOUNT_OF_DATA = 10 - -export default { - device: undefined, - deviceToSearch: 'PO60', - - async requestPermission () { - return BLEDevice.requestPermission() - }, - - async scan (searchTime) { - try { - const devices = await BLEDevice.scan(this.deviceToSearch, searchTime) - return devices - } catch (error) { - console.log('Could not find device:', error) - } - }, - - async scanForId (deviceId, searchTime) { - return BLEDevice.scanForId(deviceId, searchTime) - }, - - async connect (device) { - this.device = new BLEDevice(device) - return this.device.connect() - }, - async disconnect () { - return this.device.disconnect() - }, - - async isConnected () { - return this.device.isConnected() - }, - - async getAllData () { - if (!this.device) return Promise.reject() - if (NO_DATA_FAIL) return Promise.reject() - const startTimestamp = new Date() - const endTimestamp = new Date(startTimestamp.getTime() + 5000) - let allData = [] - for (let i = 0; i < AMOUNT_OF_DATA; i++) { - allData.push({ - startTS: startTimestamp, - endTS: endTimestamp, - hrMax: this.randomNum(140, 160), - hrMin: this.randomNum(50, 80), - hrAvg: this.randomNum(50, 160), - SPO2Max: this.randomNum(90, 99), - SPO2Min: this.randomNum(50, 95), - SPO2Avg: this.randomNum(50, 99) - }) - } - return Promise.resolve(allData) - }, - - async getLatestData () { - if (!this.device) return Promise.reject() - if (NO_DATA_FAIL) return Promise.reject() - const startTimestamp = new Date() - const endTimestamp = new Date(startTimestamp.getTime + 5000) - let latestData = { - startTS: startTimestamp, - endTS: endTimestamp, - hrMax: this.randomNum(140, 160), - hrMin: this.randomNum(50, 80), - hrAvg: this.randomNum(50, 160), - spo2Max: this.randomNum(90, 99), - spo2Min: this.randomNum(50, 95), - spo2Avg: this.randomNum(50, 99) - } - return Promise.resolve(latestData) - }, - randomNum (min, max) { - return Math.floor(Math.floor(Math.random() * Math.floor(max - min)) + min) - } - -} diff --git a/src/modules/po60/PulseOxDevice.js b/src/modules/po60/PulseOxDevice.js deleted file mode 100755 index 2c342076..00000000 --- a/src/modules/po60/PulseOxDevice.js +++ /dev/null @@ -1,161 +0,0 @@ -import BLEDevice from 'modules/bledevice/BLEDevice' -import CustomDate from './CustomDate' - -export default class PulseOxDevice extends BLEDevice { - SERVICE_UUID = 'ff12' - READ_CHAR_UUID = 'ff02' - WRITE_CHAR_UUID = 'ff01' - buffer = [] - - async setDateTime () { - let currentDate = new Date() - let customDate = new CustomDate(currentDate) - let dateByteArray = customDate.getDateByteArrayPO60() - - dateByteArray.splice(5) - - let packetByteArray = [] - packetByteArray = packetByteArray.concat(dateByteArray) - - let randomBytes = [5, 5, 5] - packetByteArray = packetByteArray.concat(randomBytes) - - const checkSum = dateByteArray[0] + 131 + dateByteArray[1] + dateByteArray[2] + dateByteArray[3] + dateByteArray[4] + 15 - const finalByte = (checkSum & 127) - packetByteArray.push(finalByte) - - const firstByte = -125 - packetByteArray.unshift(firstByte) - - const finalPacket = new Uint8Array(packetByteArray) - return super.writeWithoutResponse(finalPacket) - } - async getFirstData () { - const byteArray = new Uint8Array([-103, 0, 25]) - return super.writeWithoutResponse(byteArray) - } - async getNextData () { - const byteArray = new Uint8Array([-103, 1, 26]) - return super.writeWithoutResponse(byteArray) - } - async getAllData () { - return new Promise((resolve, reject) => { - this.disconnectCallback = reject - window.ble.startNotification(this.deviceId, this.SERVICE_UUID, this.READ_CHAR_UUID, dataResponse => { - let responseArray = Buffer.from(dataResponse) - if (responseArray.length > 0 && responseArray[0] === 243 && responseArray[1] === 0) { - this.getFirstData() - } else { - this.addToRecord(responseArray) - if (this.isAllDataTransferred()) { - const record = this.assembleFinalRecord() - this.buffer = [] - resolve(record) - this.disconnectCallback = undefined - this.disconnect() - return - } - if (this.buffer.length % 12 === 0) this.getNextData() - } - }) - this.setDateTime() - }) - } - async getLatestData () { - let record = await this.getAllData() - let latestRecord = record[record.length - 1] - return latestRecord - } - addToRecord (array) { - this.buffer = this.buffer.concat(Array.from(array)) - } - isAllDataTransferred () { - for (let i = 0; i < this.buffer.length; i++) { - if (this.buffer[i] !== 233) continue - if ((i + 1) > this.buffer.length) continue // Checks if arrayOutOfBounds - - const nextValueHex = this.paddHex(this.buffer[i + 1].toString(16)) - const remainingValues = (this.buffer.length - 1) - i - if (nextValueHex.charAt(0) === '4' && remainingValues === 23) return true - } - return false - } - paddHex (hexValue) { - let paddedHexValue = '' - if (hexValue.length % 2 !== 0) { - paddedHexValue += '0' + hexValue - } else { - return hexValue - } - return paddedHexValue - } - assembleFinalRecord () { - // Divides up the buffer into arrays with 24 bytes each - if (this.buffer.length === 0) return // Record is empty - let assembledRecord = [] - let currentRecord = [] - for (let i = 0; i < this.buffer.length; i++) { - if ((i !== 0 && this.buffer[i] === 233) || i === this.buffer.length - 1) { // Every 24 data points - if (i === this.buffer.length - 1) currentRecord.push(this.buffer[i]) - assembledRecord.push(currentRecord) - currentRecord = [] - } - currentRecord.push(this.buffer[i]) - } - // Creates an array of objects with the relevant data inside of each array of 24 bytes. - let record = [] - for (let measurement of assembledRecord) { - let measurementObject = {} - Object.assign(measurementObject, this.getTimestampValues(measurement)) - Object.assign(measurementObject, this.getHRValues(measurement)) - Object.assign(measurementObject, this.getSPO2Values(measurement)) - record.push(measurementObject) - } - return record - } - getHRValues (measurement) { - let HRValues = { - hrMax: measurement[20], - hrMin: measurement[21], - hrAvg: measurement[22] - } - return HRValues - } - getSPO2Values (measurement) { - let SPO2Values = { - spo2Max: measurement[17], - spo2Min: measurement[18], - spo2Avg: measurement[19] - } - return SPO2Values - } - getTimestampValues (measurement) { - const startTimestamp = this.getStartTimestamp(measurement) - const endTimestamp = this.getEndTimestamp(measurement) - let timestampValues = { - startTS: startTimestamp, - endTS: endTimestamp - } - return timestampValues - } - getStartTimestamp (measurement) { - const year = measurement[2] + 2000 - const month = measurement[3] - 1 - const day = measurement[4] - const hour = measurement[5] - const minute = measurement[6] - const second = measurement[7] - const startTimestamp = new Date(year, month, day, hour, minute, second) - return startTimestamp - } - getEndTimestamp (measurement) { - const year = measurement[8] + 2000 - const month = measurement[9] - 1 - const day = measurement[10] - const hour = measurement[11] - const minute = measurement[12] - const second = measurement[13] - const endTimestamp = new Date(year, month, day, hour, minute, second) - return endTimestamp - } -} diff --git a/src/modules/scheduler.js b/src/modules/scheduler.js deleted file mode 100755 index 08c2fd0c..00000000 --- a/src/modules/scheduler.js +++ /dev/null @@ -1,420 +0,0 @@ -import { i18n } from '../boot/i18n.js' -import { RRule } from 'rrule' -import notifications from 'modules/notifications/notifications' -import { Platform } from 'quasar' -import HealthDataEnum from './healthDataTypesEnum' - -function toUTC (d) { - if (!d) return null - return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())) -} - -function fromUTC (d) { - if (!d) return null - return new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()) -} - -/** - * Generates an array of tasks that need to be done today. - * These are tasks that were "missed" between the last execution and the end of - * today and those that are to be done by the end of today. - * Params: - * @param { Object } studiesParts - the participation to studies - * @param { Object } studiesDescr - description of the studies, at least those that have been consented - * @return returns an object with: - * upcoming: an array of {type: 'form', studyKey: '2121', taskId: 1, missed: false, due: '2019-04-02'} - * missed: an array of {type: 'form', studyKey: '2121', taskId: 1, missed: true, due: '2019-04-02'} - * alwaysOn: an array of {type: 'form', studyKey: '2121', taskId: 1, alwaysOn: true, due: '2019-04-02'} - * if there is a study that has been completed because no tasks are to be done - * then the returned object also contains: - * completedStudyAlert: an object like { studyTitle: { en: 'Mystudy' }, studyPart: participation object for that study } -**/ -export function generateTasker (studiesParts, studiesDescr) { - let taskerItems = { - upcoming: [], - missed: [], - alwaysOn: [] - } - for (const studyPart of studiesParts) { - if (studyPart.currentStatus === 'accepted') { - let studyDescr = studiesDescr.find(sd => { - return sd._key === studyPart.studyKey - }) - // if we are beyond end date of the study, study should be marked as completed - if (new Date().toISOString() > studyDescr.generalities.endDate + 'T23:59:59') { - taskerItems.completedStudyAlert = { - studyTitle: studyDescr.generalities.title, - studyPart: studyPart - } - // no need to analyse this study further - continue // to the next study - } - const consentedTasks = studyDescr.tasks.filter((tdescr) => { - const taskPart = studyPart.taskItemsConsent.find(x => (x.taskId === tdescr.id)) - if (taskPart) return taskPart.consented - else return false - }) - - // if studyCompleted is true, then there are no more tasks to be executed within this study - // it means that the study is completed for this user - // if this happens an extra property is added to the returned object - let studyCompleted = true - - for (const taskDescription of consentedTasks) { - // filter out tasks that are not relevant for this operating system - if (taskDescription.type === 'dataQuery') { - if (Platform.is.ios && HealthDataEnum.isAndroidOnly(taskDescription.dataType)) continue - if (Platform.is.android && HealthDataEnum.isIOSOnly(taskDescription.dataType)) continue - } - let due = isTaskIntervalDue(taskDescription.scheduling, studyPart.acceptedTS, studyPart.taskItemsConsent) - if (!due) continue // task outside of time boundaries, do not include - // manage alwaysOn tasks here: - if (taskDescription.scheduling.alwaysOn) { - studyCompleted = false - let task = { - type: taskDescription.type, - studyKey: studyDescr._key, - taskId: taskDescription.id, - alwaysOn: true - } - if (taskDescription.type === 'form') { - task.formName = taskDescription.formName - task.formKey = taskDescription.formKey - } - if (taskDescription.customTitle) { - task.customTitle = taskDescription.customTitle - } - taskerItems.alwaysOn.push(task) - } else { - // manage non-always on tasks: - - let now = new Date() - let startOfToday = new Date() - startOfToday.setHours(0, 0, 0, 0) - let endOfToday = new Date() - endOfToday.setHours(23, 59, 59, 999) - - // RRrule will not show any instances.between if today's date is the same as end date. By adding one day this problem is solved. - let studyEndDate = new Date(new Date(studyDescr.generalities.endDate).getTime() + 1000 * 60 * 60 * 24) - let rrule = generateRRule(taskDescription.scheduling, studyPart, studyEndDate) - if (!rrule) continue // if the task should not start at all, go to the next task - - let instancesToEnd = rrule.between(toUTC(startOfToday), toUTC(studyEndDate)) - if (instancesToEnd.length > 0) { - studyCompleted = false - } - - // the time this task was completed last time is stored into the studyParticipation - // example: "taskItemsConsent": [ { "taskId": 1, "consented": true, "lastExecuted": "ISO string" } ] - let lastCompletionTS - if (studyPart.taskItemsConsent) { - const taskStatus = studyPart.taskItemsConsent.find(x => x.taskId === taskDescription.id) - if (taskStatus && taskStatus.lastExecuted) { - // Task has been completed before - lastCompletionTS = new Date(taskStatus.lastExecuted) - } - } - - let missed - // tasks are marked as "missed" only the day after - // all tasks that need to be executed today, even if the time has passed, as marked as upcomig - // therefore, they are executions between last time it was executed and start of today - // or between start of the study and start of today - if (lastCompletionTS) { - missed = rrule.between(toUTC(lastCompletionTS), toUTC(startOfToday)) - if (missed.length > 0) { - missed = fromUTC(missed[missed.length - 1]) - } else { - missed = null - } - } else { - // Task has never been completed - // get the last occurrence of the rrule before today - missed = fromUTC(rrule.before(toUTC(startOfToday))) - } - // Upcoming tasks are those that are scheduled from last time they were executed today and now - // or between the start of the day and now - let upcoming - if (lastCompletionTS && (lastCompletionTS > startOfToday)) { - upcoming = rrule.between(toUTC(lastCompletionTS), toUTC(now)) - } else { - upcoming = rrule.between(toUTC(startOfToday), toUTC(now)) - } - - if (upcoming.length > 0) { - // convert from UTC to local time - upcoming = fromUTC(upcoming[0]) - } else { - upcoming = null - } - let templateObj = { - type: taskDescription.type, - studyKey: studyDescr._key, - taskId: taskDescription.id - } - if (taskDescription.type === 'form') { - templateObj.formName = taskDescription.formName - templateObj.formKey = taskDescription.formKey - } - if (taskDescription.customTitle) { - templateObj.customTitle = taskDescription.customTitle - } - if (upcoming !== null) { - // upcoming executions of the task go into the upcoming array - taskerItems.upcoming.push(Object.assign({ missed: false, due: upcoming }, templateObj)) - } else if (missed !== null) { - // missed executions of the task go into the missed array - taskerItems.missed.push(Object.assign({ missed: true, due: missed }, templateObj)) - } - } - } - if (studyCompleted) { - taskerItems.completedStudyAlert = { - studyTitle: studyDescr.generalities.title, - studyPart: studyPart - } - } - } - } - return taskerItems -} - -/** - * Tells if the current time is included in the task scheduling interval - * @param {Object} scheduling - scheudling information from study description - * @param {String} acceptTime - when the task was accepted - * @param {Array} tasksParticipation - array containing information about the participation into the tasks, similar to taskItemsConsent - * example: { taskId: 1, consented: true, lastExecuted: "2019-02-27T12:46:07.294Z" } - */ -export function isTaskIntervalDue (scheduling, acceptTime, tasksParticipation) { - if (!acceptTime || !scheduling) throw new Error('both arguments must be specified in isAlwaysOnTaskDue') - let now = new Date() - let startTimeD - if (scheduling.startEvent === 'consent') { - startTimeD = new Date(acceptTime) - startTimeD.setHours(0, 0, 1) // we consider the DAY when it was consented, not the time - } else if (scheduling.startEvent === 'taskExecution') { - // find the last time the task was performed - if (scheduling.eventTaskId === undefined) throw new Error('scheduling with taskExecution event must specify a taskId') - let taskPart = tasksParticipation.find(t => t.taskId === scheduling.eventTaskId) - if (taskPart && taskPart.consented && taskPart.lastExecuted) { - startTimeD = new Date(taskPart.lastExecuted) - } else { - return false - } - } else { - throw new Error('The only start event recognised is consent') - } - if (scheduling.startDelaySecs) { - // add start delay - startTimeD = new Date(startTimeD.getTime() + (scheduling.startDelaySecs * 1000)) // Add seconds - } - if (scheduling.untilSecs) { - let untilTimeD = new Date(startTimeD.getTime() + scheduling.untilSecs * 1000) - // check if today is between start and until time - if (now > startTimeD && now < untilTimeD) return true - } else { - // only check if today is > start time - if (now > startTimeD) return true - } - return false -} - -/** -* generates an instance of RRule -* @param {Object} scheduling - scheudling information from study description -* @param {Date} studyPart - study participation object -* @param {Date} studyEnd - when the study ends -* @returns an RRULE or null if the task is not supposed to be scheduled -*/ -export function generateRRule (scheduling, studyPart, studyEnd) { - let startEventDate - - if (scheduling.startEvent === 'consent') { - startEventDate = new Date(studyPart.acceptedTS) - startEventDate.setHours(0, 0, 1) // add 1s to start so that it's not at midnight - } else if (scheduling.startEvent === 'taskExecution') { - // find the last time the task was performed - if (scheduling.eventTaskId === undefined) throw new Error('Scheduling with taskExecution event must specify a taskId') - let taskPart = studyPart.taskItemsConsent.find(t => t.taskId === scheduling.eventTaskId) - if (!taskPart) throw new Error('Scheduling with taskExecution with unused taskId ' + scheduling.eventTaskId) - if (!taskPart.lastExecuted) { - // the task should not start at all! return null - return null - } - startEventDate = new Date(taskPart.lastExecuted) - } else { - throw new Error('Start event ' + scheduling.startEvent + ' not recognsed') - } - - if (scheduling.startDelaySecs) { - // add start delay - startEventDate = new Date(startEventDate.getTime() + (1000 * scheduling.startDelaySecs)) // Add seconds - } - - let endDate = new Date(studyEnd) - if (scheduling.untilSecs) { - let untilTime = new Date(startEventDate.getTime() + (1000 * scheduling.untilSecs)) - if (untilTime < endDate) endDate = new Date(untilTime) - } - // Frequency - let freq - switch (scheduling.intervalType) { - case 'y': - freq = RRule.YEARLY - break - case 'm': - freq = RRule.MONTHLY - break - case 'w': - freq = RRule.WEEKLY - break - case 'd': - freq = RRule.DAILY - break - default: - throw new Error('No Frequency Specified') - } - // byweekday - let byweekday = [] - if (scheduling.weekDays) { - for (let k = 0; k < scheduling.weekDays.length; k++) { - switch (scheduling.weekDays[k]) { - case 'mo': - byweekday.push(RRule.MO) - break - case 'tu': - byweekday.push(RRule.TU) - break - case 'we': - byweekday.push(RRule.WE) - break - case 'th': - byweekday.push(RRule.TH) - break - case 'fr': - byweekday.push(RRule.FR) - break - case 'sa': - byweekday.push(RRule.SA) - break - case 'su': - byweekday.push(RRule.SU) - break - } - } - } - // Put into rrule config - let rruleObj = {} - rruleObj.dtstart = toUTC(startEventDate) // here needs to be converted to UTC to make things coherent - rruleObj.until = endDate - rruleObj.freq = freq - if (scheduling.interval && scheduling.interval) rruleObj.interval = scheduling.interval - if (scheduling.months && scheduling.months.length) rruleObj.bymonth = scheduling.months - if (scheduling.monthDays && scheduling.monthDays.length) rruleObj.bymonthday = scheduling.monthDays - if (byweekday && byweekday.length) rruleObj.byweekday = byweekday - if (scheduling.hours && scheduling.hours.length) rruleObj.byhour = scheduling.hours // .map(h => toUTCHours(h)) - if (scheduling.occurrences) rruleObj.count = scheduling.occurrences - - try { - return new RRule(rruleObj) - } catch (er) { - console.error('Error while parsing scheduling object', rruleObj) - console.error('Scheduling information: ', scheduling) - console.error('Study part, study end:', studyPart, studyEnd) - - throw er - } -} - -export function scheduleNotificationsAllStudies (studiesParts, studiesDescr) { - for (const studyPart of studiesParts) { - let acceptedTS = studyPart.acceptedTS - let studyDescr = studiesDescr.find(sd => { - return sd._key === studyPart.studyKey - }) - scheduleNotificationsSingleStudy(acceptedTS, studyDescr, studyPart) - } -} - -export async function cancelNotifications () { - return notifications.cancelAll() -} - -// Scheduling notifications can be slow, this is the maximum number of notifications that -// will be scheduled in one go per task -const MAX_NOTIFICATIONS = 20 - -export async function scheduleNotificationsSingleStudy (studyDescr, studyPart) { - let notificationStack = [] - let timeStack = [] - - for (const task of studyDescr.tasks) { - // find consented task - let consentedTask - if (studyPart.taskItemsConsent) { - consentedTask = studyPart.taskItemsConsent.find(x => x.taskId === task.id) - } - // skip tasks that have not been consented - if (consentedTask && !consentedTask.consented) continue - - if (task.type === 'dataQuery') { - if (Platform.is.ios && HealthDataEnum.isAndroidOnly(task.dataType)) continue - if (Platform.is.android && HealthDataEnum.isIOSOnly(task.dataType)) continue - } - if (task.scheduling.alwaysOn) continue // skip always ON tasks - - let rrule = generateRRule(task.scheduling, studyPart, studyDescr.generalities.endDate) - if (!rrule) continue - - // RRrule will not show any instances.between if today's date is the same as end date. By adding one day this problem is solved. - let studyEndDate = new Date(new Date(studyDescr.generalities.endDate).getTime() + 1000 * 60 * 60 * 24) - let now = new Date() - let taskTimesUTC = rrule.between(toUTC(now), toUTC(studyEndDate)) - - for (let scheduleI = 0; scheduleI < taskTimesUTC.length && scheduleI < MAX_NOTIFICATIONS; scheduleI++) { - let taskTime = fromUTC(taskTimesUTC[scheduleI]) - - // remove seconds from schedule - taskTime.setSeconds(0) - taskTime.setMilliseconds(0) - - // as for the schedule id, we could use the unix timestamp of the execution date as id, but we - // don't know how internally the ids are stored, so it's better to keep - // their length to less than 9 digits - // we generate the id by combining the study id, the task id and the single schedule - let id = '' - // study ids can be quite long, let's use only the final 4 digits - // hoping that a participant doesn't have 2 active studies with the same final 4 digits - if (studyDescr._key) { - let keyStr = studyDescr._key.toString() - id += keyStr.slice(-4) - } - id += task.id // tasks will rarely be more than 2 decimals - id += scheduleI // this is capped anyway - - // avoid pushing notifications exaclty at the same second - if (timeStack.indexOf(taskTime.getTime()) === -1) { - timeStack.push(taskTime.getTime()) - notificationStack.push({ - id: parseInt(id), - title: i18n.t('studies.scheduling.due'), - text: i18n.t('studies.scheduling.start'), - foreground: true, - trigger: { at: taskTime } - }) - } - } - } - await notifications.schedule(notificationStack) - - // use this to test notifications registration - // notifications.schedule([{ - // id: 100, - // text: 'test', - // title: 'testing', - // trigger: { - // at: new Date(Date.now() + 5000) - // } - // }]) -} diff --git a/src/modules/stats.js b/src/modules/stats.js deleted file mode 100644 index b75a7388..00000000 --- a/src/modules/stats.js +++ /dev/null @@ -1,163 +0,0 @@ -/** - * Computes the mean of an array of numbers - * @param {array} values array of numbers - * @returns the mean - */ -export function mean (values) { - return values.reduce( - (previousValue, currentValue) => previousValue + currentValue / values.length, - 0) -} - -/** - * Computes the variance of an array of numbers - * @param {array} values: array of numbers - * @param {boolean} sample: if true computes sample varaicne instead of population - * @returns variance - */ -export function variance (values, sample = true) { - let m = mean(values) - let n = sample ? values.length - 1 : values.length - return values.reduce( - (previousValue, currentValue) => previousValue + (currentValue - m) ** 2 / n, - 0) -} - -/** - * Computes rollling stats on a window - * Source: https://stackoverflow.com/a/45949178/1097607 - */ -export class WindowedRollingStats { - constructor (windowSize) { - this.reset() - this.windowSize = windowSize - } - - /** - * Resets statistics - */ - reset () { - this.windows = [] - this.n = 0 - this.mean = 0 - this.run_var = 0 - } - - /** - * Adds a value to the statistics - * @param {number} x: number - */ - addValue (x) { - this.windows.push(x) - - if (this.n < this.windowSize) { - this.n += 1 - let delta = x - this.mean - this.mean += delta / this.n - this.run_var += delta * (x - this.mean) - } else { - let xRemoved = this.windows.shift() - let oldMean = this.mean - this.mean += (x - xRemoved) / this.windowSize - this.run_var += (x + xRemoved - oldMean - this.mean) * (x - xRemoved) - } - } - - /** - * Gets the number of samples added - * @returns total number of samples - */ - getCount () { - return this.n - } - - /** - * Computes the mean of the samples - * @returns the mean - */ - getMean () { - if (this.n < 1) return undefined - return this.mean - } - - /** - * Computes the variance of the samples - * @param {boolean} sample: if true computes the sample variance, else the population one - * @returns - */ - getVariance (sample = true) { - if (this.n < 2) return undefined - let totalN = sample ? (this.n - 1) : this.n - return this.run_var / totalN - } -} - -/** - * Used to compute statistics on a rolling basis. - * Based on the Welford algorithm, see https://www.johndcook.com/blog/standard_deviation/ - */ -export class RollingStats { - constructor () { - this.reset() - } - - /** - * Adds a value to the statistics - * @param {number} x: number - */ - addValue (x) { - this.m_n++ - - if (this.m_n === 1) { - this.m_oldM = this.m_newM = x - this.m_oldS = 0.0 - } else { - this.m_newM = this.m_oldM + (x - this.m_oldM) / this.m_n - this.m_newS = this.m_oldS + (x - this.m_oldM) * (x - this.m_newM) - - // set up for next iteration - this.m_oldM = this.m_newM - this.m_oldS = this.m_newS - } - } - - /** - * Gets the number of samples added - * @returns total number of samples - */ - getCount () { - return this.m_n - } - - /** - * Computes the mean of the samples - * @returns the mean - */ - getMean () { - if (this.count < 1) return undefined - return this.m_newM - } - - /** - * Computes the variance of the samples - * @param {boolean} sample: if true computes the sample variance, else the population one - * @returns - */ - getVariance (sample = true) { - if (this.count < 2) return undefined - let n = sample ? this.m_n - 1 : this.m_n - - return this.m_newS / n - } - - /** - * Resets statistics - */ - reset () { - this.m_n = 0 - this.m_oldM = 0 - this.m_newM = 0 - this.m_oldS = 0 - this.m_newS = 0 - } -} diff --git a/src/modules/sweeper.js b/src/modules/sweeper.js deleted file mode 100644 index a25ce901..00000000 --- a/src/modules/sweeper.js +++ /dev/null @@ -1,62 +0,0 @@ -/** - * Sweep sound generator. - * Uses the browser audio synthetizer. - */ -export default { - init () { - let ContextClass = (window.AudioContext || - window.webkitAudioContext || - window.mozAudioContext || - window.oAudioContext || - window.msAudioContext) - - if (ContextClass) { - // Web Audio API is available. - this.context = new ContextClass() - } else { - throw new Error('no audio available') - } - }, - sweep (freq1, freq2, duration, type, volume) { - let currTime = this.context.currentTime - let oscillator = this.context.createOscillator() - let gainNode = this.context.createGain ? this.context.createGain() : this.context.createGainNode() - - // oscillator.type = 0; - oscillator.frequency.value = freq1 - - oscillator.connect(gainNode) - gainNode.connect(this.context.destination) - - let typeN = oscillator.type === parseInt(oscillator.type) - - if (type === 'sine') { - typeN ? oscillator.type = 0 : oscillator.type = 'sine' - } else if (type === 'square') { - typeN ? oscillator.type = 1 : oscillator.type = 'square' - } else if (type === 'sawtooth') { - typeN ? oscillator.type = 2 : oscillator.type = 'sawtooth' - } else if (type === 'triangle') { - typeN ? oscillator.type = 3 : oscillator.type = 'triangle' - } else { - console.error('type unrecognized') - return - } - - oscillator.start ? oscillator.start(0) : oscillator.noteOn(0) - - gainNode.gain.value = volume - // linear increase - oscillator.frequency.linearRampToValueAtTime(freq1, currTime) - - // gainNode.gain.linearRampToValueAtTime(volume, currTime); - - oscillator.frequency.linearRampToValueAtTime(freq2, currTime + duration * 1) - - // gainNode.gain.linearRampToValueAtTime(volume, currTime + duration * 1); - - oscillator.stop ? oscillator.stop(currTime + duration * 1) : oscillator.noteOff(currTime + duration * 1) - - // oscillator.start(0); - } -} diff --git a/src/pages/Empty.vue b/src/pages/Empty.vue deleted file mode 100755 index d4f60401..00000000 --- a/src/pages/Empty.vue +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/pages/Error404.vue b/src/pages/Error404.vue deleted file mode 100755 index afaaa887..00000000 --- a/src/pages/Error404.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/src/pages/ErrorNotFound.vue b/src/pages/ErrorNotFound.vue new file mode 100644 index 00000000..c1c178b3 --- /dev/null +++ b/src/pages/ErrorNotFound.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/pages/IndexPage.vue b/src/pages/IndexPage.vue new file mode 100644 index 00000000..76acd879 --- /dev/null +++ b/src/pages/IndexPage.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/pages/Intro.vue b/src/pages/Intro.vue deleted file mode 100755 index bd6fd0f6..00000000 --- a/src/pages/Intro.vue +++ /dev/null @@ -1,107 +0,0 @@ - - - diff --git a/src/pages/about/About.vue b/src/pages/about/About.vue deleted file mode 100755 index 95ce8954..00000000 --- a/src/pages/about/About.vue +++ /dev/null @@ -1,71 +0,0 @@ - - - - - diff --git a/src/pages/about/AboutPrivacyPolicy.vue b/src/pages/about/AboutPrivacyPolicy.vue deleted file mode 100755 index bfa440ce..00000000 --- a/src/pages/about/AboutPrivacyPolicy.vue +++ /dev/null @@ -1,27 +0,0 @@ - - - - - diff --git a/src/pages/about/Acknowledgements.vue b/src/pages/about/Acknowledgements.vue deleted file mode 100755 index adbe43aa..00000000 --- a/src/pages/about/Acknowledgements.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - - - diff --git a/src/pages/about/Contact.vue b/src/pages/about/Contact.vue deleted file mode 100755 index 48c5ba28..00000000 --- a/src/pages/about/Contact.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/src/pages/about/Introduction.vue b/src/pages/about/Introduction.vue deleted file mode 100755 index 816db220..00000000 --- a/src/pages/about/Introduction.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - diff --git a/src/pages/about/License.vue b/src/pages/about/License.vue deleted file mode 100755 index 3537e77d..00000000 --- a/src/pages/about/License.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - - - diff --git a/src/pages/accountmgmt/ChangePW.vue b/src/pages/accountmgmt/ChangePW.vue deleted file mode 100755 index bf9f9474..00000000 --- a/src/pages/accountmgmt/ChangePW.vue +++ /dev/null @@ -1,172 +0,0 @@ - - - diff --git a/src/pages/accountmgmt/Login.vue b/src/pages/accountmgmt/Login.vue deleted file mode 100755 index 8191ff3f..00000000 --- a/src/pages/accountmgmt/Login.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - - - diff --git a/src/pages/accountmgmt/Reg_PrivacyPolicy.vue b/src/pages/accountmgmt/Reg_PrivacyPolicy.vue deleted file mode 100755 index c96f47c7..00000000 --- a/src/pages/accountmgmt/Reg_PrivacyPolicy.vue +++ /dev/null @@ -1,42 +0,0 @@ - - - - - diff --git a/src/pages/accountmgmt/Reg_Profile.vue b/src/pages/accountmgmt/Reg_Profile.vue deleted file mode 100755 index d4779340..00000000 --- a/src/pages/accountmgmt/Reg_Profile.vue +++ /dev/null @@ -1,88 +0,0 @@ - - - - - diff --git a/src/pages/accountmgmt/Reg_SignUp.vue b/src/pages/accountmgmt/Reg_SignUp.vue deleted file mode 100755 index 98ff528b..00000000 --- a/src/pages/accountmgmt/Reg_SignUp.vue +++ /dev/null @@ -1,166 +0,0 @@ - - - - - diff --git a/src/pages/accountmgmt/ResetPW.vue b/src/pages/accountmgmt/ResetPW.vue deleted file mode 100755 index 51e6d056..00000000 --- a/src/pages/accountmgmt/ResetPW.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - diff --git a/src/pages/consent/Accepted.vue b/src/pages/consent/Accepted.vue deleted file mode 100755 index 3b778b0b..00000000 --- a/src/pages/consent/Accepted.vue +++ /dev/null @@ -1,80 +0,0 @@ - - - - - diff --git a/src/pages/consent/ConsentItems.vue b/src/pages/consent/ConsentItems.vue deleted file mode 100755 index e226b704..00000000 --- a/src/pages/consent/ConsentItems.vue +++ /dev/null @@ -1,148 +0,0 @@ - - - - - diff --git a/src/pages/consent/Invitation.vue b/src/pages/consent/Invitation.vue deleted file mode 100755 index e95f240d..00000000 --- a/src/pages/consent/Invitation.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/src/pages/consent/PrivacyPolicy.vue b/src/pages/consent/PrivacyPolicy.vue deleted file mode 100755 index a19572ea..00000000 --- a/src/pages/consent/PrivacyPolicy.vue +++ /dev/null @@ -1,78 +0,0 @@ - - - - - diff --git a/src/pages/consent/StudyDetails.vue b/src/pages/consent/StudyDetails.vue deleted file mode 100755 index 082216d0..00000000 --- a/src/pages/consent/StudyDetails.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/pages/home/Profile.vue b/src/pages/home/Profile.vue deleted file mode 100755 index f078b65c..00000000 --- a/src/pages/home/Profile.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - - diff --git a/src/pages/home/Studies.vue b/src/pages/home/Studies.vue deleted file mode 100755 index 3347bfca..00000000 --- a/src/pages/home/Studies.vue +++ /dev/null @@ -1,343 +0,0 @@ - - - - - diff --git a/src/pages/home/StudyConfig.vue b/src/pages/home/StudyConfig.vue deleted file mode 100755 index 6a262731..00000000 --- a/src/pages/home/StudyConfig.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - - - diff --git a/src/pages/home/Tasker.vue b/src/pages/home/Tasker.vue deleted file mode 100755 index e980dfff..00000000 --- a/src/pages/home/Tasker.vue +++ /dev/null @@ -1,398 +0,0 @@ - - - - - diff --git a/src/pages/home/Test.vue b/src/pages/home/Test.vue deleted file mode 100755 index 0f5f3cd2..00000000 --- a/src/pages/home/Test.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - diff --git a/src/pages/tasks/dataQuery/DataQuery.vue b/src/pages/tasks/dataQuery/DataQuery.vue deleted file mode 100755 index 5bb80c6a..00000000 --- a/src/pages/tasks/dataQuery/DataQuery.vue +++ /dev/null @@ -1,393 +0,0 @@ - - - - - diff --git a/src/pages/tasks/dataQuery/DataQueryIntro.vue b/src/pages/tasks/dataQuery/DataQueryIntro.vue deleted file mode 100755 index f0a5e8bd..00000000 --- a/src/pages/tasks/dataQuery/DataQueryIntro.vue +++ /dev/null @@ -1,36 +0,0 @@ - - diff --git a/src/pages/tasks/drawing/drawing.vue b/src/pages/tasks/drawing/drawing.vue deleted file mode 100644 index c1a4315e..00000000 --- a/src/pages/tasks/drawing/drawing.vue +++ /dev/null @@ -1,222 +0,0 @@ - - - diff --git a/src/pages/tasks/drawing/drawingIntro.vue b/src/pages/tasks/drawing/drawingIntro.vue deleted file mode 100644 index 3f2eca63..00000000 --- a/src/pages/tasks/drawing/drawingIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/drawing/drawingSummary.vue b/src/pages/tasks/drawing/drawingSummary.vue deleted file mode 100644 index 3e2b60ff..00000000 --- a/src/pages/tasks/drawing/drawingSummary.vue +++ /dev/null @@ -1,87 +0,0 @@ - - - diff --git a/src/pages/tasks/fingerTapping/Tapping.vue b/src/pages/tasks/fingerTapping/Tapping.vue deleted file mode 100644 index 78559ae9..00000000 --- a/src/pages/tasks/fingerTapping/Tapping.vue +++ /dev/null @@ -1,141 +0,0 @@ - - - - - diff --git a/src/pages/tasks/fingerTapping/TappingIntro.vue b/src/pages/tasks/fingerTapping/TappingIntro.vue deleted file mode 100644 index 437d764d..00000000 --- a/src/pages/tasks/fingerTapping/TappingIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/fingerTapping/tappingSummary.vue b/src/pages/tasks/fingerTapping/tappingSummary.vue deleted file mode 100644 index 013f2a27..00000000 --- a/src/pages/tasks/fingerTapping/tappingSummary.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/src/pages/tasks/form/Form.vue b/src/pages/tasks/form/Form.vue deleted file mode 100755 index a61b0f86..00000000 --- a/src/pages/tasks/form/Form.vue +++ /dev/null @@ -1,671 +0,0 @@ - - - - - diff --git a/src/pages/tasks/form/FormIntro.vue b/src/pages/tasks/form/FormIntro.vue deleted file mode 100755 index 67dc13ab..00000000 --- a/src/pages/tasks/form/FormIntro.vue +++ /dev/null @@ -1,82 +0,0 @@ - - diff --git a/src/pages/tasks/holdPhone/holdPhone.vue b/src/pages/tasks/holdPhone/holdPhone.vue deleted file mode 100644 index ee893735..00000000 --- a/src/pages/tasks/holdPhone/holdPhone.vue +++ /dev/null @@ -1,321 +0,0 @@ - - - - - diff --git a/src/pages/tasks/holdPhone/holdPhoneIntro.vue b/src/pages/tasks/holdPhone/holdPhoneIntro.vue deleted file mode 100644 index 635294f3..00000000 --- a/src/pages/tasks/holdPhone/holdPhoneIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/holdPhone/holdPhoneSummary.vue b/src/pages/tasks/holdPhone/holdPhoneSummary.vue deleted file mode 100644 index 43e474fd..00000000 --- a/src/pages/tasks/holdPhone/holdPhoneSummary.vue +++ /dev/null @@ -1,176 +0,0 @@ - - - diff --git a/src/pages/tasks/miband3/MiBand3Connect.vue b/src/pages/tasks/miband3/MiBand3Connect.vue deleted file mode 100755 index bd922723..00000000 --- a/src/pages/tasks/miband3/MiBand3Connect.vue +++ /dev/null @@ -1,218 +0,0 @@ - - - diff --git a/src/pages/tasks/miband3/MiBand3Intro.vue b/src/pages/tasks/miband3/MiBand3Intro.vue deleted file mode 100755 index 87d796c0..00000000 --- a/src/pages/tasks/miband3/MiBand3Intro.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - diff --git a/src/pages/tasks/miband3/Miband3DataDownload.vue b/src/pages/tasks/miband3/Miband3DataDownload.vue deleted file mode 100755 index 079ce0f9..00000000 --- a/src/pages/tasks/miband3/Miband3DataDownload.vue +++ /dev/null @@ -1,497 +0,0 @@ - - - diff --git a/src/pages/tasks/miband3/notEnoughDataPage.vue b/src/pages/tasks/miband3/notEnoughDataPage.vue deleted file mode 100755 index 1d66a2c8..00000000 --- a/src/pages/tasks/miband3/notEnoughDataPage.vue +++ /dev/null @@ -1,21 +0,0 @@ - - - diff --git a/src/pages/tasks/peakflow/PeakFlow.vue b/src/pages/tasks/peakflow/PeakFlow.vue deleted file mode 100644 index bff44bb7..00000000 --- a/src/pages/tasks/peakflow/PeakFlow.vue +++ /dev/null @@ -1,167 +0,0 @@ - - - diff --git a/src/pages/tasks/peakflow/PeakFlowCalibrate.vue b/src/pages/tasks/peakflow/PeakFlowCalibrate.vue deleted file mode 100644 index 7d1234b7..00000000 --- a/src/pages/tasks/peakflow/PeakFlowCalibrate.vue +++ /dev/null @@ -1,86 +0,0 @@ - - - diff --git a/src/pages/tasks/peakflow/PeakFlowIntro.vue b/src/pages/tasks/peakflow/PeakFlowIntro.vue deleted file mode 100644 index 6d74df96..00000000 --- a/src/pages/tasks/peakflow/PeakFlowIntro.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/pages/tasks/peakflow/PeakFlowReview.vue b/src/pages/tasks/peakflow/PeakFlowReview.vue deleted file mode 100644 index a76da681..00000000 --- a/src/pages/tasks/peakflow/PeakFlowReview.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - diff --git a/src/pages/tasks/peakflow/PeakFlowSummary.vue b/src/pages/tasks/peakflow/PeakFlowSummary.vue deleted file mode 100644 index 44ed017e..00000000 --- a/src/pages/tasks/peakflow/PeakFlowSummary.vue +++ /dev/null @@ -1,93 +0,0 @@ - - - diff --git a/src/pages/tasks/po60/PO60Connect.vue b/src/pages/tasks/po60/PO60Connect.vue deleted file mode 100755 index 1c9d6e93..00000000 --- a/src/pages/tasks/po60/PO60Connect.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - diff --git a/src/pages/tasks/po60/PO60Download.vue b/src/pages/tasks/po60/PO60Download.vue deleted file mode 100755 index 9f36854d..00000000 --- a/src/pages/tasks/po60/PO60Download.vue +++ /dev/null @@ -1,209 +0,0 @@ - - - diff --git a/src/pages/tasks/po60/PO60Intro.vue b/src/pages/tasks/po60/PO60Intro.vue deleted file mode 100755 index 13ce1c6f..00000000 --- a/src/pages/tasks/po60/PO60Intro.vue +++ /dev/null @@ -1,32 +0,0 @@ - - - diff --git a/src/pages/tasks/position/Position.vue b/src/pages/tasks/position/Position.vue deleted file mode 100644 index e234c8d0..00000000 --- a/src/pages/tasks/position/Position.vue +++ /dev/null @@ -1,207 +0,0 @@ - - - diff --git a/src/pages/tasks/position/PositionIntro.vue b/src/pages/tasks/position/PositionIntro.vue deleted file mode 100644 index d621c1a7..00000000 --- a/src/pages/tasks/position/PositionIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/qcst/QCST.vue b/src/pages/tasks/qcst/QCST.vue deleted file mode 100755 index e4c1a799..00000000 --- a/src/pages/tasks/qcst/QCST.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - diff --git a/src/pages/tasks/qcst/QCSTHR.vue b/src/pages/tasks/qcst/QCSTHR.vue deleted file mode 100755 index 9effd244..00000000 --- a/src/pages/tasks/qcst/QCSTHR.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - diff --git a/src/pages/tasks/qcst/QCSTIntro.vue b/src/pages/tasks/qcst/QCSTIntro.vue deleted file mode 100755 index dab84402..00000000 --- a/src/pages/tasks/qcst/QCSTIntro.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - diff --git a/src/pages/tasks/qcst/QCSTSummary.vue b/src/pages/tasks/qcst/QCSTSummary.vue deleted file mode 100755 index 08f75fcf..00000000 --- a/src/pages/tasks/qcst/QCSTSummary.vue +++ /dev/null @@ -1,309 +0,0 @@ - - - diff --git a/src/pages/tasks/smwt/SMWT.vue b/src/pages/tasks/smwt/SMWT.vue deleted file mode 100755 index 4e9b367f..00000000 --- a/src/pages/tasks/smwt/SMWT.vue +++ /dev/null @@ -1,266 +0,0 @@ - - - - - diff --git a/src/pages/tasks/smwt/SMWTIntro.vue b/src/pages/tasks/smwt/SMWTIntro.vue deleted file mode 100755 index 552f54a0..00000000 --- a/src/pages/tasks/smwt/SMWTIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/smwt/SMWTSummary.vue b/src/pages/tasks/smwt/SMWTSummary.vue deleted file mode 100755 index 3f2f9616..00000000 --- a/src/pages/tasks/smwt/SMWTSummary.vue +++ /dev/null @@ -1,316 +0,0 @@ - - - diff --git a/src/pages/tasks/tugt/TUGT.vue b/src/pages/tasks/tugt/TUGT.vue deleted file mode 100644 index 7195e4b1..00000000 --- a/src/pages/tasks/tugt/TUGT.vue +++ /dev/null @@ -1,204 +0,0 @@ - - - - - diff --git a/src/pages/tasks/tugt/TUGTIntro.vue b/src/pages/tasks/tugt/TUGTIntro.vue deleted file mode 100644 index 958dabf4..00000000 --- a/src/pages/tasks/tugt/TUGTIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/tugt/TUGTSummary.vue b/src/pages/tasks/tugt/TUGTSummary.vue deleted file mode 100644 index 4811c149..00000000 --- a/src/pages/tasks/tugt/TUGTSummary.vue +++ /dev/null @@ -1,125 +0,0 @@ - - - - - diff --git a/src/pages/tasks/vocalization/vocalization.vue b/src/pages/tasks/vocalization/vocalization.vue deleted file mode 100644 index c25340e2..00000000 --- a/src/pages/tasks/vocalization/vocalization.vue +++ /dev/null @@ -1,213 +0,0 @@ - - - - - diff --git a/src/pages/tasks/vocalization/vocalizationIntro.vue b/src/pages/tasks/vocalization/vocalizationIntro.vue deleted file mode 100644 index 80ab7247..00000000 --- a/src/pages/tasks/vocalization/vocalizationIntro.vue +++ /dev/null @@ -1,30 +0,0 @@ - - - diff --git a/src/pages/tasks/vocalization/vocalizationSummary.vue b/src/pages/tasks/vocalization/vocalizationSummary.vue deleted file mode 100644 index 9e7455e1..00000000 --- a/src/pages/tasks/vocalization/vocalizationSummary.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - - - diff --git a/src/router/index.js b/src/router/index.js old mode 100755 new mode 100644 index acef5129..ca3cd61c --- a/src/router/index.js +++ b/src/router/index.js @@ -1,25 +1,30 @@ -import Vue from 'vue' -import VueRouter from 'vue-router' +import { route } from 'quasar/wrappers' +import { createRouter, createMemoryHistory, createWebHistory, createWebHashHistory } from 'vue-router' import routes from './routes' -Vue.use(VueRouter) - /* * If not building with SSR mode, you can - * directly export the Router instantiation + * directly export the Router instantiation; + * + * The function below can be async too; either use + * async/await or return a Promise which resolves + * with the Router instance. */ -export default function (/* { store, ssrContext } */) { - const Router = new VueRouter({ - scrollBehavior: () => ({ x: 0, y: 0 }), +export default route(function (/* { store, ssrContext } */) { + const createHistory = process.env.SERVER + ? createMemoryHistory + : (process.env.VUE_ROUTER_MODE === 'history' ? createWebHistory : createWebHashHistory) + + const Router = createRouter({ + scrollBehavior: () => ({ left: 0, top: 0 }), routes, - // Leave these as they are and change in quasar.conf.js instead! + // Leave this as is and make changes in quasar.conf.js instead! // quasar.conf.js -> build -> vueRouterMode // quasar.conf.js -> build -> publicPath - mode: process.env.VUE_ROUTER_MODE, - base: process.env.VUE_ROUTER_BASE + history: createHistory(process.env.VUE_ROUTER_BASE) }) return Router -} +}) diff --git a/src/router/routes.js b/src/router/routes.js old mode 100755 new mode 100644 index 16fa413e..1b2e3653 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -1,142 +1,18 @@ - const routes = [ { path: '/', - name: 'intro', - component: () => import('pages/Intro.vue') - }, - { - path: '/login', - name: 'login', - component: () => import('pages/accountmgmt/Login.vue') - }, - { - path: '/resetpw', - name: 'resetpw', - component: () => import('pages/accountmgmt/ResetPW.vue') - }, - { - path: '/changepw/:email', - name: 'changepw', - props: true, - component: () => import('pages/accountmgmt/ChangePW.vue') - }, - { - path: '/register', - component: () => import('layouts/RegLayout.vue'), - children: [ - { path: '/register_pp', name: 'register_pp', component: () => import('pages/accountmgmt/Reg_PrivacyPolicy.vue') }, - { path: '/register_profile', name: 'register_profile', component: () => import('pages/accountmgmt/Reg_Profile.vue') }, - { path: '/signup', name: 'signup', component: () => import('pages/accountmgmt/Reg_SignUp.vue') } - ] - }, - { - path: '/home', - component: () => import('layouts/HomeLayout.vue'), - children: [ - { path: '/', name: 'home', component: () => import('pages/home/Tasker.vue'), props: true }, - { path: '/tasker', name: 'tasker', component: () => import('pages/home/Tasker.vue'), props: true }, - { path: '/profile', name: 'profile', component: () => import('pages/home/Profile.vue') }, - { path: '/test', name: 'test', component: () => import('pages/home/Test.vue') } - ] - }, - { - path: '/studies', - component: () => import('layouts/HomeLayout.vue'), + component: () => import('layouts/MainLayout.vue'), children: [ - { path: '/studies', name: 'studies', component: () => import('pages/home/Studies.vue') }, - { path: '/studies/studyConfig', name: 'studyConfig', component: () => import('pages/home/StudyConfig.vue'), props: true } + { path: '', component: () => import('pages/IndexPage.vue') } ] }, - { - path: '/consent', - component: () => import('layouts/ConsentLayout.vue'), - children: [ - { path: '/invitation', name: 'invitation', component: () => import('pages/consent/Invitation.vue'), props: true }, - { path: '/studyDetails', name: 'studyDetails', component: () => import('pages/consent/StudyDetails.vue'), props: true }, - { path: '/privacyPolicy', name: 'privacyPolicy', component: () => import('pages/consent/PrivacyPolicy.vue'), props: true }, - { path: '/consentItems', name: 'consentItems', component: () => import('pages/consent/ConsentItems.vue'), props: true }, - { path: '/accepted', name: 'accepted', component: () => import('pages/consent/Accepted.vue'), props: true } - ] - }, - { - path: '/tasks', - component: () => import('layouts/TaskLayout.vue'), - children: [ - { path: '/form', name: 'form', component: () => import('pages/tasks/form/Form.vue'), props: true }, - { path: '/formIntro', name: 'formIntro', component: () => import('pages/tasks/form/FormIntro'), props: true }, - - { path: '/dataQueryIntro', name: 'dataQueryIntro', component: () => import('pages/tasks/dataQuery/DataQueryIntro'), props: true }, - { path: '/dataQuery', name: 'dataQuery', component: () => import('pages/tasks/dataQuery/DataQuery'), props: true }, - - { path: '/smwtIntro', name: 'smwtIntro', component: () => import('pages/tasks/smwt/SMWTIntro.vue'), props: true }, - { path: '/smwt', name: 'smwt', component: () => import('pages/tasks/smwt/SMWT.vue'), props: true }, - { path: '/smwtSummary', name: 'smwtSummary', component: () => import('pages/tasks/smwt/SMWTSummary.vue'), props: true }, - - { path: '/qcstIntro', name: 'qcstIntro', component: () => import('pages/tasks/qcst/QCSTIntro.vue'), props: true }, - { path: '/qcst', name: 'qcst', component: () => import('pages/tasks/qcst/QCST.vue'), props: true }, - { path: '/qcsthr', name: 'qcsthr', component: () => import('pages/tasks/qcst/QCSTHR.vue'), props: true }, - { path: '/qcstSummary', name: 'qcstSummary', component: () => import('pages/tasks/qcst/QCSTSummary.vue'), props: true }, - - { path: '/miband3Intro', name: 'miband3Intro', component: () => import('pages/tasks/miband3/MiBand3Intro.vue'), props: true }, - { path: '/miband3Connect', name: 'miband3Connect', component: () => import('pages/tasks/miband3/MiBand3Connect.vue'), props: true }, - { path: '/miband3DataDownload', name: 'miband3DataDownload', component: () => import('pages/tasks/miband3/MiBand3DataDownload.vue'), props: true }, - { path: '/notEnoughDataPage', name: 'notEnoughDataPage', component: () => import('pages/tasks/miband3/notEnoughDataPage.vue'), props: true }, - - { path: '/po60Intro', name: 'po60Intro', component: () => import('pages/tasks/po60/PO60Intro.vue'), props: true }, - { path: '/po60Connect', name: 'po60Connect', component: () => import('pages/tasks/po60/PO60Connect.vue'), props: true }, - { path: '/po60Download', name: 'po60DataDownload', component: () => import('pages/tasks/po60/PO60Download.vue'), props: true }, - - { path: '/positionIntro', name: 'positionIntro', component: () => import('pages/tasks/position/PositionIntro.vue'), props: true }, - { path: '/position', name: 'position', component: () => import('pages/tasks/position/Position.vue'), props: true }, - - { path: '/peakFlowIntro', name: 'peakFlowIntro', component: () => import('pages/tasks/peakflow/PeakFlowIntro.vue'), props: true }, - { path: '/peakFlowCalibrate', name: 'peakFlowCalibrate', component: () => import('pages/tasks/peakflow/PeakFlowCalibrate.vue'), props: true }, - { path: '/peakFlow', name: 'peakFlow', component: () => import('pages/tasks/peakflow/PeakFlow.vue'), props: true }, - { path: '/peakFlowSummary', name: 'peakFlowSummary', component: () => import('pages/tasks/peakflow/PeakFlowSummary.vue'), props: true }, - { path: '/peakFlowReview', name: 'peakFlowReview', component: () => import('pages/tasks/peakflow/PeakFlowReview.vue'), props: true }, - { path: '/fingerTappingIntro', name: 'fingerTappingIntro', component: () => import('pages/tasks/fingerTapping/TappingIntro.vue'), props: true }, - { path: '/fingerTapping', name: 'fingerTapping', component: () => import('pages/tasks/fingerTapping/Tapping.vue'), props: true }, - { path: '/fingerTappingSummary', name: 'fingerTappingSummary', component: () => import('pages/tasks/fingerTapping/tappingSummary.vue'), props: true }, - - { path: '/tugtIntro', name: 'tugtIntro', component: () => import('pages/tasks/tugt/TUGTIntro.vue'), props: true }, - { path: '/tugt', name: 'tugt', component: () => import('pages/tasks/tugt/TUGT.vue'), props: true }, - { path: '/tugtSummary', name: 'tugtSummary', component: () => import('pages/tasks/tugt/TUGTSummary.vue'), props: true }, - - { path: '/holdPhoneIntro', name: 'holdPhoneIntro', component: () => import('pages/tasks/holdPhone/holdPhoneIntro.vue'), props: true }, - { path: '/holdPhone', name: 'holdPhone', component: () => import('pages/tasks/holdPhone/holdPhone.vue'), props: true }, - { path: '/holdPhoneSummary', name: 'holdPhoneSummary', component: () => import('pages/tasks/holdPhone/holdPhoneSummary.vue'), props: true }, - - { path: '/vocalizationIntro', name: 'vocalizationIntro', component: () => import('pages/tasks/vocalization/vocalizationIntro.vue'), props: true }, - { path: '/vocalization', name: 'vocalization', component: () => import('pages/tasks/vocalization/vocalization.vue'), props: true }, - { path: '/vocalizationSummary', name: 'vocalizationSummary', component: () => import('pages/tasks/vocalization/vocalizationSummary.vue'), props: true }, - - { path: '/drawingIntro', name: 'drawingIntro', component: () => import('pages/tasks/drawing/drawingIntro.vue'), props: true }, - { path: '/drawing', name: 'drawing', component: () => import('pages/tasks/drawing/drawing.vue'), props: true }, - { path: '/drawingSummary', name: 'drawingSummary', component: () => import('pages/tasks/drawing/drawingSummary.vue'), props: true } - ] - }, + // Always leave this as last one, + // but you can also remove it { - path: '/about', - component: () => import('layouts/HomeLayout.vue'), - children: [ - { path: '/about', name: 'about', component: () => import('pages/about/About.vue') }, - { path: '/about/introduction', name: 'introduction', component: () => import('pages/about/Introduction.vue') }, - { path: '/about/privacyPolicy', name: 'aboutPrivacyPolicy', component: () => import('pages/about/AboutPrivacyPolicy.vue') }, - { path: '/about/acknowledgements', name: 'acknowledgements', component: () => import('pages/about/Acknowledgements'), props: { pathIndex: 6 } }, - { path: '/about/contact', name: 'contact', component: () => import('pages/about/Contact.vue') }, - { path: '/about/license', name: 'license', component: () => import('pages/about/License.vue') } - ] + path: '/:catchAll(.*)*', + component: () => import('pages/ErrorNotFound.vue') } ] -// Always leave this as last one -if (process.env.MODE !== 'ssr') { - routes.push({ - path: '*', - component: () => import('pages/Error404.vue') - }) -} - export default routes diff --git a/src/modules/API/API.js b/src/shared/API/API.js similarity index 84% rename from src/modules/API/API.js rename to src/shared/API/API.js index fd53a725..29765fe0 100755 --- a/src/modules/API/API.js +++ b/src/shared/API/API.js @@ -8,7 +8,7 @@ export default { setToken: (newtoken) => { axiosConfig = { headers: { - 'Authorization': 'Bearer ' + newtoken + Authorization: 'Bearer ' + newtoken } } }, @@ -17,24 +17,24 @@ export default { }, // Log in login: async (email, password) => { - let resp = await axios.post(BASE_URL + '/login', { email: email, password: password }) + const resp = await axios.post(BASE_URL + '/login', { email, password }) return resp.data }, // Registration registerUser: async (email, password) => { return axios.post(BASE_URL + '/users', { - email: email, - password: password, + email, + password, role: 'participant' }) }, // Password reset resetPW: async (email) => { - return axios.post(BASE_URL + '/sendResetPasswordEmail', { email: email }) + return axios.post(BASE_URL + '/sendResetPasswordEmail', { email }) }, // Change password changePW: async (token, newpw) => { - return axios.post(BASE_URL + '/resetPassword', { token: token, password: newpw }) + return axios.post(BASE_URL + '/resetPassword', { token, password: newpw }) }, searchDiseaseConcept: async (disease, lang) => { const resp = await axios.get(BASE_URL + '/vocabulary/' + lang + '/disorder/search?term=' + disease + '&limit=10') @@ -88,36 +88,36 @@ export default { // retrieves study descritpion getStudyDescription: async function (studyKey) { - let resp = await axios.get(BASE_URL + '/studies/' + studyKey, axiosConfig) + const resp = await axios.get(BASE_URL + '/studies/' + studyKey, axiosConfig) return resp.data }, // retrieves the keys of the new studies already filtered out by inclusion criteria getNewStudiesKeys: async function () { - let resp = await axios.get(BASE_URL + '/newStudies/', axiosConfig) + const resp = await axios.get(BASE_URL + '/studies/newStudies/', axiosConfig) return resp.data }, // retrieves an invitational study based on a code getInvitationalStudy: async function (invitationalCode) { - let resp = await axios.get(BASE_URL + `/invitationalStudy/${invitationalCode}`, axiosConfig) + const resp = await axios.get(BASE_URL + `/studies/invitational/${invitationalCode}`, axiosConfig) return resp.data }, // gets a form given its key getForm: async function (formKey) { - let resp = await axios.get(BASE_URL + '/forms/' + formKey, axiosConfig) + const resp = await axios.get(BASE_URL + '/forms/' + formKey, axiosConfig) return resp.data }, // sends an attachment file, returns the file name chosen by the server sendAttachment: async function (studyKey, taskId, filename, fileData) { - var config = { + const config = { method: 'post', url: BASE_URL + '/attachments/' + studyKey + '/' + taskId, - params: { filename: filename }, + params: { filename }, headers: { - 'Authorization': axiosConfig.headers.Authorization, + Authorization: axiosConfig.headers.Authorization, 'Content-Type': 'application/octet-stream' }, data: fileData diff --git a/src/modules/API/API.mock.js b/src/shared/API/API.mock.js similarity index 95% rename from src/modules/API/API.mock.js rename to src/shared/API/API.mock.js index de9c0f94..7670dabb 100755 --- a/src/modules/API/API.mock.js +++ b/src/shared/API/API.mock.js @@ -28,7 +28,7 @@ export default { // Logging in async login (email, password) { if (email !== 'jameson@test.test' || password !== 'moon landing') { - let err = new Error('bad credentials') + const err = new Error('bad credentials') err.response = { status: 401 } throw err } else { @@ -171,11 +171,11 @@ export default { // update status of a task item consent updateTaskItemConsent: async function (studyKey, taskId, taskItemConsent) { console.log('API - Study task item consent', taskItemConsent) - let study = participant.studies.find((s) => { + const study = participant.studies.find((s) => { return s._key === studyKey }) if (study) { - let taskI = study.taskItemsConsent.findIndex(t => { + const taskI = study.taskItemsConsent.findIndex(t => { return t.taskId === taskId }) if (taskI) study.taskItemsConsent[taskI] = taskItemConsent @@ -210,7 +210,7 @@ export default { console.log('API - getting new study') return new Promise(function (resolve, reject) { setTimeout(function () { - let studyPart = participant.studies.find((s) => { + const studyPart = participant.studies.find((s) => { return s.studyKey === studyTest._key }) if (!studyPart) resolve([studyTest._key]) @@ -228,7 +228,7 @@ export default { } else if (invitationalCode === parkAppStudy2.invitationCode) { resolve(parkAppStudy2) } else { - let err = new Error('Cannot retrieve invitational study based on code.') + const err = new Error('Cannot retrieve invitational study based on code.') err.response = { status: 400 } reject(err) } @@ -277,11 +277,11 @@ export default { }, setTaskDone (studyKey, taskId, timestamp) { - let study = participant.studies.find((s) => { + const study = participant.studies.find((s) => { return s.studyKey === studyKey }) if (study) { - let taskItem = study.taskItemsConsent.find(ti => ti.taskId === taskId) + const taskItem = study.taskItemsConsent.find(ti => ti.taskId === taskId) if (taskItem) { taskItem.lastExecuted = timestamp } diff --git a/src/modules/API/mockdata/environment.js b/src/shared/API/mockdata/environment.js similarity index 100% rename from src/modules/API/mockdata/environment.js rename to src/shared/API/mockdata/environment.js diff --git a/src/modules/API/mockdata/formTest.js b/src/shared/API/mockdata/formTest.js similarity index 98% rename from src/modules/API/mockdata/formTest.js rename to src/shared/API/mockdata/formTest.js index 07fbb1d2..68b78532 100755 --- a/src/modules/API/mockdata/formTest.js +++ b/src/shared/API/mockdata/formTest.js @@ -92,8 +92,8 @@ export default { es: 'Ejemplo de pregunta con texto libre.' }, footer: { - en: `Example of footer text.`, - sv: `Exempel på sidfotstext.`, + en: 'Example of footer text.', + sv: 'Exempel på sidfotstext.', es: 'Ejemplo de nota a pie de pagina.' }, helper: { diff --git a/src/modules/API/mockdata/parkapp/questBDI2.json b/src/shared/API/mockdata/parkapp/questBDI2.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questBDI2.json rename to src/shared/API/mockdata/parkapp/questBDI2.json diff --git a/src/modules/API/mockdata/parkapp/questDailySleep.json b/src/shared/API/mockdata/parkapp/questDailySleep.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questDailySleep.json rename to src/shared/API/mockdata/parkapp/questDailySleep.json diff --git a/src/modules/API/mockdata/parkapp/questNMS.json b/src/shared/API/mockdata/parkapp/questNMS.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questNMS.json rename to src/shared/API/mockdata/parkapp/questNMS.json diff --git a/src/modules/API/mockdata/parkapp/questPDQ8.json b/src/shared/API/mockdata/parkapp/questPDQ8.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questPDQ8.json rename to src/shared/API/mockdata/parkapp/questPDQ8.json diff --git a/src/modules/API/mockdata/parkapp/questPDSS2.json b/src/shared/API/mockdata/parkapp/questPDSS2.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questPDSS2.json rename to src/shared/API/mockdata/parkapp/questPDSS2.json diff --git a/src/modules/API/mockdata/parkapp/questTAM.json b/src/shared/API/mockdata/parkapp/questTAM.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questTAM.json rename to src/shared/API/mockdata/parkapp/questTAM.json diff --git a/src/modules/API/mockdata/parkapp/questUMARS.json b/src/shared/API/mockdata/parkapp/questUMARS.json similarity index 100% rename from src/modules/API/mockdata/parkapp/questUMARS.json rename to src/shared/API/mockdata/parkapp/questUMARS.json diff --git a/src/modules/API/mockdata/parkapp/studyParkapp.json b/src/shared/API/mockdata/parkapp/studyParkapp.json similarity index 100% rename from src/modules/API/mockdata/parkapp/studyParkapp.json rename to src/shared/API/mockdata/parkapp/studyParkapp.json diff --git a/src/modules/API/mockdata/parkapp/studyParkapp2.json b/src/shared/API/mockdata/parkapp/studyParkapp2.json similarity index 100% rename from src/modules/API/mockdata/parkapp/studyParkapp2.json rename to src/shared/API/mockdata/parkapp/studyParkapp2.json diff --git a/src/shared/API/mockdata/participant.js b/src/shared/API/mockdata/participant.js new file mode 100755 index 00000000..e4864943 --- /dev/null +++ b/src/shared/API/mockdata/participant.js @@ -0,0 +1,159 @@ +export default { + _key: '098765', + userKey: '1231232', + createdTS: '2019-12-10T09:30:32.492Z', + name: 'Jameson', + surname: 'Lee', + country: 'se', // se, gb, es + language: 'en', // sv, en, es + sex: 'male', + dateOfBirth: '1970-11-10', + height: 172, + weight: 67, + diseases: [ + { + term: 'COPD', + conceptId: '13645005', + vocabulary: 'SNOMED' + } + ], + medications: [], + studiesSuggestions: true, + studies: [ + + // { + // studyKey: '1978', + // currentStatus: 'accepted', + // acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString(), + // reminders: true, + // criteriaAnswers: ['yes'], + // taskItemsConsent: [ + // { taskId: 1, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString() }, + // { taskId: 2, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 3, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 4, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 5, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 6, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 7, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 8, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 9, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 10, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 11, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 12, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 13, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() }, + // { taskId: 14, consented: true, lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString() } + // ] + // } + + // { + // 'studyKey': '33777013', + // 'currentStatus': 'accepted', + // 'acceptedTS': '2022-12-06T21:30:03.567Z', + // 'reminders': true, + // 'taskItemsConsent': [ + // { + // 'taskId': 1, + // 'consented': true + // }, + // { + // 'taskId': 2, + // 'consented': true + // }, + // { + // 'taskId': 3, + // 'consented': true + // }, + // { + // 'taskId': 4, + // 'consented': true + // }, + // { + // 'taskId': 5, + // 'consented': true + // }, + // { + // 'taskId': 6, + // 'consented': true + // }, + // { + // 'taskId': 7, + // 'consented': true + // }, + // { + // 'taskId': 8, + // 'consented': true + // }, + // { + // 'taskId': 9, + // 'consented': true + // }, + // { + // 'taskId': 10, + // 'consented': true + // }, + // { + // 'taskId': 11, + // 'consented': true + // }, + // { + // 'taskId': 12, + // 'consented': true + // }, + // { + // 'taskId': 13, + // 'consented': true + // }, + // { + // 'taskId': 14, + // 'consented': true + // }, + // { + // 'taskId': 15, + // 'consented': true + // }, + // { + // 'taskId': 16, + // 'consented': true, + // 'lastExecuted': '2022-12-07T07:02:45.189Z' + // }, + // { + // 'taskId': 17, + // 'consented': true + // }, + // { + // 'taskId': 18, + // 'consented': true + // }, + // { + // 'taskId': 19, + // 'consented': true + // }, + // { + // 'taskId': 20, + // 'consented': true + // }, + // { + // 'taskId': 21, + // 'consented': true + // }, + // { + // 'taskId': 22, + // 'consented': true, + // 'lastExecuted': '2022-12-06T21:35:47.911Z' + // } + // ], + // 'extraItemsConsent': [ + // { + // 'consented': true + // }, + // { + // 'consented': true + // }, + // { + // 'consented': true + // } + // ] + // } + + ] +} diff --git a/src/modules/API/mockdata/studyTest.js b/src/shared/API/mockdata/studyTest.js similarity index 97% rename from src/modules/API/mockdata/studyTest.js rename to src/shared/API/mockdata/studyTest.js index 4a8b8f87..7ca5a7b4 100755 --- a/src/modules/API/mockdata/studyTest.js +++ b/src/shared/API/mockdata/studyTest.js @@ -15,8 +15,8 @@ export default { es: 'Estudio de ejemplo' }, shortDescription: { - en: `An example research study to showcase Mobistudy's functionalities.`, - sv: `Ett exempel på en forskningsstudie för att visa Mobistudys funktioner.`, + en: 'An example research study to showcase Mobistudy\'s functionalities.', + sv: 'Ett exempel på en forskningsstudie för att visa Mobistudys funktioner.', es: 'Un estudio de ejemplo para mostrar las funcionalidades de Mobistudy' }, longDescription: { @@ -223,9 +223,9 @@ export default { ], consent: { invitation: { - en: `You have been invited to an example research study! You are probably testing the Mobsitudy app and you want to understand how it works. This study will allow you to see all the app's functionalities. Thank you for your interest!`, - sv: `Du har blivit inbjuden till ett exempel på en forskningsstudie! Du testar förmodligen Mobsitudy-appen och du vill förstå hur den fungerar. Denna studie gör att du kan se alla appens funktioner. Tack för ditt intresse!`, - es: `¡Has sido invitado a un estudio de investigaciòn de ejemplo! Probablemente estás probando la aplicación Mobsitudy y quieres comprender cómo funciona. Este estudio te permitirá ver todas las funcionalidades de la aplicación. ¡Gracias por tu interés!` + en: 'You have been invited to an example research study! You are probably testing the Mobsitudy app and you want to understand how it works. This study will allow you to see all the app\'s functionalities. Thank you for your interest!', + sv: 'Du har blivit inbjuden till ett exempel på en forskningsstudie! Du testar förmodligen Mobsitudy-appen och du vill förstå hur den fungerar. Denna studie gör att du kan se alla appens funktioner. Tack för ditt intresse!', + es: '¡Has sido invitado a un estudio de investigaciòn de ejemplo! Probablemente estás probando la aplicación Mobsitudy y quieres comprender cómo funciona. Este estudio te permitirá ver todas las funcionalidades de la aplicación. ¡Gracias por tu interés!' }, privacyPolicy: { en: `To conduct this study, we need to collect some data from you using the Mobistudy app. diff --git a/src/modules/db.js b/src/shared/db.js similarity index 87% rename from src/modules/db.js rename to src/shared/db.js index 6f29f92d..b71d45d7 100755 --- a/src/modules/db.js +++ b/src/shared/db.js @@ -1,10 +1,8 @@ -'use strict' - /** * Simple DAO from local storage * Different implementations of local storage can be used, as long as they are promisified */ -import * as storage from 'modules/storage/storage' +import * as storage from '@shared/storage/storage' export default { @@ -16,7 +14,7 @@ export default { }, async emptyUserData () { console.log('Emptying user DB.') - let appversion = await storage.getItem('app_version') + const appversion = await storage.getItem('app_version') await storage.clear() // do not delete the app version, only delete user data await storage.setItem('app_version', appversion) @@ -46,18 +44,18 @@ export default { return storage.getItem('studiesParticipation') }, async getStudyParticipation (studyKey) { - let studies = await storage.getItem('studiesParticipation') + const studies = await storage.getItem('studiesParticipation') return studies.find(sp => sp.studyKey === studyKey) }, async getStudyParticipationTaskItemConsent (studyKey, taskId) { if (!studyKey) throw new Error('studyKey must be specified') if (!taskId) throw new Error('taskId must be specified') - let studyParticipation = await this.getStudyParticipation(studyKey) + const studyParticipation = await this.getStudyParticipation(studyKey) return studyParticipation.taskItemsConsent.find(x => x.taskId === Number(taskId)) }, async setStudyParticipation (studyPart) { - let studies = await storage.getItem('studiesParticipation') - let studyIndex = studies.findIndex(sp => sp.studyKey === studyPart.studyKey) + const studies = await storage.getItem('studiesParticipation') + const studyIndex = studies.findIndex(sp => sp.studyKey === studyPart.studyKey) studies[studyIndex] = studyPart return storage.setItem('studiesParticipation', studies) }, @@ -68,8 +66,8 @@ export default { if (!studyKey) throw new Error('studyKey must be specified') if (!taskId) throw new Error('taskId must be specified') if (!task) throw new Error('task must be specified') - let studies = await storage.getItem('studiesParticipation') - let sudyInd = studies.findIndex(x => x.studyKey === studyKey) + const studies = await storage.getItem('studiesParticipation') + const sudyInd = studies.findIndex(x => x.studyKey === studyKey) if (!studies[sudyInd].taskItemsConsent) studies[sudyInd].taskItemsConsent = [] let taksstatusInd = studies[sudyInd].taskItemsConsent.findIndex(x => x.taskId === taskId) if (taksstatusInd < 0) { @@ -82,7 +80,7 @@ export default { return this.setStudiesParticipation(studies) }, async setTaskCompletion (studyKey, taskId, timestamp) { - let task = await this.getStudyParticipationTaskItemConsent(studyKey, taskId) + const task = await this.getStudyParticipationTaskItemConsent(studyKey, taskId) task.lastExecuted = timestamp return this.setStudyParticipationTaskItemConsent(studyKey, taskId, task) }, diff --git a/src/modules/phone/audiorecorder.js b/src/shared/phone/audiorecorder.js similarity index 96% rename from src/modules/phone/audiorecorder.js rename to src/shared/phone/audiorecorder.js index e415eead..30e0bb35 100644 --- a/src/modules/phone/audiorecorder.js +++ b/src/shared/phone/audiorecorder.js @@ -1,6 +1,6 @@ import { Dialog, Platform } from 'quasar' -let audioRecorder = { +const audioRecorder = { /** * Checks if the audio capture is installed * @returns a promise @@ -49,9 +49,9 @@ let audioRecorder = { } if (!options || !options.fileName) throw new Error('A sound filename must be passed in the options') - let filename = options.fileName + const filename = options.fileName - var captureCfg = { + const captureCfg = { sampleRate: window.audioinput.SAMPLERATE.CD_AUDIO_44100Hz, bufferSize: 8192, channels: 1, @@ -75,7 +75,7 @@ let audioRecorder = { } } -let audioRecorderMock = { +const audioRecorderMock = { async isAvailable () { return Promise.resolve(true) }, diff --git a/src/modules/phone/geolocation.js b/src/shared/phone/geolocation.js similarity index 93% rename from src/modules/phone/geolocation.js rename to src/shared/phone/geolocation.js index 70936300..d2ab6736 100644 --- a/src/modules/phone/geolocation.js +++ b/src/shared/phone/geolocation.js @@ -1,6 +1,6 @@ import { Dialog } from 'quasar' -let geolocation = { +const geolocation = { watchid: null, async isAvailable () { if ('geolocation' in navigator) { @@ -29,7 +29,7 @@ let geolocation = { copyPosition (pos) { // we need to create a copy of the position object because // Chromium does something strange that is not serialisable as JSON - let copyPos = {} + const copyPos = {} // copyPos.timestamp = new Date().getTime() // use current timestamp because some phones mess up the timestamps copyPos.timestamp = new Date(pos.timestamp) copyPos.coords = {} @@ -44,7 +44,7 @@ let geolocation = { }, startNotifications (options, cbk, error) { this.watchid = navigator.geolocation.watchPosition((position) => { - let copyPos = this.copyPosition(position) + const copyPos = this.copyPosition(position) cbk(copyPos) }, error, options) }, @@ -55,14 +55,14 @@ let geolocation = { async getCurrentPosition (options) { return new Promise((resolve, reject) => { navigator.geolocation.getCurrentPosition((position) => { - let copyPos = this.copyPosition(position) + const copyPos = this.copyPosition(position) resolve(copyPos) }, reject, options) }) } } -let geolocationMock = { +const geolocationMock = { timerid: null, async isAvailable () { return Promise.resolve(true) @@ -84,8 +84,8 @@ let geolocationMock = { }) }, startNotifications (options, cbk, error) { - let startLat = 51.751985 - let startLong = -1.257609 + const startLat = 51.751985 + const startLong = -1.257609 let counter = 0 this.timerid = setInterval(function () { counter++ diff --git a/src/modules/phone/motion.js b/src/shared/phone/motion.js similarity index 93% rename from src/modules/phone/motion.js rename to src/shared/phone/motion.js index cf364397..0873bba4 100644 --- a/src/modules/phone/motion.js +++ b/src/shared/phone/motion.js @@ -1,8 +1,8 @@ -let motion = { +const motion = { callback: undefined, startTS: 0, motionHandler (event) { - let simplifiedEvent = { + const simplifiedEvent = { msFromStart: new Date().getTime() - this.startTS, acc: { x: event.acceleration.x, @@ -44,7 +44,7 @@ let motion = { } } -let motionMock = { +const motionMock = { timer: null, startTS: 0, async isAvailable () { @@ -56,7 +56,7 @@ let motionMock = { startNotifications (options, cbk, error) { this.startTS = new Date().getTime() this.timer = setInterval(() => { - let fakeSmaple = Math.sin((new Date().getTime() / 1000) * 2 * Math.PI) + const fakeSmaple = Math.sin((new Date().getTime() / 1000) * 2 * Math.PI) cbk({ msFromStart: new Date().getTime() - this.startTS, acc: { diff --git a/src/modules/phone/orientation.js b/src/shared/phone/orientation.js similarity index 92% rename from src/modules/phone/orientation.js rename to src/shared/phone/orientation.js index f99f74e9..178c7cb9 100644 --- a/src/modules/phone/orientation.js +++ b/src/shared/phone/orientation.js @@ -1,8 +1,8 @@ -let orientation = { +const orientation = { callback: undefined, startTS: 0, orientationHandler (event) { - let simplifiedEvent = { + const simplifiedEvent = { msFromStart: new Date().getTime() - this.startTS, abs: event.absolute, alpha: event.alpha, @@ -35,7 +35,7 @@ let orientation = { } } -let orientationMock = { +const orientationMock = { timer: undefined, startTS: 0, async isAvailable () { @@ -47,7 +47,7 @@ let orientationMock = { startNotifications (options, cbk, error) { this.startTS = new Date().getTime() this.timer = setInterval(() => { - let fakeSmaple = Math.sin((new Date().getTime() / 1000) * 2 * Math.PI) + const fakeSmaple = Math.sin((new Date().getTime() / 1000) * 2 * Math.PI) cbk({ msFromStart: new Date().getTime() - this.startTS, abs: false, diff --git a/src/modules/phone/pedometer.js b/src/shared/phone/pedometer.js similarity index 98% rename from src/modules/phone/pedometer.js rename to src/shared/phone/pedometer.js index f4ebd495..c147472b 100644 --- a/src/modules/phone/pedometer.js +++ b/src/shared/phone/pedometer.js @@ -1,6 +1,6 @@ import { Dialog, Platform } from 'quasar' -let pedometer = { +const pedometer = { firstSteps: -1, async isAvailable () { return new Promise((resolve, reject) => { @@ -52,7 +52,7 @@ let pedometer = { } } -let pedometerMock = { +const pedometerMock = { timer: null, steps: 0, async isAvailable () { diff --git a/src/modules/phone/phone.js b/src/shared/phone/phone.js similarity index 93% rename from src/modules/phone/phone.js rename to src/shared/phone/phone.js index 26248cda..275c8070 100755 --- a/src/modules/phone/phone.js +++ b/src/shared/phone/phone.js @@ -29,11 +29,11 @@ export default { OSversion: window?.device?.version, appVersion: process.env.APP_VERSION }, - screen: screen, - geolocation: geolocation, - pedometer: pedometer, - motion: motion, - orientation: orientation, + screen, + geolocation, + pedometer, + motion, + orientation, pin: { async isPINSet () { @@ -59,5 +59,5 @@ export default { navigator.vibrate(ms) }, - audioRecorder: audioRecorder + audioRecorder } diff --git a/src/modules/phone/phone.mock.js b/src/shared/phone/phone.mock.js similarity index 100% rename from src/modules/phone/phone.mock.js rename to src/shared/phone/phone.mock.js diff --git a/src/modules/phone/screen.js b/src/shared/phone/screen.js similarity index 93% rename from src/modules/phone/screen.js rename to src/shared/phone/screen.js index a0cfc6ac..cbb9c54a 100644 --- a/src/modules/phone/screen.js +++ b/src/shared/phone/screen.js @@ -1,4 +1,4 @@ -let screen = { +const screen = { async forbidSleep () { // could switch to https://developer.mozilla.org/en-US/docs/Web/API/Screen_Wake_Lock_API when supported on iOS return new Promise((resolve, reject) => { @@ -12,7 +12,7 @@ let screen = { } } -let screenMock = { +const screenMock = { async forbidSleep () { return Promise.resolve() }, diff --git a/src/modules/storage/storage.encrypted.js b/src/shared/storage/storage.encrypted.js similarity index 100% rename from src/modules/storage/storage.encrypted.js rename to src/shared/storage/storage.encrypted.js diff --git a/src/modules/storage/storage.local.js b/src/shared/storage/storage.local.js similarity index 100% rename from src/modules/storage/storage.local.js rename to src/shared/storage/storage.local.js diff --git a/src/modules/storage/storage.mock.js b/src/shared/storage/storage.mock.js similarity index 97% rename from src/modules/storage/storage.mock.js rename to src/shared/storage/storage.mock.js index 457ca660..fb69c576 100755 --- a/src/modules/storage/storage.mock.js +++ b/src/shared/storage/storage.mock.js @@ -1,4 +1,3 @@ -'use strict' // use these flags for testing: const FAIL_INIT = false const DB_CORRUPTED = false @@ -17,7 +16,7 @@ export async function getItem (key) { return Promise.reject() } if (key === 'peakflow') { - let mockPEFs = [] + const mockPEFs = [] for (let i = 0; i < 21; i++) { mockPEFs.push({ pefMax: 400 + Math.random() * 100, diff --git a/src/modules/tools.js b/src/shared/tools.js similarity index 93% rename from src/modules/tools.js rename to src/shared/tools.js index c05e0477..f5a73cb1 100755 --- a/src/modules/tools.js +++ b/src/shared/tools.js @@ -8,7 +8,7 @@ export function isObject (item) { } export function mergeDeep (target, source) { - let output = Object.assign({}, target) + const output = Object.assign({}, target) if (isObject(target) && isObject(source)) { Object.keys(source).forEach(key => { if (isObject(source[key])) { diff --git a/src/modules/userinfo.js b/src/shared/userinfo.js similarity index 100% rename from src/modules/userinfo.js rename to src/shared/userinfo.js diff --git a/test/.gitkeep b/test/.gitkeep deleted file mode 100755 index e69de29b..00000000 diff --git a/test/jest/.eslintrc.js b/test/jest/.eslintrc.js deleted file mode 100755 index 1b7846dd..00000000 --- a/test/jest/.eslintrc.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - extends: [ - // Removes 'no-undef' lint errors for Jest global functions (`describe`, `it`, etc), - // add Jest-specific lint rules and Jest plugin - // See https://github.com/jest-community/eslint-plugin-jest#recommended - "plugin:jest/recommended", - // Uncomment following line to apply style rules - // 'plugin:jest/style', - ], -}; diff --git a/test/jest/.gitignore b/test/jest/.gitignore deleted file mode 100755 index 22f348a1..00000000 --- a/test/jest/.gitignore +++ /dev/null @@ -1 +0,0 @@ -coverage/* \ No newline at end of file diff --git a/test/jest/__tests__/App.spec.js b/test/jest/__tests__/App.spec.js deleted file mode 100755 index e2e5d809..00000000 --- a/test/jest/__tests__/App.spec.js +++ /dev/null @@ -1,45 +0,0 @@ -import { mount, createLocalVue, shallowMount } from '@vue/test-utils' -import QBUTTON from './demo/QBtn-demo.vue' -import * as All from 'quasar' -// import langEn from 'quasar/lang/en-us' // change to any language you wish! => this breaks wallaby :( -const { Quasar } = All - -const components = Object.keys(All).reduce((object, key) => { - const val = All[key] - if (val && val.component && val.component.name != null) { - object[key] = val - } - return object -}, {}) - -describe('Mount Quasar', () => { - const localVue = createLocalVue() - localVue.use(Quasar, { components }) // , lang: langEn - - const wrapper = mount(QBUTTON, { - localVue - }) - const vm = wrapper.vm - - it('has a created hook', () => { - expect(typeof vm.increment).toBe('function') - }) - - it('accesses the shallowMount', () => { - expect(vm.$el.textContent).toContain('rocket muffin') - expect(wrapper.text()).toContain('rocket muffin') // easier - expect(wrapper.find('p').text()).toContain('rocket muffin') - }) - - it('sets the correct default data', () => { - expect(typeof vm.counter).toBe('number') - const defaultData2 = QBUTTON.data() - expect(defaultData2.counter).toBe(0) - }) - - it('correctly updates data when button is pressed', async () => { - const button = wrapper.find('button') - await button.trigger('click') - expect(vm.counter).toBe(1) - }) -}) diff --git a/test/jest/__tests__/Form.spec.js b/test/jest/__tests__/Form.spec.js deleted file mode 100755 index d029854b..00000000 --- a/test/jest/__tests__/Form.spec.js +++ /dev/null @@ -1,35 +0,0 @@ -import { mount, createLocalVue } from '@vue/test-utils' -import FORM from './demo/FormDemo.vue' -import * as All from 'quasar' -const { Quasar } = All - -const components = Object.keys(All).reduce((object, key) => { - const val = All[key] - if (val && val.component && val.component.name != null) { - object[key] = val - } - return object -}, {}) - -describe('Profile Editor', () => { - const localVue = createLocalVue() - localVue.use(Quasar, { components }) - - const form = mount(FORM, { - localVue, - propsData: { - value: { - name: 'Dario' - } - } - }) - - it('sets the correct default data', () => { - expect(form.props('value').name).toBe('Dario') - - let qinputs = form.findAllComponents(components.QInput) - expect(qinputs.length).toBe(1) - expect(qinputs.at(0).isVisible()).toBe(true) - expect(qinputs.at(0).vm.value).toBe('Dario') - }) -}) diff --git a/test/jest/__tests__/ProfileEditor.spec.js b/test/jest/__tests__/ProfileEditor.spec.js deleted file mode 100755 index 8f26f4b2..00000000 --- a/test/jest/__tests__/ProfileEditor.spec.js +++ /dev/null @@ -1,107 +0,0 @@ -import { mount, createLocalVue } from '@vue/test-utils' -import PROFILEEDITOR from '../../../src/components/ProfileEditor.vue' -import * as All from 'quasar' -const { Quasar } = All -import { Notify } from 'quasar' -import Vuelidate from 'vuelidate' - -const components = Object.keys(All).reduce((object, key) => { - const val = All[key] - if (val && val.component && val.component.name != null) { - object[key] = val - } - return object -}, {}) - -describe('Profile Editor', () => { - const localVue = createLocalVue() - // mock the notify plugin - Notify.create = () => { - return jest.fn() - } - localVue.use(Quasar, { components, plugins: [Notify] }) - localVue.use(Vuelidate) - - const editor = mount(PROFILEEDITOR, { - localVue, - propsData: { - value: { - name: 'Dario', - surname: 'Salvi', - dateOfBirth: '1978/01/01', - country: 'gb', - language: 'en', - sex: 'male', - weight: 82, - height: 180, - diseases: [], - medications: [], - studiesSuggestions: true - }, - buttonCancel: 'cancel', - buttonOk: 'next' - }, - mocks: { - // let's mock i18n, we don't need it for this test - $t: () => { return 'xxx' }, - $i18n: { - t: () => { return 'xxx' } - } - } - }) - - it('has a created hook', () => { - expect(typeof editor.vm.selectLanguage).toBe('function') - }) - - it('sets the correct default data', () => { - expect(editor.props('value').name).toBe('Dario') - expect(editor.props('value').surname).toBe('Salvi') - let qinputs = editor.findAllComponents(components.QInput) - // there should be 5 input fields (name, surname, DOB, weight, hight) - expect(qinputs.length).toBe(5) - expect(qinputs.at(0).isVisible()).toBe(true) - expect(qinputs.at(1).isVisible()).toBe(true) - expect(qinputs.at(2).isVisible()).toBe(true) - expect(qinputs.at(3).isVisible()).toBe(true) - expect(qinputs.at(4).isVisible()).toBe(true) - expect(qinputs.at(0).vm.value).toBe('Dario') - expect(qinputs.at(1).vm.value).toBe('Salvi') - expect(qinputs.at(2).vm.value).toBe('1978/01/01') - expect(qinputs.at(3).vm.value).toBe(82) - expect(qinputs.at(4).vm.value).toBe(180) - - let qtoggles = editor.findAllComponents(components.QToggle) - expect(qtoggles.length).toBe(1) // one toggle only: studiesSuggestions - expect(qtoggles.at(0).vm.value).toBe(true) - }) - - it('if wrong data is input, no next button can be called', async () => { - const inputs = editor.findAll('input') - // set name to empty - inputs.at(0).setValue('') - - const buttons = editor.findAll('button') - // 2 buttons: cancel an next - expect(buttons.length).toBe(2) - buttons.at(1).trigger('click') - await editor.vm.$nextTick() - // button Positive is not called - expect(editor.emitted().buttonCancel).toBeFalsy() - expect(editor.emitted().buttonOK).toBeFalsy() - }) - - it('cancel button is always called', async () => { - const inputs = editor.findAll('input') - // set name to empty - inputs.at(0).setValue('') - - const buttons = editor.findAll('button') - expect(buttons.length).toBe(2) - buttons.at(0).trigger('click') - await editor.vm.$nextTick() - // button Positive is not called - expect(editor.emitted().buttonCancel).toBeTruthy() - expect(editor.emitted().buttonOK).toBeFalsy() - }) -}) diff --git a/test/jest/__tests__/Rrule.spec.js b/test/jest/__tests__/Rrule.spec.js deleted file mode 100755 index a74394c9..00000000 --- a/test/jest/__tests__/Rrule.spec.js +++ /dev/null @@ -1,90 +0,0 @@ -import { RRule } from 'rrule' - -function toUTC (d) { - return new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds())) -} - -function fromUTC (d) { - return new Date(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds()) -} - -describe('When testing RRules', () => { - test('a daily sch is not available before start and available after start', () => { - let startDate = new Date(2020, 1, 10, 12, 30, 0, 0) - let rr = new RRule({ - freq: RRule.DAILY, - interval: 1, - dtstart: toUTC(startDate) - }) - let before = rr.before(toUTC(new Date(2020, 1, 10, 12, 29, 0, 0))) - let after = rr.after(toUTC(new Date(2020, 1, 10, 12, 31, 0, 0))) - - expect(before).toBeNull() - expect(after).not.toBeNull() - after = fromUTC(after) - expect(after.getHours()).toBe(12) - expect(after.getMinutes()).toBe(30) - expect(after.getSeconds()).toBe(0) - }) - - test('a daily schedule starts at the beginning of the day', () => { - let startEvent = new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15) - startEvent.setHours(0, 0, 1) - let rr = new RRule({ - freq: RRule.DAILY, - interval: 1, - dtstart: toUTC(startEvent) - }) - - let startOfToday = new Date() - startOfToday.setHours(0, 0, 0, 0) - - let instances = rr.between(toUTC(startOfToday), toUTC(new Date())) - expect(instances.length).toBe(1) - let dd = fromUTC(instances[0]) - expect(dd.getHours()).toBe(0) - }) - - test('a daily schedule with hours starts at that hour', () => { - let startEvent = new Date(2020, 1, 10, 12, 0, 0, 0, 1) - let rr = new RRule({ - freq: RRule.DAILY, - interval: 1, - dtstart: toUTC(startEvent), - byhour: [ 19 ] - }) - - let before = new Date(2020, 1, 15, 18, 59, 59, 59, 999) - let after = new Date(2020, 1, 15, 19, 1, 1, 1, 1) - - let instances = rr.between(toUTC(before), toUTC(after)) - expect(instances.length).toBe(1) - let dd = fromUTC(instances[0]) - expect(dd.getHours()).toBe(19) - }) - - test('a daily schedule with 2 hours starts at those hour', () => { - let startEvent = new Date(2020, 1, 10, 12, 0, 0, 0, 1) - startEvent.setHours(0, 0, 0, 1) - let rr = new RRule({ - freq: RRule.DAILY, - interval: 1, - dtstart: toUTC(startEvent), - byhour: [ 10, 18 ] - }) - - let after = new Date(2020, 1, 15, 0, 0, 0, 0, 1) - let before = new Date(2020, 1, 16, 23, 59, 59, 59, 999) - - let instances = rr.between(toUTC(after), toUTC(before)) - expect(instances.length).toBe(4) - let dd = fromUTC(instances[0]) - expect(dd.getHours()).toBe(10) - dd = fromUTC(instances[1]) - expect(dd.getHours()).toBe(18) - dd = fromUTC(instances[2]) - expect(dd.getHours()).toBe(10) - dd = fromUTC(instances[3]) - expect(dd.getHours()).toBe(18) - }) -}) diff --git a/test/jest/__tests__/demo/FormDemo.vue b/test/jest/__tests__/demo/FormDemo.vue deleted file mode 100755 index 2f550adb..00000000 --- a/test/jest/__tests__/demo/FormDemo.vue +++ /dev/null @@ -1,25 +0,0 @@ - - - diff --git a/test/jest/__tests__/demo/QBtn-demo.vue b/test/jest/__tests__/demo/QBtn-demo.vue deleted file mode 100755 index a5398cc5..00000000 --- a/test/jest/__tests__/demo/QBtn-demo.vue +++ /dev/null @@ -1,24 +0,0 @@ - - - diff --git a/test/jest/__tests__/scheduler.spec.js b/test/jest/__tests__/scheduler.spec.js deleted file mode 100755 index f307e4b6..00000000 --- a/test/jest/__tests__/scheduler.spec.js +++ /dev/null @@ -1,1037 +0,0 @@ -import { isTaskIntervalDue, generateTasker, scheduleNotificationsSingleStudy } from '../../../src/modules/scheduler.js' -import notifications from '../../../src/modules/notifications/notifications.js' - -jest.mock('quasar') -jest.mock('modules/notifications/notifications') - -describe('When testing the scheduler', () => { - test('an always on task is due when between start and end time', () => { - let acceptTime = new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - alwaysOn: true, - startEvent: 'consent', - startDelaySecs: 86400, - untilSecs: 100000000 - } - let due = isTaskIntervalDue(scheduling, acceptTime) - - expect(due).toBe(true) - }) - - test('an always on task is due when after start and no end untilSec is specified', () => { - let acceptTime = new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - alwaysOn: true, - startEvent: 'consent', - startDelaySecs: 86400 - } - let due = isTaskIntervalDue(scheduling, acceptTime) - - expect(due).toBe(true) - }) - - test('an always on task is not due before start', () => { - let acceptTime = new Date(new Date().getTime() + 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - alwaysOn: true, - startEvent: 'consent', - startDelaySecs: 86400 - } - let due = isTaskIntervalDue(scheduling, acceptTime) - - expect(due).toBe(false) - }) - - test('a task depending on another task is not due before the other task', () => { - let acceptTime = new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - alwaysOn: false, - startEvent: 'taskExecution', - eventTaskId: 1, - startDelaySecs: 0, - untilSecs: 3600 - } - let due = isTaskIntervalDue(scheduling, acceptTime, [{ taskId: 1, consented: true }]) - - expect(due).toBe(false) - }) - - test('a task depending on another task is not due if other task is not consented', () => { - let acceptTime = new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - startEvent: 'taskExecution', - eventTaskId: 1, - startDelaySecs: 0, - untilSecs: 3600 - } - let due = isTaskIntervalDue(scheduling, acceptTime, [{ taskId: 1, consented: false }]) - - expect(due).toBe(false) - }) - - test('a task depending on another task and that was executed long ago and has expired is not due', () => { - let acceptTime = new Date(new Date().getTime() - 4 * 24 * 60 * 60 * 1000).toISOString() // 4 days ago - let scheduling = { - startEvent: 'taskExecution', - eventTaskId: 1, - startDelaySecs: 0, - untilSecs: 3600, - intervalType: 'd', - interval: 1, - occurrences: 1 - } - let due = isTaskIntervalDue(scheduling, acceptTime, [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 3 * 24 * 60 * 60 * 1000).toISOString() // 3 days ago - }]) - - expect(due).toBe(false) - }) - - test('a task depending on another task and that has not expired is due', () => { - let acceptTime = new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() - let scheduling = { - startEvent: 'taskExecution', - eventTaskId: 1, - startDelaySecs: 900, // 15 m - untilSecs: 7200 // 2 hours - } - let due = isTaskIntervalDue(scheduling, acceptTime, [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 30 * 60 * 1000).toISOString() // 30 m ago - }]) - - expect(due).toBe(true) - }) - - test('a rejected study is not scheduled', () => { - let studyDescr = [{ - _key: '1234' - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'rejected' - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('an ended study is not scheduled', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - } - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15).toISOString() - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - expect(tasks.completedStudyAlert).not.toBeUndefined() - }) - - test('a non consented task is not scheduled', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: false, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString() - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a daily task appears at the beginning of today', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - - expect(tasks.upcoming[0].type).toBe('smwt') - expect(tasks.upcoming[0].studyKey).toBe('1234') - expect(tasks.upcoming[0].taskId).toBe(1) - - expect(tasks.upcoming[0].due.getDate()).toBe(new Date().getDate()) - expect(tasks.upcoming[0].due.getMonth()).toBe(new Date().getMonth()) - expect(tasks.upcoming[0].due.getYear()).toBe(new Date().getYear()) - expect(tasks.upcoming[0].due.getHours()).toBe(0) - expect(tasks.upcoming[0].due.getMinutes()).toBe(0) - }) - - test('a weekly task is not available 4 days after being executed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'tugt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - untilSecs: 5184000, // 60 days - interval: 7, - occurrences: 8 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - // tasks expected to be executed 18 days ago and 11 days ago and 4 days ago - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 18).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - // 4 days ago - lastExecuted: new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 4 - 1000 * 60 * 60)).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a weekly task is available 7 days after being executed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 120).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'tugt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - untilSecs: 5184000, // 60 days validity - interval: 7, - occurrences: 8 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - // tasks expected to be executed 14 days (and 1h) ago and 7 days ago and today - acceptedTS: new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 14 - 1000 * 60 * 60)).toISOString(), // started 15 days ago - taskItemsConsent: [{ - taskId: 1, - consented: true, - // executed 7 days ago, so due today - lastExecuted: new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 11)).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a daily task is not available after all occurrences have finished', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 120).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'tugt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - untilSecs: 5184000, // 60 days validity - interval: 7, - occurrences: 4 // only 4 occurrences - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - // tasks expected to be executed 32 days (and 1h) ago, then 25, then 18, then 11 - acceptedTS: new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 32 - 1000 * 60 * 60)).toISOString(), // started 15 days ago - taskItemsConsent: [{ - taskId: 1, - consented: true, - // executed 11 days ago, nothing due today - lastExecuted: new Date(new Date().getTime() - (1000 * 60 * 60 * 24 * 11)).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a study beyond end date is marked as completed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - title: { - en: 'study' - }, - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - expect(tasks.completedStudyAlert).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle.en).toBe('study') - expect(tasks.completedStudyAlert.studyPart).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyPart.studyKey).toBe('1234') - }) - - test('a study with an ended task is marked as completed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - title: { - en: 'study' - }, - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24 // 1 day - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - expect(tasks.completedStudyAlert).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle.en).toBe('study') - expect(tasks.completedStudyAlert.studyPart).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyPart.studyKey).toBe('1234') - }) - - test('a study with no more occurrences is marked as completed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - title: { - en: 'study' - }, - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - occurrences: 5 - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 7).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 2).toISOString() - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - expect(tasks.completedStudyAlert).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyTitle.en).toBe('study') - expect(tasks.completedStudyAlert.studyPart).not.toBeFalsy() - expect(tasks.completedStudyAlert.studyPart.studyKey).toBe('1234') - }) - - test('a daily task that starts 2 days after consent doesnt appear before', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - startDelaySecs: 60 * 60 * 24 * 2 // 2 days after consent - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString(), // yesterday - taskItemsConsent: [{ - taskId: 1, - consented: true }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - }) - - test('a daily task that ends 2 days after consent disappears after', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 10).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24 * 2 // 2 days after consent - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString(), // 3 days ago - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString() // yesterday - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - }) - - test('a task with occurrence 1 never executed is missed on the day of consent', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - occurrences: 1 - } - }] - }] - let consent = new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 30) - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: consent.toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(1) - expect(tasks.alwaysOn.length).toBe(0) - - expect(tasks.missed[0].type).toBe('smwt') - expect(tasks.missed[0].studyKey).toBe('1234') - expect(tasks.missed[0].taskId).toBe(1) - - expect(tasks.missed[0].due.getDate()).toBe(consent.getDate()) - expect(tasks.missed[0].due.getMonth()).toBe(consent.getMonth()) - expect(tasks.missed[0].due.getYear()).toBe(consent.getYear()) - - expect(tasks.missed[0].due.getHours()).toBe(0) - expect(tasks.missed[0].due.getMinutes()).toBe(0) - }) - - test('a weekly task that was not executed this week is put into missed', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'w', - interval: 1, - months: [], - monthDays: [], - weekDays: [] - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 3).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(1) - expect(tasks.alwaysOn.length).toBe(0) - - expect(tasks.missed[0].type).toBe('smwt') - expect(tasks.missed[0].studyKey).toBe('1234') - expect(tasks.missed[0].taskId).toBe(1) - }) - - test('a daily task at a given hour time is scheduled at that hour', () => { - let hour = new Date(new Date().getTime() - 1000).getHours() - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - hours: [hour] // the hour of now - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 15).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 1).toISOString() // one day ago - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - - expect(tasks.upcoming.length).toBe(1) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - - expect(tasks.upcoming[0].type).toBe('smwt') - expect(tasks.upcoming[0].studyKey).toBe('1234') - expect(tasks.upcoming[0].taskId).toBe(1) - expect(tasks.upcoming[0].due.getHours()).toBe(hour) - }) - - test('a daily task at given hours that was missed appears as missed', () => { - // the hour of 4 and 1 hour ago - let h1 = new Date(new Date().getTime() - 1000 * 60 * 60 * 4).getHours() - let h2 = new Date(new Date().getTime() - 1000 * 60 * 60 * 1).getHours() - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - occurrences: 2, - hours: [ h1, h2 ] - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 1000 * 60 * 60 * 28).toISOString(), // accepted yesterday - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 26).toISOString() // yesterday, but before the last one - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(1) - expect(tasks.missed[0].type).toBe('smwt') - expect(tasks.missed[0].studyKey).toBe('1234') - expect(tasks.missed[0].taskId).toBe(1) - expect(tasks.missed[0].due.getHours()).toBe(h2) - }) - - test('a daily task at given hours appears also the second time', () => { - let h1 = new Date(new Date().getTime() - 1000 * 60 * 60 * 4).getHours() - let h2 = new Date(new Date().getTime() - 1000 * 60 * 60 * 1).getHours() - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - hours: [ h1, h2 ] - } - }] - }] - let today = new Date() - today.setHours(0, 1, 1) - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: today.toISOString(), // accepted today - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 60 * 3).toISOString() // today after 1st but before 2nd - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.missed.length).toBe(0) - expect(tasks.upcoming[0].type).toBe('smwt') - expect(tasks.upcoming[0].studyKey).toBe('1234') - expect(tasks.upcoming[0].taskId).toBe(1) - expect(tasks.upcoming[0].due.getHours()).toBe(h2) - }) - - test('a daily task at given hour doesnt appear before that hour', () => { - let h1 = new Date(new Date().getTime() + 1000 * 60 * 60 * 1).getHours() // hour in the future - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - hours: [ h1 ] - } - }] - }] - let today = new Date() - today.setHours(0, 1, 1) - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: today.toISOString(), // accepted today - taskItemsConsent: [{ - taskId: 1, - consented: true - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - }) - - test('a task due 15 minutes another task is scheduled', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1 - } - }, { - id: 2, - type: 'form', - scheduling: { - startEvent: 'taskExecution', - eventTaskId: 1, - intervalType: 'd', - interval: 1, - startDelaySecs: 900, // 15 m - untilSecs: 7200 // 2 hours - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 30 * 60 * 1000).toISOString() // 30 m ago - }, { - taskId: 2, - consented: true - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.upcoming[0].taskId).toBe(2) - - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a task due after another task and that has already been performed is not scheduled', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1 - } - }, { - id: 2, - type: 'form', - scheduling: { - startEvent: 'taskExecution', - eventTaskId: 1, - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24 * 5 // 5 days - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 30 * 60 * 1000).toISOString() // 30 m ago - }, { - taskId: 2, - consented: true, - lastExecuted: new Date(new Date().getTime() - 30 * 60 * 1000).toISOString() // 30 m ago - }] - }] - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a daily task started after another task, performed the day before, is scheduled', () => { - let studyDescr = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24 * 1 // 1 day - } - }, { - id: 2, - type: 'form', - scheduling: { - startEvent: 'taskExecution', - eventTaskId: 1, - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24 * 5 // 5 days - } - }] - }] - let studiesPart = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString(), - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 25 * 60 * 60 * 1000).toISOString() // 2 d and 1 h ago - }, { - taskId: 2, - consented: true, - lastExecuted: new Date(new Date().getTime() - 2 * 24 * 60 * 60 * 1000).toISOString() // 2 d ago - }] - }] - - let tasks = generateTasker(studiesPart, studyDescr) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.upcoming[0].taskId).toBe(2) - - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a daily task due multiple times a day sends notifications when the task is due', async () => { - let h1 = new Date(new Date().getTime() - 1000 * 60 * 60 * 1).getHours() // hour in the past - let h2 = new Date(new Date().getTime() + 1000 * 60 * 60 * 2).getHours() // 2 hours in the future - let studyDescr = { - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), // 2 months ago - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 30).toISOString().substring(0, 10) // in a month - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - intervalType: 'd', - interval: 1, - untilSecs: 60 * 60 * 24, // 24 hours - hours: [h1, h2] - } - }] - } - - let today = new Date() - today.setHours(0, 1, 1) // remove minutes and seconds - let studiesPart = { - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: today.toISOString(), // accepted today - taskItemsConsent: [{ - taskId: 1, - consented: true, - lastExecuted: new Date(new Date().getTime() - 1000 * 60 * 30).toISOString() // 30 minutes ago - }] - } - - await scheduleNotificationsSingleStudy(studyDescr, studiesPart) - - expect(notifications.schedule.mock.calls.length).toBe(1) - expect(notifications.schedule.mock.calls[0][0].length).toBe(1) - expect(notifications.schedule.mock.calls[0][0][0].trigger.at.getHours()).toBe(h2) - }) - - test('a daily task delayed 1 day is available next day', async () => { - let studyDescrs = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), // 2 months ago - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10) // in 2 months - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - untilSecs: 5184000, - startDelaySecs: 86400, - intervalType: 'd', - interval: 7, - occurrences: 8 - } - }] - }] - - let yesterday = new Date(new Date().getTime() - 1000 * 60 * 60 * 20) // yesterday, but later than now - let studiesParts = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: yesterday.toISOString(), // accepted yesterday - taskItemsConsent: [{ - taskId: 1, - consented: true - }] - }] - - let tasks = generateTasker(studiesParts, studyDescrs) - expect(tasks.upcoming.length).toBe(1) - expect(tasks.upcoming[0].taskId).toBe(1) - - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) - - test('a daily task delayed 1 day is not available the same day', async () => { - let studyDescrs = [{ - _key: '1234', - generalities: { - startDate: new Date(new Date().getTime() - 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10), // 2 months ago - endDate: new Date(new Date().getTime() + 1000 * 60 * 60 * 24 * 60).toISOString().substring(0, 10) // in 2 months - }, - tasks: [{ - id: 1, - type: 'smwt', - scheduling: { - startEvent: 'consent', - untilSecs: 5184000, - startDelaySecs: 86400, - intervalType: 'd', - interval: 7, - occurrences: 8 - } - }] - }] - - let today = new Date(new Date().getTime() - 1000 * 60 * 60 * 1) // 1 hour ago - let studiesParts = [{ - studyKey: '1234', - currentStatus: 'accepted', - acceptedTS: today.toISOString(), // accepted today - taskItemsConsent: [{ - taskId: 1, - consented: true - }] - }] - - let tasks = generateTasker(studiesParts, studyDescrs) - expect(tasks.upcoming.length).toBe(0) - expect(tasks.missed.length).toBe(0) - expect(tasks.alwaysOn.length).toBe(0) - }) -}) diff --git a/test/jest/__tests__/stats.spec.js b/test/jest/__tests__/stats.spec.js deleted file mode 100644 index 400b501f..00000000 --- a/test/jest/__tests__/stats.spec.js +++ /dev/null @@ -1,203 +0,0 @@ -import { mean, RollingStats, WindowedRollingStats, variance } from '../../../src/modules/stats.js' - -describe('When testing stats', () => { - test('mean is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - let m = mean(arr) - expect(m).not.toBeUndefined() - expect(m).toBe(5) - }) - - test('variance is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - let v = variance(arr) - expect(v).not.toBeUndefined() - expect(v).toBe(7.5) - }) - - test('sample variance is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - let v = variance(arr, false) - expect(v).not.toBeUndefined() - expect(v).toBeCloseTo(6.666667, 5) - }) -}) - -describe('When testing rolling stats', () => { - let estimator = new RollingStats() - - beforeEach(() => { - estimator.reset() - }) - - test('mean is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - arr.forEach(element => { - estimator.addValue(element) - }) - - let m = estimator.getMean() - expect(m).not.toBeUndefined() - expect(m).toBe(5) - }) - - test('population variance is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - arr.forEach(element => { - estimator.addValue(element) - }) - - let v = estimator.getVariance() - expect(v).not.toBeUndefined() - expect(v).toBe(7.5) - }) - - test('sample variance is correct', () => { - let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9] - - arr.forEach(element => { - estimator.addValue(element) - }) - - let v = estimator.getVariance(false) - expect(v).not.toBeUndefined() - expect(v).toBeCloseTo(6.666667, 5) - }) -}) - -describe('When testing windowed rolling stats', () => { - let estimator = new WindowedRollingStats(5) - - beforeEach(() => { - estimator.reset() - }) - - test('mean is correct', () => { - estimator.addValue(1) - let m = estimator.getMean() - expect(m).toBe(1) - - estimator.addValue(2) - m = estimator.getMean() - expect(m).toBe(1.5) - - estimator.addValue(3) - m = estimator.getMean() - expect(m).toBe(2) - - estimator.addValue(4) - m = estimator.getMean() - expect(m).toBe(2.5) - - estimator.addValue(5) - m = estimator.getMean() - expect(m).toBe(3) - - estimator.addValue(6) - m = estimator.getMean() - expect(m).toBe(4) - - estimator.addValue(7) - m = estimator.getMean() - expect(m).toBe(5) - - estimator.addValue(8) - m = estimator.getMean() - expect(m).toBe(6) - - estimator.addValue(9) - m = estimator.getMean() - expect(m).toBe(7) - - estimator.addValue(10) - m = estimator.getMean() - expect(m).toBe(8) - - estimator.addValue(11) - m = estimator.getMean() - expect(m).toBe(9) - - estimator.addValue(12) - m = estimator.getMean() - expect(m).toBe(10) - - estimator.addValue(13) - m = estimator.getMean() - expect(m).toBe(11) - - estimator.addValue(14) - m = estimator.getMean() - expect(m).toBe(12) - - estimator.addValue(15) - m = estimator.getMean() - expect(m).toBe(13) - }) - - test('population variance is correct', () => { - estimator.addValue(1) - let v = estimator.getVariance(false) - expect(v).toBeUndefined() - - estimator.addValue(9) - v = estimator.getVariance(false) - expect(v).toBe(16, 2) - - estimator.addValue(2) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(12.7, 1) - - estimator.addValue(8) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(12.5, 1) - - estimator.addValue(3) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(10.6, 1) - - estimator.addValue(7) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(7.8, 1) - - estimator.addValue(4) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(5.4, 1) - - estimator.addValue(6) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(3.4, 1) - - estimator.addValue(5) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(2, 1) - - estimator.addValue(0) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(5.8, 1) - - estimator.addValue(9) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(8.6, 1) - - estimator.addValue(8) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(9.8, 1) - - estimator.addValue(7) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(10.2, 1) - - estimator.addValue(6) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(10.0, 1) - - estimator.addValue(5) - v = estimator.getVariance(false) - expect(v).toBeCloseTo(2, 1) - }) -}) diff --git a/test/jest/jest.setup.js b/test/jest/jest.setup.js deleted file mode 100755 index 685e98d0..00000000 --- a/test/jest/jest.setup.js +++ /dev/null @@ -1,52 +0,0 @@ -// No console.log() / setTimeout -// console.log = jest.fn(() => { throw new Error('Do not use console.log() in production') }) -jest.setTimeout(1000) - -// jest speedup when errors are part of the game -// Error.stackTraceLimit = 0 - -global.Promise = require('promise') - -/* -import chai from 'chai' -// Make sure chai and jasmine ".not" play nice together -// https://medium.com/@RubenOostinga/combining-chai-and-jest-matchers-d12d1ffd0303 -// updated here: https://www.andrewsouthpaw.com/jest-chai/ -const originalNot = Object.getOwnPropertyDescriptor(chai.Assertion.prototype, 'not').get -Object.defineProperty(chai.Assertion.prototype, 'not', { - get() { - Object.assign(this, this.assignedNot) - return originalNot.apply(this) - }, - set(newNot) { - this.assignedNot = newNot - return newNot - } -}) - -// Combine both jest and chai matchers on expect -const originalExpect = global.expect - -global.expect = (actual) => { - const originalMatchers = originalExpect(actual) - const chaiMatchers = chai.expect(actual) - - // Add middleware to Chai matchers to increment Jest assertions made - const { assertionsMade } = originalExpect.getState() - Object.defineProperty(chaiMatchers, 'to', { - get() { - originalExpect.setState({ assertionsMade: assertionsMade + 1 }) - return chai.expect(actual) - }, - }) - - const combinedMatchers = Object.assign(chaiMatchers, originalMatchers) - return combinedMatchers -} -Object.keys(originalExpect).forEach(key => (global.expect[key] = originalExpect[key])) -*/ - -// do this to make sure we don't get multiple hits from both webpacks when running SSR -setTimeout(()=>{ - // do nothing -}, 1) diff --git a/test/jest/utils/index.js b/test/jest/utils/index.js deleted file mode 100755 index eeba4432..00000000 --- a/test/jest/utils/index.js +++ /dev/null @@ -1,70 +0,0 @@ -// this is mapped in jest.config.js to resolve @vue/test-utils -import { createLocalVue, shallowMount } from 'test-utils' - -import Vuex from 'vuex' -import VueRouter from 'vue-router' -import Quasar, { Cookies } from 'quasar' - -const mockSsrContext = () => { - return { - req: { - headers: {} - }, - res: { - setHeader: () => undefined - } - } -} - -// https://eddyerburgh.me/mock-vuex-in-vue-unit-tests -export const mountQuasar = (component, options = {}) => { - const localVue = createLocalVue() - const app = {} - - localVue.use(Vuex) - localVue.use(VueRouter) - localVue.use(Quasar) - const store = new Vuex.Store({}) - const router = new VueRouter() - - if (options) { - const ssrContext = options.ssr ? mockSsrContext() : null - - if (options.cookies) { - const cookieStorage = ssrContext ? Cookies.parseSSR(ssrContext) : Cookies - const cookies = options.cookies - Object.keys(cookies).forEach(key => { - cookieStorage.set(key, cookies[key]) - }) - } - - if (options.plugins) { - options.plugins.forEach(plugin => { - plugin({ app, store, router, Vue: localVue, ssrContext }) - }) - } - } - - // mock vue-i18n - const $t = () => {} - const $tc = () => {} - const $n = () => {} - const $d = () => {} - - return shallowMount(component, { - localVue: localVue, - store, - router, - mocks: { $t, $tc, $n, $d }, - // Injections for Components with a QPage root Element - provide: { - pageContainer: true, - layout: { - header: {}, - right: {}, - footer: {}, - left: {} - } - } - }) -} diff --git a/test/jest/utils/stub.css b/test/jest/utils/stub.css deleted file mode 100755 index a17b52df..00000000 --- a/test/jest/utils/stub.css +++ /dev/null @@ -1,9 +0,0 @@ -/* for mocking out css files in jest.config.js */ -/* - - moduleNameMapper: { - ... - '.*css$': '/test/jest/utils/stub.css' - }, - - */ diff --git a/test/scripts/i18LanguageCheck.mjs b/test/scripts/i18LanguageCheck.mjs deleted file mode 100755 index eb3fd03d..00000000 --- a/test/scripts/i18LanguageCheck.mjs +++ /dev/null @@ -1,79 +0,0 @@ -import languages from '../../src/i18n/index.mjs' - -const languageNames = Object.keys(languages) -const languageContents = Object.values(languages) - -const keys = new Map() - -function traverse (lang, obj, path) { - Object.keys(obj).forEach(key => { - if (isObject(obj) || isArray(obj)) { - let newPath = path + '.' + key - let langArray = keys.get(newPath) - langArray = addToLanguages(langArray, lang) - keys.set(newPath, langArray) - traverse(lang, obj[key], newPath) - } - }) -} - -function addToLanguages (array, lang) { - if (!array) { - const langArray = [] - langArray.push(lang) - array = langArray - } else { - array.push(lang) - } - return array -} - -function hasChild (obj) { - if (!obj) return - return !!Object.keys(obj).length -} - -function isArray (obj) { - return Array.isArray(obj) -} - -function isString (obj) { - return (typeof obj === 'string' || obj instanceof String) -} - -function isObject (obj) { - return typeof obj === 'object' && obj !== null -} - -function getInconsistencies () { - let inconsistencies = [] - for (let i = 0; i < languageContents.length; i++) { - const parentObject = languageContents[i] - let langName = languageNames[i] - traverse(langName, parentObject, '') - } - // Keys are populated, now count the amount of sv,en and other language values in each array and see if there are inconsistencies. - for (const [key, languages] of keys.entries()) { - const langAndLangCount = new Map() - let maxLangCount = -1 - for (const lang of languageNames) { - let langCount = languages.filter(l => l === lang).length - if (langCount > maxLangCount) { - maxLangCount = langCount - } - langAndLangCount.set(lang, langCount) - } - for (const [lang, langCount] of langAndLangCount.entries()) { - if (langCount < maxLangCount) { - let inconsistency = { - value: key, - langMissing: lang - } - inconsistencies.push(inconsistency) - } - } - } - return inconsistencies -} - -console.log(getInconsistencies())