From 7d39fb5d72ad441da3d190dbc76a291da4846d54 Mon Sep 17 00:00:00 2001 From: Meisam Seyed Aliroteh Date: Tue, 12 Dec 2023 05:57:12 -0800 Subject: [PATCH 1/3] Add lerna support and clean up all projects --- .github/workflows/lint.yml | 17 + .github/workflows/prettier.yml | 4 +- .github/workflows/tests.yml | 17 + .gitignore | 47 +- .husky/pre-commit | 6 +- .prettierignore | 4 - .prettierrc | 14 - .sfdx/tools/apex.db | Bin 5640192 -> 0 bytes .../lwc/apex/AppointmentController.d.ts | 75 - DriverLicenseParser/package-lock.json | 14381 ---------------- FindNearby/README.md | 64 - .../classes/MobileMapLayersService.cls | 123 - .../classes/MobileMapLayersServiceTest.cls | 46 - .../default/lwc/confirmModal/confirmModal.css | 25 - .../lwc/confirmModal/confirmModal.html | 14 - .../force-app/main/default/lwc/jsconfig.json | 12 - .../__tests__/data/oneLocation.json | 13 - .../__tests__/data/threeLocations.json | 35 - .../__tests__/locationsList.test.js | 215 - .../lwc/locationsList/locationsList.css | 168 - .../lwc/locationsList/locationsList.html | 88 - .../mapFilters/__tests__/mapFilters.test.js | 285 - .../default/lwc/mapFilters/mapFilters.css | 221 - .../default/lwc/mapFilters/mapFilters.html | 183 - .../main/default/lwc/mobileMap/mobileMap.css | 199 - .../main/default/lwc/mobileMap/mobileMap.html | 85 - .../data/getObjectInfosResponse.json | 174 - .../__tests__/mobileMapLayersMain.test.js | 56 - .../default/lwc/mobileMapLayersMain/config.js | 23 - .../mobileMapLayersMain.css | 32 - .../mobileMapLayersMain.html | 36 - .../objectIcon/__tests__/objectIcon.test.js | 34 - .../default/lwc/objectIcon/objectIcon.css | 10 - .../default/lwc/objectIcon/objectIcon.html | 10 - .../test/jest-mocks/lightning/modalBody.html | 1 - .../jest-mocks/lightning/modalFooter.html | 1 - .../jest-mocks/lightning/modalHeader.html | 1 - FindNearby/jest.config.js | 13 - FindNearby/package-lock.json | 13512 --------------- FindNearby/package.json | 50 - FindNearby/sfdx-project.json | 12 - FollowUpAppointment/CODEOWNERS | 2 - FollowUpAppointment/JenkinsfileFollow | 395 - FollowUpAppointment/README.md | 44 - .../config/project-scratch-def.json | 34 - .../classes/FollowUpAppointmentController.cls | 1959 --- .../ut_FollowUpAppointmentController.cls | 984 -- .../force-app/main/default/lwc/.eslintrc.json | 11 - ...ppointmentCustomToastNotifications.test.js | 88 - .../__tests__/followUpAppointmentMain.test.js | 25 - .../followUpAppointmentMain.css | 108 - .../followUpAppointmentMain.html | 152 - .../lwc/followUpAppointmentMain/labels.js | 19 - ...llowUpAppointmentSettingsContainer.test.js | 63 - .../followUpAppointmentSettingsContainer.css | 134 - .../labels.js | 67 - .../force-app/main/default/lwc/jsconfig.json | 12 - .../mobileAppointmentBookingCalendar.test.js | 25 - .../labels.js | 49 - .../mobileAppointmentBookingCalendar.css | 201 - .../mobileAppointmentBookingCalendar.html | 244 - ...tmentBookingCompactAppointmentInfo.test.js | 25 - .../labels.js | 7 - ...pointmentBookingCompactAppointmentInfo.css | 57 - ...ointmentBookingCompactAppointmentInfo.html | 11 - ...obileAppointmentBookingCustomToast.test.js | 25 - .../mobileAppointmentBookingCustomToast.css | 10 - .../mobileAppointmentBookingCustomToast.html | 19 - .../mobileAppointmentBookingLanding.test.js | 25 - .../mobileAppointmentBookingLanding/labels.js | 33 - .../mobileAppointmentBookingLanding.css | 27 - .../mobileAppointmentBookingLanding.html | 52 - .../labels.js | 17 - ...ppointmentBookingRescheduleAppointment.css | 187 - ...pointmentBookingRescheduleAppointment.html | 105 - ...pointmentBookingResourceAssignment.test.js | 25 - ...leAppointmentBookingResourceAssignment.css | 25 - ...eAppointmentBookingResourceAssignment.html | 24 - ...ileAppointmentBookingResourceAssignment.js | 48 - ...ointmentBookingSchedulingContainer.test.js | 25 - ...eAppointmentBookingSchedulingContainer.css | 9 - ...AppointmentBookingSchedulingContainer.html | 49 - ...leAppointmentBookingSlotsContainer.test.js | 25 - .../labels.js | 58 - ...mobileAppointmentBookingSlotsContainer.css | 114 - ...obileAppointmentBookingSlotsContainer.html | 67 - .../constantsLabels.js | 45 - .../mobileAppointmentBookingUtils.js | 1 - .../rebookingDateCalcHelpers | 46 - .../rebookingDateCalculationsHelpers | 40 - .../__tests__/mobileWorkFlowPage.test.js | 113 - .../default/lwc/mobileWorkFlowPage/labels.js | 64 - .../mobileWorkFlowPage/mobileWorkFlowPage.css | 116 - .../mobileWorkFlowPreviewScreen.test.js | 35 - .../lwc/mobileWorkFlowPreviewScreen/labels.js | 17 - .../mobileWorkFlowPreviewScreen.css | 212 - .../mobileWorkFlowScreenLayout.test.js | 147 - .../lwc/mobileWorkFlowScreenLayout/labels.js | 13 - .../mobileWorkFlowScreenLayout.css | 121 - .../default/lwc/modal/__tests__/modal.test.js | 25 - .../main/default/lwc/modal/modal.css | 24 - .../main/default/lwc/modal/modal.html | 21 - FollowUpAppointment/jest.config.js | 6 - FollowUpAppointment/package-lock.json | 9971 ----------- FollowUpAppointment/package.json | 38 - FollowUpAppointment/sfdx-project.json | 35 - HelloWorld/.husky/pre-commit | 4 - HelloWorld/.vscode/extensions.json | 9 - HelloWorld/.vscode/launch.json | 16 - HelloWorld/.vscode/settings.json | 7 - .../default/lwc/helloWorld/helloWorld.html | 3 - HelloWorld/package.json | 41 - MobileDashboard/README.md | 39 - .../classes/DashboardPostInstallTest.cls | 14 - .../classes/DashboardSettingsService.cls | 198 - .../classes/DashboardSettingsServiceTest.cls | 218 - .../__tests__/alertMessage.test.js | 56 - .../default/lwc/alertMessage/alertMessage.css | 19 - .../lwc/alertMessage/alertMessage.html | 23 - .../main/default/lwc/alertMessage/labels.js | 7 - .../basicFilter/__tests__/basicFilter.test.js | 219 - .../default/lwc/basicFilter/basicFilter.css | 16 - .../default/lwc/basicFilter/basicFilter.html | 96 - .../main/default/lwc/basicFilter/labels.js | 55 - .../__tests__/dashboardAddButton.test.js | 35 - .../dashboardAddButton.html | 11 - .../__tests__/dashboardIconsPicker.test.js | 30 - .../dashboardIconsPicker.html | 19 - .../dashboardIconsPicker.js | 78 - .../lwc/dashboardIconsPicker/labels.js | 65 - .../__tests__/dashboardSettingsCard.test.js | 139 - .../dashboardSettingsCard.css | 89 - .../dashboardSettingsCard.html | 61 - .../lwc/dashboardSettingsCard/labels.js | 29 - .../dashboardSettingsMain.css | 38 - .../dashboardSettingsMain.html | 56 - .../lwc/dashboardSettingsMain/labels.js | 31 - .../__tests__/dashboardToastMessage.test.js | 46 - .../dashboardToastMessage.html | 39 - .../__tests__/editCardModal.test.js | 265 - .../lwc/editCardModal/editCardModal.css | 150 - .../lwc/editCardModal/editCardModal.html | 147 - .../force-app/main/default/lwc/jsconfig.json | 12 - .../lwc/mainDashboard/mainDashboard.css | 8 - .../lwc/mainDashboard/mainDashboard.html | 11 - .../__tests__/subFilterCard.test.js | 96 - .../main/default/lwc/subFilterCard/labels.js | 21 - .../lwc/subFilterCard/subFilterCard.css | 86 - .../lwc/subFilterCard/subFilterCard.html | 62 - .../subFilterSummaryComponent.test.js | 47 - .../subFilterSummaryComponent.css | 49 - .../subFilterSummaryComponent.html | 20 - .../lwc/summaryComponent/summaryComponent.css | 41 - .../summaryComponent/summaryComponent.html | 20 - .../test/jest-mocks/lightning/modalBody.html | 1 - .../jest-mocks/lightning/modalFooter.html | 1 - .../jest-mocks/lightning/modalHeader.html | 1 - MobileDashboard/jest.config.js | 13 - MobileDashboard/package.json | 41 - MobileDashboard/sfdx-project.json | 21 - MobileDashboard/yarn.lock | 4067 ----- NameAndSignatureCapture/package-lock.json | 14378 --------------- README.md | 99 +- .../.vscode/extensions.json | 9 - .../main/default/aura/.eslintrc.json | 8 - .../force-app/main/default/lwc/jsconfig.json | 13 - .../mobileAppointmentBookingCalendar.css | 192 - .../mobileAppointmentBookingCalendar.html | 243 - ...pointmentBookingCompactAppointmentInfo.css | 51 - .../mobileAppointmentBookingLanding.css | 20 - ...ppointmentBookingRescheduleAppointment.css | 170 - ...pointmentBookingRescheduleAppointment.html | 99 - ...leAppointmentBookingResourceAssignment.css | 27 - ...eAppointmentBookingResourceAssignment.html | 23 - ...eAppointmentBookingSchedulingContainer.css | 198 - ...AppointmentBookingSchedulingContainer.html | 46 - ...leAppointmentBookingSettingsContainer.html | 16 - ...mobileAppointmentBookingSlotsContainer.css | 113 - ...obileAppointmentBookingSlotsContainer.html | 67 - .../mobileAppointmentBookingUtils/constants | 8 - RescheduleAppointments/package.json | 43 - ServiceDocumentSamples/.husky/pre-commit | 4 - ServiceDocumentSamples/.prettierignore | 14 - ServiceDocumentSamples/.prettierrc | 13 - .../.vscode/extensions.json | 9 - ServiceDocumentSamples/.vscode/launch.json | 16 - ServiceDocumentSamples/.vscode/settings.json | 7 - .../main/default/aura/.eslintrc.json | 8 - ServiceDocumentSamples/package.json | 34 - ServiceDocumentSamples/yarn.lock | 4510 ----- UploadAndAnnotateImages/.husky/pre-commit | 4 - UploadAndAnnotateImages/.prettierignore | 10 - UploadAndAnnotateImages/.prettierrc | 13 - .../main/default/aura/.eslintrc.json | 8 - .../force-app/main/default/lwc/jsconfig.json | 12 - UploadAndAnnotateImages/package-lock.json | 7843 --------- UploadAndAnnotateImages/package.json | 48 - lerna.json | 4 + package.json | 26 +- .../DriverLicenseParser}/.eslintignore | 0 .../DriverLicenseParser}/.forceignore | 0 .../DriverLicenseParser}/.gitignore | 0 .../DriverLicenseParser}/.prettierignore | 4 +- .../DriverLicenseParser}/.prettierrc | 1 + .../DriverLicenseParser}/README.md | 0 .../config/project-scratch-def.json | 0 .../force-app/main/default/lwc/.eslintrc.json | 0 .../default/lwc/aamvaParser/aamvaParser.js | 0 .../lwc/aamvaParser/aamvaParser.js-meta.xml | 0 .../default/lwc/parserDemo/parserDemo.html | 0 .../main/default/lwc/parserDemo/parserDemo.js | 0 .../lwc/parserDemo/parserDemo.js-meta.xml | 0 .../DriverLicenseParser}/jest.config.js | 0 projects/DriverLicenseParser/package.json | 24 + .../DriverLicenseParser}/sfdx-project.json | 0 .../FindNearby}/.eslintignore | 0 .../FindNearby}/.forceignore | 0 .../FindNearby}/.gitignore | 0 .../FindNearby}/.prettierignore | 4 +- .../FindNearby}/.prettierrc | 1 + projects/FindNearby/README.md | 70 + .../classes/MobileMapLayersService.cls | 172 + .../MobileMapLayersService.cls-meta.xml | 2 +- .../classes/MobileMapLayersServiceTest.cls | 52 + .../MobileMapLayersServiceTest.cls-meta.xml | 2 +- .../force-app/main/default/lwc/.eslintrc.json | 0 .../__tests__/confirmModal.test.js | 18 +- .../default/lwc/confirmModal/confirmModal.css | 25 + .../lwc/confirmModal/confirmModal.html | 19 + .../default/lwc/confirmModal/confirmModal.js | 4 +- .../lwc/confirmModal/confirmModal.js-meta.xml | 4 +- .../__tests__/data/oneLocation.json | 13 + .../__tests__/data/threeLocations.json | 35 + .../__tests__/locationsList.test.js | 230 + .../lwc/locationsList/locationsList.css | 176 + .../lwc/locationsList/locationsList.html | 173 + .../lwc/locationsList/locationsList.js | 73 +- .../locationsList/locationsList.js-meta.xml | 4 +- .../mapFilters/__tests__/mapFilters.test.js | 312 + .../default/lwc/mapFilters/mapFilters.css | 236 + .../default/lwc/mapFilters/mapFilters.html | 228 + .../main/default/lwc/mapFilters/mapFilters.js | 97 +- .../lwc/mapFilters/mapFilters.js-meta.xml | 4 +- .../lwc/mobileMap/__tests__/mobileMap.test.js | 68 +- .../main/default/lwc/mobileMap/mobileMap.css | 199 + .../main/default/lwc/mobileMap/mobileMap.html | 125 + .../main/default/lwc/mobileMap/mobileMap.js | 20 +- .../lwc/mobileMap/mobileMap.js-meta.xml | 4 +- .../data/getObjectInfosResponse.json | 174 + .../__tests__/mobileMapLayersMain.test.js | 56 + .../default/lwc/mobileMapLayersMain/config.js | 23 + .../mobileMapLayersMain.css | 32 + .../mobileMapLayersMain.html | 39 + .../mobileMapLayersMain.js | 116 +- .../mobileMapLayersMain.js-meta.xml | 4 +- .../lwc/mobileMapLayersMain/overrideCSS.js | 0 .../objectIcon/__tests__/objectIcon.test.js | 34 + .../default/lwc/objectIcon/objectIcon.css | 10 + .../default/lwc/objectIcon/objectIcon.html | 13 + .../main/default/lwc/objectIcon/objectIcon.js | 2 +- .../lwc/objectIcon/objectIcon.js-meta.xml | 4 +- .../test/jest-mocks/lightning/modal.js | 2 +- .../test/jest-mocks/lightning/modalBody.html | 1 + .../test/jest-mocks/lightning/modalBody.js | 2 +- .../jest-mocks/lightning/modalFooter.html | 1 + .../test/jest-mocks/lightning/modalFooter.js | 2 +- .../jest-mocks/lightning/modalHeader.html | 1 + .../test/jest-mocks/lightning/modalHeader.js | 2 +- .../test/jest-mocks/lightning/uiGraphQLApi.js | 2 +- projects/FindNearby/jest.config.js | 17 + .../FindNearby}/package.json | 24 +- projects/FindNearby/sfdx-project.json | 12 + .../FollowUpAppointment}/.eslintignore | 0 .../FollowUpAppointment}/.prettierignore | 4 +- .../FollowUpAppointment}/.prettierrc | 1 + projects/FollowUpAppointment/README.md | 47 + .../config/project-scratch-def.json | 34 + ...owupAppointmentPerm.permissionset-meta.xml | 0 .../classes/FollowUpAppointmentController.cls | 2563 +++ ...FollowUpAppointmentController.cls-meta.xml | 2 +- .../ut_FollowUpAppointmentController.cls | 1171 ++ ...FollowUpAppointmentController.cls-meta.xml | 2 +- ...wupAppointmentCustomLabels.labels-meta.xml | 167 +- .../force-app/main/default/lwc/.eslintrc.json | 0 ...ppointmentCustomToastNotifications.test.js | 48 + ...UpAppointmentCustomToastNotifications.html | 0 ...owUpAppointmentCustomToastNotifications.js | 6 +- ...ntmentCustomToastNotifications.js-meta.xml | 0 .../followUpAppointmentMain.css | 108 + .../followUpAppointmentMain.html | 161 + .../followUpAppointmentMain.js | 168 +- .../followUpAppointmentMain.js-meta.xml | 4 +- .../lwc/followUpAppointmentMain/labels.js | 19 + .../followUpAppointmentMain/overrideCSS.js | 0 ...llowUpAppointmentSettingsContainer.test.js | 74 + .../followUpAppointmentSettingsContainer.css | 133 + .../followUpAppointmentSettingsContainer.html | 0 .../followUpAppointmentSettingsContainer.js | 153 +- ...UpAppointmentSettingsContainer.js-meta.xml | 0 .../labels.js | 67 + .../labels.js | 49 + .../mobileAppointmentBookingCalendar.css | 199 + .../mobileAppointmentBookingCalendar.html | 318 + .../mobileAppointmentBookingCalendar.js | 140 +- ...bileAppointmentBookingCalendar.js-meta.xml | 4 +- .../labels.js | 7 + ...pointmentBookingCompactAppointmentInfo.css | 56 + ...ointmentBookingCompactAppointmentInfo.html | 13 + ...ppointmentBookingCompactAppointmentInfo.js | 13 +- ...tBookingCompactAppointmentInfo.js-meta.xml | 4 +- .../mobileAppointmentBookingCustomToast.css | 10 + .../mobileAppointmentBookingCustomToast.html | 26 + .../mobileAppointmentBookingCustomToast.js | 18 +- ...eAppointmentBookingCustomToast.js-meta.xml | 4 +- .../mobileAppointmentBookingLanding/labels.js | 33 + .../mobileAppointmentBookingLanding.css | 27 + .../mobileAppointmentBookingLanding.html | 52 + .../mobileAppointmentBookingLanding.js | 475 +- ...obileAppointmentBookingLanding.js-meta.xml | 4 +- .../labels.js | 17 + ...ppointmentBookingRescheduleAppointment.css | 187 + ...pointmentBookingRescheduleAppointment.html | 159 + ...AppointmentBookingRescheduleAppointment.js | 17 +- ...ntBookingRescheduleAppointment.js-meta.xml | 0 .../labels.js | 10 +- ...leAppointmentBookingResourceAssignment.css | 25 + ...eAppointmentBookingResourceAssignment.html | 24 + ...ileAppointmentBookingResourceAssignment.js | 52 + ...tmentBookingResourceAssignment.js-meta.xml | 4 +- .../labels.js | 20 +- ...eAppointmentBookingSchedulingContainer.css | 9 + ...AppointmentBookingSchedulingContainer.html | 50 + ...leAppointmentBookingSchedulingContainer.js | 95 +- ...mentBookingSchedulingContainer.js-meta.xml | 4 +- .../labels.js | 58 + ...mobileAppointmentBookingSlotsContainer.css | 114 + ...obileAppointmentBookingSlotsContainer.html | 106 + .../mobileAppointmentBookingSlotsContainer.js | 171 +- ...pointmentBookingSlotsContainer.js-meta.xml | 4 +- .../constants.js | 8 + .../constantsLabels.js | 45 + .../formatHelpers.js | 42 +- .../mobileAppointmentBookingUtils.js | 0 .../mobileAppointmentBookingUtils.js-meta.xml | 4 +- .../rebookingDateCalculationsHelpers.js | 29 +- .../__tests__/mobileWorkFlowPage.test.js | 123 + .../default/lwc/mobileWorkFlowPage/labels.js | 64 + .../mobileWorkFlowPage/mobileWorkFlowPage.css | 117 + .../mobileWorkFlowPage.html | 0 .../mobileWorkFlowPage/mobileWorkFlowPage.js | 315 +- .../mobileWorkFlowPage.js-meta.xml | 0 .../mobileWorkFlowPreviewScreen.test.js | 36 + .../lwc/mobileWorkFlowPreviewScreen/labels.js | 17 + .../mobileWorkFlowPreviewScreen.css | 212 + .../mobileWorkFlowPreviewScreen.html | 0 .../mobileWorkFlowPreviewScreen.js | 31 +- .../mobileWorkFlowPreviewScreen.js-meta.xml | 0 .../mobileWorkFlowScreenLayout.test.js | 147 + .../lwc/mobileWorkFlowScreenLayout/labels.js | 13 + .../mobileWorkFlowScreenLayout.css | 121 + .../mobileWorkFlowScreenLayout.html | 0 .../mobileWorkFlowScreenLayout.js | 32 +- .../mobileWorkFlowScreenLayout.js-meta.xml | 4 +- .../main/default/lwc/modal/modal.css | 22 + .../main/default/lwc/modal/modal.html | 22 + .../force-app/main/default/lwc/modal/modal.js | 8 +- .../main/default/lwc/modal/modal.js-meta.xml | 4 +- ...owupAppointmentSettings__c.object-meta.xml | 0 .../Fields_To_Show_Page_1__c.field-meta.xml | 0 .../Fields_To_Show_Page_2__c.field-meta.xml | 0 .../Fields_To_Show_Page_3__c.field-meta.xml | 0 .../fields/Operating_Hours__c.field-meta.xml | 0 .../fields/Record_To_Create__c.field-meta.xml | 0 ...Scheduling_Horizon_Value__c.field-meta.xml | 0 .../Scheduling_Policy__c.field-meta.xml | 0 .../fields/Screen_Title_1__c.field-meta.xml | 0 .../fields/Screen_Title_2__c.field-meta.xml | 0 .../fields/Screen_Title_3__c.field-meta.xml | 0 .../ShowExactArrivalTime__c.field-meta.xml | 0 .../Technician_Assigment__c.field-meta.xml | 0 ...llow_Up_Appointments_Settings.tab-meta.xml | 2 +- .../FollowUpAppointment}/jest.config.js | 0 projects/FollowUpAppointment/package.json | 29 + .../FollowUpAppointment/sfdx-project.json | 35 + .../LocalPreview/HelloWorld}/.eslintignore | 0 .../LocalPreview/HelloWorld}/.forceignore | 0 .../LocalPreview/HelloWorld}/.gitignore | 0 .../LocalPreview/HelloWorld}/.prettierignore | 4 +- .../LocalPreview/HelloWorld}/.prettierrc | 1 + .../LocalPreview/HelloWorld}/README.md | 0 .../config/project-scratch-def.json | 0 .../HelloWorld}/configure_android_test_app.ts | 0 .../HelloWorld}/configure_ios_test_app.ts | 0 .../force-app/main/default/lwc/.eslintrc.json | 0 .../default/lwc/helloWorld/helloWorld.html | 6 + .../main/default/lwc/helloWorld/helloWorld.js | 0 .../lwc/helloWorld/helloWorld.js-meta.xml | 4 +- .../LocalPreview/HelloWorld}/jest.config.js | 0 .../LocalPreview/HelloWorld}/mobile-apps.json | 0 projects/LocalPreview/HelloWorld/package.json | 24 + .../HelloWorld}/scripts/apex/hello.apex | 0 .../HelloWorld}/scripts/soql/account.soql | 0 .../HelloWorld}/sfdx-project.json | 0 projects/LocalPreview/README.md | 87 + .../apps}/android/LwcTestApp/.gitignore | 0 .../apps}/android/LwcTestApp/.idea/.gitignore | 0 .../apps}/android/LwcTestApp/.idea/.name | 0 .../android/LwcTestApp/.idea/compiler.xml | 0 .../apps}/android/LwcTestApp/.idea/gradle.xml | 0 .../apps}/android/LwcTestApp/.idea/misc.xml | 0 .../apps}/android/LwcTestApp/.idea/vcs.xml | 0 .../apps}/android/LwcTestApp/app/.gitignore | 0 .../apps}/android/LwcTestApp/app/build.gradle | 0 .../android/LwcTestApp/app/proguard-rules.pro | 0 .../app/src/main/AndroidManifest.xml | 0 .../app/src/main/ic_launcher-playstore.png | Bin .../mobiletooling/lwctestapp/MainActivity.kt | 0 .../app/src/main/res/drawable/ic_info.xml | 0 .../res/drawable/ic_launcher_foreground.xml | 0 .../app/src/main/res/layout/activity_main.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../res/mipmap-hdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../res/mipmap-mdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../res/mipmap-xhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin .../app/src/main/res/values-night/themes.xml | 0 .../app/src/main/res/values/colors.xml | 0 .../res/values/ic_launcher_background.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/themes.xml | 0 .../apps}/android/LwcTestApp/build.gradle | 0 .../android/LwcTestApp/gradle.properties | 0 .../gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 .../apps}/android/LwcTestApp/gradlew | 0 .../apps}/android/LwcTestApp/gradlew.bat | 0 .../apps}/android/LwcTestApp/settings.gradle | 0 .../apps}/ios/LwcTestApp/.gitignore | 0 .../LwcTestApp.xcodeproj/project.pbxproj | 0 .../xcschemes/LwcTestApp.xcscheme | 0 .../LwcTestApp/LwcTestApp/AppDelegate.swift | 0 .../AppIcon.appiconset/Contents.json | 0 .../AppIcon.appiconset/Icon-1024@1x.png | Bin .../AppIcon.appiconset/Icon-20@1x.png | Bin .../AppIcon.appiconset/Icon-20@2x.png | Bin .../AppIcon.appiconset/Icon-20@3x.png | Bin .../AppIcon.appiconset/Icon-29@1x.png | Bin .../AppIcon.appiconset/Icon-29@2x.png | Bin .../AppIcon.appiconset/Icon-29@3x.png | Bin .../AppIcon.appiconset/Icon-40@2x.png | Bin .../AppIcon.appiconset/Icon-40@3x.png | Bin .../AppIcon.appiconset/Icon-60@2x.png | Bin .../AppIcon.appiconset/Icon-60@3x.png | Bin .../AppIcon.appiconset/Icon-76@1x.png | Bin .../AppIcon.appiconset/Icon-76@2x.png | Bin .../AppIcon.appiconset/Icon-83.5@2x.png | Bin .../LwcTestApp/Assets.xcassets/Contents.json | 0 .../Base.lproj/LaunchScreen.storyboard | 0 .../LwcTestApp/Base.lproj/Main.storyboard | 0 .../ios/LwcTestApp/LwcTestApp/Info.plist | 0 .../LwcTestApp/LwcTestApp/SceneDelegate.swift | 0 .../LwcTestApp/ViewController.swift | 0 .../MobileDashboard}/.eslintignore | 0 .../MobileDashboard}/.forceignore | 0 .../MobileDashboard}/.gitignore | 0 projects/MobileDashboard/.prettierignore | 12 + projects/MobileDashboard/.prettierrc | 14 + projects/MobileDashboard/README.md | 40 + ...MobileDashboardPerm.permissionset-meta.xml | 4 +- .../default/classes/DashboardPostInstall.cls | 11 +- .../classes/DashboardPostInstall.cls-meta.xml | 2 +- .../classes/DashboardPostInstallTest.cls | 19 + .../DashboardPostInstallTest.cls-meta.xml | 4 +- .../classes/DashboardSettingsService.cls | 216 + .../DashboardSettingsService.cls-meta.xml | 2 +- .../classes/DashboardSettingsServiceTest.cls | 251 + .../DashboardSettingsServiceTest.cls-meta.xml | 2 +- .../labels/CustomLabels.labels-meta.xml | 244 +- .../force-app/main/default/lwc/.eslintrc.json | 0 .../__tests__/alertMessage.test.js | 58 + .../default/lwc/alertMessage/alertMessage.css | 19 + .../lwc/alertMessage/alertMessage.html | 33 + .../default/lwc/alertMessage/alertMessage.js | 6 +- .../lwc/alertMessage/alertMessage.js-meta.xml | 4 +- .../main/default/lwc/alertMessage/labels.js | 7 + .../basicFilter/__tests__/basicFilter.test.js | 224 + .../default/lwc/basicFilter/basicFilter.css | 18 + .../default/lwc/basicFilter/basicFilter.html | 103 + .../default/lwc/basicFilter/basicFilter.js | 204 +- .../lwc/basicFilter/basicFilter.js-meta.xml | 4 +- .../main/default/lwc/basicFilter/labels.js | 55 + .../__tests__/dashboardAddButton.test.js | 35 + .../dashboardAddButton.html | 12 + .../dashboardAddButton/dashboardAddButton.js | 2 +- .../dashboardAddButton.js-meta.xml | 4 +- .../__tests__/dashboardIconsPicker.test.js | 30 + .../dashboardIconsPicker.css | 0 .../dashboardIconsPicker.html | 22 + .../dashboardIconsPicker.js | 148 + .../dashboardIconsPicker.js-meta.xml | 4 +- .../lwc/dashboardIconsPicker/labels.js | 65 + .../__tests__/dashboardSettingsCard.test.js | 150 + .../dashboardSettingsCard.css | 89 + .../dashboardSettingsCard.html | 84 + .../dashboardSettingsCard.js | 24 +- .../dashboardSettingsCard.js-meta.xml | 4 +- .../lwc/dashboardSettingsCard/labels.js | 29 + .../__tests__/dashboardSettingsMain.test.js | 120 +- .../dashboardSettingsMain.css | 38 + .../dashboardSettingsMain.html | 77 + .../dashboardSettingsMain.js | 115 +- .../dashboardSettingsMain.js-meta.xml | 4 +- .../lwc/dashboardSettingsMain/labels.js | 31 + .../lwc/dashboardSettingsMain/overrideCSS.js | 0 .../__tests__/dashboardToastMessage.test.js | 47 + .../dashboardToastMessage.html | 42 + .../dashboardToastMessage.js | 9 +- .../dashboardToastMessage.js-meta.xml | 4 +- .../__tests__/editCardModal.test.js | 273 + .../lwc/editCardModal/editCardModal.css | 151 + .../lwc/editCardModal/editCardModal.html | 215 + .../lwc/editCardModal/editCardModal.js | 152 +- .../editCardModal/editCardModal.js-meta.xml | 4 +- .../main/default/lwc/editCardModal/labels.js | 58 +- .../__tests__/mainDashboard.test.js | 70 +- .../lwc/mainDashboard/mainDashboard.css | 8 + .../lwc/mainDashboard/mainDashboard.html | 16 + .../lwc/mainDashboard/mainDashboard.js | 10 +- .../mainDashboard/mainDashboard.js-meta.xml | 4 +- .../__tests__/subFilterCard.test.js | 101 + .../main/default/lwc/subFilterCard/labels.js | 21 + .../lwc/subFilterCard/subFilterCard.css | 88 + .../lwc/subFilterCard/subFilterCard.html | 92 + .../lwc/subFilterCard/subFilterCard.js | 18 +- .../subFilterCard/subFilterCard.js-meta.xml | 4 +- .../subFilterSummaryComponent.test.js | 47 + .../subFilterSummaryComponent.css | 49 + .../subFilterSummaryComponent.html | 24 + .../subFilterSummaryComponent.js | 12 +- .../subFilterSummaryComponent.js-meta.xml | 4 +- .../lwc/summaryComponent/BuildGraphQL.js | 299 +- .../__tests__/summaryComponent.test.js | 108 +- .../lwc/summaryComponent/summaryComponent.css | 41 + .../summaryComponent/summaryComponent.html | 24 + .../lwc/summaryComponent/summaryComponent.js | 40 +- .../summaryComponent.js-meta.xml | 4 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-bg.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-cs.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-da.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-de.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-el.objectTranslation-meta.xml | 5 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-en_GB.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-es.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-es_MX.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-fi.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-fr.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-hr.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-hu.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-in.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-it.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-iw.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-ja.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-ko.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-nl_NL.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-no.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-pl.objectTranslation-meta.xml | 5 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-pt_BR.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-pt_PT.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-ro.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-ru.objectTranslation-meta.xml | 5 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-sk.objectTranslation-meta.xml | 5 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-sl.objectTranslation-meta.xml | 5 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-sv.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-th.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-tr.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-uk.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...d_Setting__c-vi.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-zh_CN.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- .../Custom_Logic__c.fieldTranslation-meta.xml | 2 +- .../Layout__c.fieldTranslation-meta.xml | 2 +- ..._Filter_Logic__c.fieldTranslation-meta.xml | 2 +- .../Main_Filter__c.fieldTranslation-meta.xml | 2 +- ...etting__c-zh_TW.objectTranslation-meta.xml | 2 +- .../Object_Name__c.fieldTranslation-meta.xml | 2 +- .../Order__c.fieldTranslation-meta.xml | 2 +- .../Sub_Filters__c.fieldTranslation-meta.xml | 2 +- .../Title__c.fieldTranslation-meta.xml | 2 +- ...obile_Dashboard_Setting__c.object-meta.xml | 4 +- .../fields/Custom_Logic__c.field-meta.xml | 2 +- .../fields/Layout__c.field-meta.xml | 2 +- .../Main_Filter_Logic__c.field-meta.xml | 2 +- .../fields/Main_Filter__c.field-meta.xml | 2 +- .../fields/Object_Name__c.field-meta.xml | 2 +- .../fields/Order__c.field-meta.xml | 2 +- .../fields/Sub_Filters__c.field-meta.xml | 2 +- .../fields/Title__c.field-meta.xml | 2 +- .../side_example.resource-meta.xml | 0 .../default/staticresources/side_example.svg | 0 .../stack_example.resource-meta.xml | 0 .../default/staticresources/stack_example.svg | 0 .../Mobile_Dashboard_Settings.tab-meta.xml | 2 +- .../translations/bg.translation-meta.xml | 35 +- .../translations/cs.translation-meta.xml | 38 +- .../translations/da.translation-meta.xml | 26 +- .../translations/de.translation-meta.xml | 47 +- .../translations/el.translation-meta.xml | 50 +- .../translations/en_GB.translation-meta.xml | 26 +- .../translations/es.translation-meta.xml | 47 +- .../translations/es_MX.translation-meta.xml | 47 +- .../translations/fi.translation-meta.xml | 35 +- .../translations/fr.translation-meta.xml | 44 +- .../translations/hr.translation-meta.xml | 35 +- .../translations/hu.translation-meta.xml | 32 +- .../translations/in.translation-meta.xml | 38 +- .../translations/it.translation-meta.xml | 38 +- .../translations/iw.translation-meta.xml | 20 +- .../translations/ja.translation-meta.xml | 35 +- .../translations/ko.translation-meta.xml | 26 +- .../translations/nl_NL.translation-meta.xml | 44 +- .../translations/no.translation-meta.xml | 26 +- .../translations/pl.translation-meta.xml | 38 +- .../translations/pt_BR.translation-meta.xml | 44 +- .../translations/pt_PT.translation-meta.xml | 44 +- .../translations/ro.translation-meta.xml | 47 +- .../translations/ru.translation-meta.xml | 29 +- .../translations/sk.translation-meta.xml | 35 +- .../translations/sl.translation-meta.xml | 41 +- .../translations/sv.translation-meta.xml | 29 +- .../translations/th.translation-meta.xml | 23 +- .../translations/tr.translation-meta.xml | 26 +- .../translations/uk.translation-meta.xml | 32 +- .../translations/vi.translation-meta.xml | 35 +- .../translations/zh_CN.translation-meta.xml | 17 +- .../translations/zh_TW.translation-meta.xml | 17 +- .../test/jest-mocks/lightning/modal.js | 2 +- .../test/jest-mocks/lightning/modalBody.html | 1 + .../test/jest-mocks/lightning/modalBody.js | 2 +- .../jest-mocks/lightning/modalFooter.html | 1 + .../test/jest-mocks/lightning/modalFooter.js | 2 +- .../jest-mocks/lightning/modalHeader.html | 1 + .../test/jest-mocks/lightning/modalHeader.js | 2 +- .../test/jest-mocks/lightning/uiGraphQLApi.js | 2 +- projects/MobileDashboard/jest.config.js | 17 + .../MobileDashboard}/package.json | 24 +- projects/MobileDashboard/sfdx-project.json | 21 + .../NameAndSignatureCapture}/.eslintignore | 0 .../NameAndSignatureCapture}/.forceignore | 0 .../NameAndSignatureCapture}/.gitignore | 0 .../NameAndSignatureCapture/.prettierignore | 12 + projects/NameAndSignatureCapture/.prettierrc | 14 + .../NameAndSignatureCapture}/README.md | 0 .../config/project-scratch-def.json | 0 .../force-app/main/default/lwc/.eslintrc.json | 5 +- .../lwc/signatureDemo/signatureDemo.css | 0 .../lwc/signatureDemo/signatureDemo.html | 0 .../lwc/signatureDemo/signatureDemo.js | 0 .../signatureDemo/signatureDemo.js-meta.xml | 0 .../default/lwc/signaturePad/signaturePad.css | 0 .../lwc/signaturePad/signaturePad.html | 0 .../default/lwc/signaturePad/signaturePad.js | 0 .../lwc/signaturePad/signaturePad.js-meta.xml | 0 .../NameAndSignatureCapture}/jest.config.js | 0 projects/NameAndSignatureCapture/package.json | 24 + .../sfdx-project.json | 0 projects/RescheduleAppointments/.eslintignore | 16 + .../RescheduleAppointments}/.forceignore | 0 .../RescheduleAppointments}/.gitignore | 0 .../RescheduleAppointments/.prettierignore | 12 + projects/RescheduleAppointments/.prettierrc | 14 + .../RescheduleAppointments}/README.md | 0 .../default/classes/AppointmentController.cls | 0 .../AppointmentController.cls-meta.xml | 2 +- .../customLabels/customLabels.labels-meta.xml | 127 +- .../force-app/main/default/lwc/.eslintrc.json | 14 + .../labels.js | 0 .../mobileAppointmentBookingCalendar.css | 190 + .../mobileAppointmentBookingCalendar.html | 321 + .../mobileAppointmentBookingCalendar.js | 0 ...bileAppointmentBookingCalendar.js-meta.xml | 4 +- ...tmentBookingCompactAppointmentInfo.test.js | 0 .../labels.js | 0 ...pointmentBookingCompactAppointmentInfo.css | 50 + ...ointmentBookingCompactAppointmentInfo.html | 0 ...ppointmentBookingCompactAppointmentInfo.js | 0 ...tBookingCompactAppointmentInfo.js-meta.xml | 4 +- .../mobileAppointmentBookingLanding/labels.js | 0 .../mobileAppointmentBookingLanding.css | 20 + .../mobileAppointmentBookingLanding.html | 0 .../mobileAppointmentBookingLanding.js | 3 +- ...obileAppointmentBookingLanding.js-meta.xml | 4 +- .../labels.js | 0 ...ppointmentBookingRescheduleAppointment.css | 170 + ...pointmentBookingRescheduleAppointment.html | 148 + ...AppointmentBookingRescheduleAppointment.js | 0 ...ntBookingRescheduleAppointment.js-meta.xml | 4 +- ...pointmentBookingResourceAssignment.test.js | 10 +- .../labels.js | 0 ...leAppointmentBookingResourceAssignment.css | 24 + ...eAppointmentBookingResourceAssignment.html | 24 + ...ileAppointmentBookingResourceAssignment.js | 0 ...tmentBookingResourceAssignment.js-meta.xml | 4 +- .../labels.js | 0 ...eAppointmentBookingSchedulingContainer.css | 197 + ...AppointmentBookingSchedulingContainer.html | 50 + ...leAppointmentBookingSchedulingContainer.js | 0 ...mentBookingSchedulingContainer.js-meta.xml | 4 +- ...leAppointmentBookingSettingsContainer.html | 17 + ...bileAppointmentBookingSettingsContainer.js | 0 ...ntmentBookingSettingsContainer.js-meta.xml | 2 +- .../overrideCSS.js | 0 .../labels.js | 0 ...mobileAppointmentBookingSlotsContainer.css | 113 + ...obileAppointmentBookingSlotsContainer.html | 106 + .../mobileAppointmentBookingSlotsContainer.js | 0 ...pointmentBookingSlotsContainer.js-meta.xml | 4 +- .../mobileAppointmentBookingUtils/constants | 0 .../constantsLabels.js | 0 .../formatHelpers.js | 0 .../mobileAppointmentBookingUtils.js | 1 + .../mobileAppointmentBookingUtils.js-meta.xml | 4 +- .../RescheduleAppointments}/jest.config.js | 0 projects/RescheduleAppointments/package.json | 29 + .../RescheduleAppointments}/sfdx-project.json | 0 projects/ServiceDocumentSamples/.eslintignore | 16 + .../ServiceDocumentSamples}/.forceignore | 0 .../ServiceDocumentSamples}/.gitignore | 0 .../ServiceDocumentSamples/.prettierignore | 12 + projects/ServiceDocumentSamples/.prettierrc | 14 + .../ServiceDocumentSamples}/README.md | 0 .../config/project-scratch-def.json | 0 .../main/default/aura/.eslintrc.json | 0 ...reCreateServiceDocumentInvocableAction.cls | 0 ...erviceDocumentInvocableAction.cls-meta.xml | 0 .../force-app/main/default/lwc/.eslintrc.json | 14 + .../mediumHeaderText/mediumHeaderText.html | 0 .../lwc/mediumHeaderText/mediumHeaderText.js | 0 .../mediumHeaderText.js-meta.xml | 0 .../default/lwc/staticImage/staticImage.html | 0 .../default/lwc/staticImage/staticImage.js | 0 .../lwc/staticImage/staticImage.js-meta.xml | 0 .../triggers/ServiceDocumentCreation.trigger | 0 .../ServiceDocumentCreation.trigger-meta.xml | 0 .../ServiceDocumentSamples/jest.config.js | 6 + projects/ServiceDocumentSamples/package.json | 24 + .../ServiceDocumentSamples}/sfdx-project.json | 0 .../UploadAndAnnotateImages}/.eslintignore | 0 .../UploadAndAnnotateImages}/.forceignore | 0 .../UploadAndAnnotateImages}/.gitignore | 0 .../UploadAndAnnotateImages/.prettierignore | 12 + projects/UploadAndAnnotateImages/.prettierrc | 14 + .../UploadAndAnnotateImages}/README.md | 0 .../config/project-scratch-def.json | 0 .../force-app/main/default/lwc/.eslintrc.json | 14 + .../__tests__/colorsPicker.test.js | 0 .../default/lwc/colorsPicker/colorsPicker.css | 0 .../lwc/colorsPicker/colorsPicker.html | 0 .../default/lwc/colorsPicker/colorsPicker.js | 0 .../lwc/colorsPicker/colorsPicker.js-meta.xml | 0 .../lwc/darkInput/__tests__/darkInput.test.js | 0 .../main/default/lwc/darkInput/darkInput.css | 0 .../main/default/lwc/darkInput/darkInput.html | 0 .../main/default/lwc/darkInput/darkInput.js | 0 .../lwc/darkInput/darkInput.js-meta.xml | 0 .../__tests__/imageAnnotate.test.js | 0 .../lwc/imageAnnotate/imageAnnotate.css | 0 .../lwc/imageAnnotate/imageAnnotate.html | 0 .../lwc/imageAnnotate/imageAnnotate.js | 0 .../imageAnnotate/imageAnnotate.js-meta.xml | 0 .../__tests__/imageCapture.test.js | 0 .../lwc/imageCapture/imageCapture.html | 0 .../default/lwc/imageCapture/imageCapture.js | 0 .../lwc/imageCapture/imageCapture.js-meta.xml | 0 .../__tests__/imageCropper.test.js | 0 .../default/lwc/imageCropper/imageCropper.css | 0 .../lwc/imageCropper/imageCropper.html | 0 .../default/lwc/imageCropper/imageCropper.js | 0 .../lwc/imageCropper/imageCropper.js-meta.xml | 0 .../__tests__/imageInfoEditor.test.js | 0 .../lwc/imageInfoEditor/imageInfoEditor.css | 0 .../lwc/imageInfoEditor/imageInfoEditor.html | 0 .../lwc/imageInfoEditor/imageInfoEditor.js | 0 .../imageInfoEditor.js-meta.xml | 0 .../__tests__/imageInfoViewer.test.js | 0 .../lwc/imageInfoViewer/imageInfoViewer.css | 0 .../lwc/imageInfoViewer/imageInfoViewer.html | 0 .../lwc/imageInfoViewer/imageInfoViewer.js | 0 .../imageInfoViewer.js-meta.xml | 0 .../__tests__/imagePainter.test.js | 0 .../default/lwc/imagePainter/imagePainter.css | 0 .../lwc/imagePainter/imagePainter.html | 0 .../default/lwc/imagePainter/imagePainter.js | 0 .../lwc/imagePainter/imagePainter.js-meta.xml | 0 .../__tests__/imageSelector.test.js | 0 .../lwc/imageSelector/imageSelector.css | 0 .../lwc/imageSelector/imageSelector.html | 0 .../lwc/imageSelector/imageSelector.js | 0 .../imageSelector/imageSelector.js-meta.xml | 0 .../__tests__/imageTextEditor.test.js | 0 .../lwc/imageTextEditor/imageTextEditor.css | 0 .../lwc/imageTextEditor/imageTextEditor.html | 0 .../lwc/imageTextEditor/imageTextEditor.js | 0 .../imageTextEditor.js-meta.xml | 0 .../__tests__/infoEditorPrompt.test.js | 0 .../lwc/infoEditorPrompt/infoEditorPrompt.css | 0 .../infoEditorPrompt/infoEditorPrompt.html | 0 .../lwc/infoEditorPrompt/infoEditorPrompt.js | 0 .../infoEditorPrompt.js-meta.xml | 0 .../__tests__/loadingSpinner.test.js | 0 .../lwc/loadingSpinner/loadingSpinner.css | 0 .../lwc/loadingSpinner/loadingSpinner.html | 0 .../lwc/loadingSpinner/loadingSpinner.js | 0 .../loadingSpinner/loadingSpinner.js-meta.xml | 0 .../__tests__/toastMessage.test.js | 0 .../default/lwc/toastMessage/toastMessage.css | 0 .../lwc/toastMessage/toastMessage.html | 0 .../default/lwc/toastMessage/toastMessage.js | 0 .../lwc/toastMessage/toastMessage.js-meta.xml | 0 .../lwc/utilsImageCapture/cropper.esm.js | 0 .../utilsImageCapture/utilsImageCapture.js | 0 .../utilsImageCapture.js-meta.xml | 0 .../test/jest-mocks/mediaUtils/mediaUtils.js | 0 .../UploadAndAnnotateImages}/jest.config.js | 0 projects/UploadAndAnnotateImages/package.json | 30 + .../sfdx-project.json | 0 yarn.lock | 7742 ++++++++- 1088 files changed, 25512 insertions(+), 85230 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 .github/workflows/tests.yml delete mode 100644 .prettierignore delete mode 100644 .prettierrc delete mode 100644 .sfdx/tools/apex.db delete mode 100644 .sfdx/typings/lwc/apex/AppointmentController.d.ts delete mode 100644 DriverLicenseParser/package-lock.json delete mode 100644 FindNearby/README.md delete mode 100644 FindNearby/force-app/main/default/classes/MobileMapLayersService.cls delete mode 100644 FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls delete mode 100644 FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css delete mode 100644 FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html delete mode 100644 FindNearby/force-app/main/default/lwc/jsconfig.json delete mode 100644 FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json delete mode 100644 FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json delete mode 100644 FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js delete mode 100644 FindNearby/force-app/main/default/lwc/locationsList/locationsList.css delete mode 100644 FindNearby/force-app/main/default/lwc/locationsList/locationsList.html delete mode 100644 FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js delete mode 100644 FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css delete mode 100644 FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css delete mode 100644 FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html delete mode 100644 FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js delete mode 100644 FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css delete mode 100644 FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html delete mode 100644 FindNearby/force-app/test/jest-mocks/lightning/modalBody.html delete mode 100644 FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html delete mode 100644 FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html delete mode 100644 FindNearby/jest.config.js delete mode 100644 FindNearby/package-lock.json delete mode 100644 FindNearby/package.json delete mode 100644 FindNearby/sfdx-project.json delete mode 100644 FollowUpAppointment/CODEOWNERS delete mode 100644 FollowUpAppointment/JenkinsfileFollow delete mode 100644 FollowUpAppointment/README.md delete mode 100644 FollowUpAppointment/config/project-scratch-def.json delete mode 100644 FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls delete mode 100644 FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/__tests__/followUpAppointmentMain.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/jsconfig.json delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/__tests__/mobileAppointmentBookingCalendar.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/__tests__/mobileAppointmentBookingCustomToast.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/__tests__/mobileAppointmentBookingLanding.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__tests__/mobileAppointmentBookingResourceAssignment.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/__tests__/mobileAppointmentBookingSchedulingContainer.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/__tests__/mobileAppointmentBookingSlotsContainer.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalcHelpers delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/modal/__tests__/modal.test.js delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/modal/modal.css delete mode 100644 FollowUpAppointment/force-app/main/default/lwc/modal/modal.html delete mode 100644 FollowUpAppointment/jest.config.js delete mode 100644 FollowUpAppointment/package-lock.json delete mode 100644 FollowUpAppointment/package.json delete mode 100644 FollowUpAppointment/sfdx-project.json delete mode 100755 HelloWorld/.husky/pre-commit delete mode 100644 HelloWorld/.vscode/extensions.json delete mode 100644 HelloWorld/.vscode/launch.json delete mode 100644 HelloWorld/.vscode/settings.json delete mode 100644 HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html delete mode 100644 HelloWorld/package.json delete mode 100644 MobileDashboard/README.md delete mode 100644 MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls delete mode 100644 MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls delete mode 100644 MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls delete mode 100644 MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/jsconfig.json delete mode 100644 MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html delete mode 100644 MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css delete mode 100644 MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html delete mode 100644 MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html delete mode 100644 MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html delete mode 100644 MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html delete mode 100644 MobileDashboard/jest.config.js delete mode 100644 MobileDashboard/package.json delete mode 100644 MobileDashboard/sfdx-project.json delete mode 100644 MobileDashboard/yarn.lock delete mode 100644 NameAndSignatureCapture/package-lock.json delete mode 100644 RescheduleAppointments/.vscode/extensions.json delete mode 100644 RescheduleAppointments/force-app/main/default/aura/.eslintrc.json delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/jsconfig.json delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html delete mode 100644 RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants delete mode 100644 RescheduleAppointments/package.json delete mode 100755 ServiceDocumentSamples/.husky/pre-commit delete mode 100755 ServiceDocumentSamples/.prettierignore delete mode 100755 ServiceDocumentSamples/.prettierrc delete mode 100644 ServiceDocumentSamples/.vscode/extensions.json delete mode 100644 ServiceDocumentSamples/.vscode/launch.json delete mode 100644 ServiceDocumentSamples/.vscode/settings.json delete mode 100644 ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json delete mode 100644 ServiceDocumentSamples/package.json delete mode 100644 ServiceDocumentSamples/yarn.lock delete mode 100755 UploadAndAnnotateImages/.husky/pre-commit delete mode 100755 UploadAndAnnotateImages/.prettierignore delete mode 100755 UploadAndAnnotateImages/.prettierrc delete mode 100644 UploadAndAnnotateImages/force-app/main/default/aura/.eslintrc.json delete mode 100644 UploadAndAnnotateImages/force-app/main/default/lwc/jsconfig.json delete mode 100644 UploadAndAnnotateImages/package-lock.json delete mode 100644 UploadAndAnnotateImages/package.json create mode 100644 lerna.json rename {DriverLicenseParser => projects/DriverLicenseParser}/.eslintignore (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/.forceignore (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/.gitignore (100%) rename {NameAndSignatureCapture => projects/DriverLicenseParser}/.prettierignore (87%) rename {DriverLicenseParser => projects/DriverLicenseParser}/.prettierrc (78%) rename {DriverLicenseParser => projects/DriverLicenseParser}/README.md (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/config/project-scratch-def.json (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/.eslintrc.json (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/aamvaParser/aamvaParser.js (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/aamvaParser/aamvaParser.js-meta.xml (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/parserDemo/parserDemo.html (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/parserDemo/parserDemo.js (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/force-app/main/default/lwc/parserDemo/parserDemo.js-meta.xml (100%) rename {DriverLicenseParser => projects/DriverLicenseParser}/jest.config.js (100%) create mode 100644 projects/DriverLicenseParser/package.json rename {DriverLicenseParser => projects/DriverLicenseParser}/sfdx-project.json (100%) rename {FindNearby => projects/FindNearby}/.eslintignore (100%) rename {FindNearby => projects/FindNearby}/.forceignore (100%) rename {FindNearby => projects/FindNearby}/.gitignore (100%) rename {DriverLicenseParser => projects/FindNearby}/.prettierignore (87%) rename {NameAndSignatureCapture => projects/FindNearby}/.prettierrc (78%) create mode 100644 projects/FindNearby/README.md create mode 100644 projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls rename {FindNearby => projects/FindNearby}/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml (77%) create mode 100644 projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls rename {FindNearby => projects/FindNearby}/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml (77%) rename {HelloWorld => projects/FindNearby}/force-app/main/default/lwc/.eslintrc.json (100%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js (54%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/confirmModal/confirmModal.js (75%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml (67%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json create mode 100644 projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json create mode 100644 projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js create mode 100644 projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/locationsList/locationsList.js (67%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml (67%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js create mode 100644 projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mapFilters/mapFilters.js (61%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml (67%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js (57%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMap/mobileMap.js (91%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml (67%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js (81%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml (90%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/mobileMapLayersMain/overrideCSS.js (100%) create mode 100644 projects/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js create mode 100644 projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css create mode 100644 projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/objectIcon/objectIcon.js (80%) rename {FindNearby => projects/FindNearby}/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml (67%) rename {FindNearby => projects/FindNearby}/force-app/test/jest-mocks/lightning/modal.js (64%) create mode 100644 projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html rename {MobileDashboard => projects/FindNearby}/force-app/test/jest-mocks/lightning/modalBody.js (60%) create mode 100644 projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html rename {FindNearby => projects/FindNearby}/force-app/test/jest-mocks/lightning/modalFooter.js (60%) create mode 100644 projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html rename {FindNearby => projects/FindNearby}/force-app/test/jest-mocks/lightning/modalHeader.js (63%) rename {FindNearby => projects/FindNearby}/force-app/test/jest-mocks/lightning/uiGraphQLApi.js (89%) create mode 100644 projects/FindNearby/jest.config.js rename {DriverLicenseParser => projects/FindNearby}/package.json (58%) create mode 100644 projects/FindNearby/sfdx-project.json rename {HelloWorld => projects/FollowUpAppointment}/.eslintignore (100%) rename {HelloWorld => projects/FollowUpAppointment}/.prettierignore (87%) rename {HelloWorld => projects/FollowUpAppointment}/.prettierrc (78%) create mode 100644 projects/FollowUpAppointment/README.md create mode 100644 projects/FollowUpAppointment/config/project-scratch-def.json rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/Assets/SFS_FollowupAppointmentPerm.permissionset-meta.xml (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml (77%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml (77%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml (88%) rename {NameAndSignatureCapture => projects/FollowUpAppointment}/force-app/main/default/lwc/.eslintrc.json (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.html (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js (86%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js-meta.xml (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js (61%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml (89%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentMain/overrideCSS.js (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.html (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js (71%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js-meta.xml (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js (82%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js (82%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js (67%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js (68%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml (85%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js (73%) rename FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml => projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js (54%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml (67%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js (54%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js (77%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js (77%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js (74%) rename {RescheduleAppointments => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml (67%) rename FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/test.js => projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers.js (57%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.html (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js (75%) rename FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml => projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.html (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js (51%) rename FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml => projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml (100%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.html (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js (73%) rename RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml => projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml (67%) create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css create mode 100644 projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/modal/modal.js (60%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/lwc/modal/modal.js-meta.xml (67%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c.object-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_1__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_2__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_3__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Operating_Hours__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Record_To_Create__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Horizon_Value__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Policy__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_1__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_2__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_3__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/ShowExactArrivalTime__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Technician_Assigment__c.field-meta.xml (100%) rename {FollowUpAppointment => projects/FollowUpAppointment}/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml (87%) rename {HelloWorld => projects/FollowUpAppointment}/jest.config.js (100%) create mode 100644 projects/FollowUpAppointment/package.json create mode 100644 projects/FollowUpAppointment/sfdx-project.json rename {NameAndSignatureCapture => projects/LocalPreview/HelloWorld}/.eslintignore (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/.forceignore (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/.gitignore (100%) rename {RescheduleAppointments => projects/LocalPreview/HelloWorld}/.prettierignore (87%) rename {RescheduleAppointments => projects/LocalPreview/HelloWorld}/.prettierrc (78%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/README.md (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/config/project-scratch-def.json (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/configure_android_test_app.ts (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/configure_ios_test_app.ts (100%) rename {ServiceDocumentSamples => projects/LocalPreview/HelloWorld}/force-app/main/default/lwc/.eslintrc.json (100%) create mode 100644 projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html rename {HelloWorld => projects/LocalPreview/HelloWorld}/force-app/main/default/lwc/helloWorld/helloWorld.js (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml (84%) rename {NameAndSignatureCapture => projects/LocalPreview/HelloWorld}/jest.config.js (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/mobile-apps.json (100%) create mode 100644 projects/LocalPreview/HelloWorld/package.json rename {HelloWorld => projects/LocalPreview/HelloWorld}/scripts/apex/hello.apex (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/scripts/soql/account.soql (100%) rename {HelloWorld => projects/LocalPreview/HelloWorld}/sfdx-project.json (100%) create mode 100644 projects/LocalPreview/README.md rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.gitignore (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/.gitignore (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/.name (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/compiler.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/gradle.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/misc.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/.idea/vcs.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/.gitignore (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/build.gradle (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/proguard-rules.pro (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/AndroidManifest.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/ic_launcher-playstore.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/java/com/salesforce/mobiletooling/lwctestapp/MainActivity.kt (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/drawable/ic_info.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/layout/activity_main.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/values-night/themes.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/values/colors.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/values/ic_launcher_background.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/values/strings.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/app/src/main/res/values/themes.xml (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/build.gradle (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/gradle.properties (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/gradle/wrapper/gradle-wrapper.jar (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/gradle/wrapper/gradle-wrapper.properties (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/gradlew (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/gradlew.bat (100%) rename {apps => projects/LocalPreview/apps}/android/LwcTestApp/settings.gradle (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/.gitignore (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp.xcodeproj/project.pbxproj (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp.xcodeproj/xcshareddata/xcschemes/LwcTestApp.xcscheme (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/AppDelegate.swift (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@1x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@1x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@1x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Assets.xcassets/Contents.json (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Base.lproj/LaunchScreen.storyboard (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Base.lproj/Main.storyboard (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/Info.plist (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/SceneDelegate.swift (100%) rename {apps => projects/LocalPreview/apps}/ios/LwcTestApp/LwcTestApp/ViewController.swift (100%) rename {RescheduleAppointments => projects/MobileDashboard}/.eslintignore (100%) rename {MobileDashboard => projects/MobileDashboard}/.forceignore (100%) rename {MobileDashboard => projects/MobileDashboard}/.gitignore (100%) create mode 100755 projects/MobileDashboard/.prettierignore create mode 100755 projects/MobileDashboard/.prettierrc create mode 100644 projects/MobileDashboard/README.md rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml (96%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/classes/DashboardPostInstall.cls (97%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml (77%) create mode 100644 projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml (69%) create mode 100644 projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml (77%) create mode 100644 projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml (77%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/labels/CustomLabels.labels-meta.xml (79%) rename {UploadAndAnnotateImages => projects/MobileDashboard}/force-app/main/default/lwc/.eslintrc.json (100%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/alertMessage/alertMessage.js (71%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/basicFilter/basicFilter.js (61%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js (73%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.css (100%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js (77%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js (62%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js (70%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml (91%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardSettingsMain/overrideCSS.js (100%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js (83%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/editCardModal/editCardModal.js (65%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml (67%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/editCardModal/labels.js (51%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js (71%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/mainDashboard/mainDashboard.js (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml (90%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/subFilterCard/subFilterCard.js (77%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js (70%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml (67%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js (64%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js (67%) create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css create mode 100644 projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/summaryComponent/summaryComponent.js (67%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml (67%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml (98%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da}/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml (96%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da}/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da}/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml (97%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de}/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es}/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es}/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX}/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX}/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml (99%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml (98%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml (99%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml (96%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL}/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no}/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml (97%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no}/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR}/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT}/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml (97%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml (97%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da => projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv}/Title__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml (83%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml (99%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml (78%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml (82%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml (98%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml (81%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml (80%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml (79%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml (98%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml (94%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml (95%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/staticresources/side_example.resource-meta.xml (100%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/staticresources/side_example.svg (100%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/staticresources/stack_example.resource-meta.xml (100%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/staticresources/stack_example.svg (100%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml (86%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/bg.translation-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/cs.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/da.translation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/de.translation-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/el.translation-meta.xml (83%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/en_GB.translation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/es.translation-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/es_MX.translation-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/fi.translation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/fr.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/hr.translation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/hu.translation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/in.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/it.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/iw.translation-meta.xml (93%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/ja.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/ko.translation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/nl_NL.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/no.translation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/pl.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/pt_BR.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/pt_PT.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/ro.translation-meta.xml (88%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/ru.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/sk.translation-meta.xml (91%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/sl.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/sv.translation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/th.translation-meta.xml (90%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/tr.translation-meta.xml (92%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/uk.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/vi.translation-meta.xml (89%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/zh_CN.translation-meta.xml (95%) rename {MobileDashboard => projects/MobileDashboard}/force-app/main/default/translations/zh_TW.translation-meta.xml (95%) rename {MobileDashboard => projects/MobileDashboard}/force-app/test/jest-mocks/lightning/modal.js (64%) create mode 100644 projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html rename {FindNearby => projects/MobileDashboard}/force-app/test/jest-mocks/lightning/modalBody.js (60%) create mode 100644 projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html rename {MobileDashboard => projects/MobileDashboard}/force-app/test/jest-mocks/lightning/modalFooter.js (60%) create mode 100644 projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html rename {MobileDashboard => projects/MobileDashboard}/force-app/test/jest-mocks/lightning/modalHeader.js (63%) rename {MobileDashboard => projects/MobileDashboard}/force-app/test/jest-mocks/lightning/uiGraphQLApi.js (89%) create mode 100644 projects/MobileDashboard/jest.config.js rename {NameAndSignatureCapture => projects/MobileDashboard}/package.json (58%) create mode 100644 projects/MobileDashboard/sfdx-project.json rename {ServiceDocumentSamples => projects/NameAndSignatureCapture}/.eslintignore (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/.forceignore (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/.gitignore (100%) create mode 100755 projects/NameAndSignatureCapture/.prettierignore create mode 100755 projects/NameAndSignatureCapture/.prettierrc rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/README.md (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/config/project-scratch-def.json (100%) rename {RescheduleAppointments => projects/NameAndSignatureCapture}/force-app/main/default/lwc/.eslintrc.json (59%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signatureDemo/signatureDemo.css (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signatureDemo/signatureDemo.html (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signatureDemo/signatureDemo.js (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signatureDemo/signatureDemo.js-meta.xml (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signaturePad/signaturePad.css (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signaturePad/signaturePad.html (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signaturePad/signaturePad.js (100%) rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/force-app/main/default/lwc/signaturePad/signaturePad.js-meta.xml (100%) rename {RescheduleAppointments => projects/NameAndSignatureCapture}/jest.config.js (100%) create mode 100644 projects/NameAndSignatureCapture/package.json rename {NameAndSignatureCapture => projects/NameAndSignatureCapture}/sfdx-project.json (100%) create mode 100644 projects/RescheduleAppointments/.eslintignore rename {RescheduleAppointments => projects/RescheduleAppointments}/.forceignore (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/.gitignore (100%) create mode 100755 projects/RescheduleAppointments/.prettierignore create mode 100755 projects/RescheduleAppointments/.prettierrc rename {RescheduleAppointments => projects/RescheduleAppointments}/README.md (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/classes/AppointmentController.cls (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/classes/AppointmentController.cls-meta.xml (77%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/customLabels/customLabels.labels-meta.xml (81%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml (67%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml (67%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js (99%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml (85%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js (100%) rename {FollowUpAppointment => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml (67%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js (83%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml (67%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml (67%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml (93%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/overrideCSS.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml (67%) rename {FollowUpAppointment => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js (100%) rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js (100%) create mode 100644 projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js rename {RescheduleAppointments => projects/RescheduleAppointments}/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml (67%) rename {ServiceDocumentSamples => projects/RescheduleAppointments}/jest.config.js (100%) create mode 100644 projects/RescheduleAppointments/package.json rename {RescheduleAppointments => projects/RescheduleAppointments}/sfdx-project.json (100%) create mode 100644 projects/ServiceDocumentSamples/.eslintignore rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/.forceignore (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/.gitignore (100%) create mode 100755 projects/ServiceDocumentSamples/.prettierignore create mode 100755 projects/ServiceDocumentSamples/.prettierrc rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/README.md (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/config/project-scratch-def.json (100%) rename {HelloWorld => projects/ServiceDocumentSamples}/force-app/main/default/aura/.eslintrc.json (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls-meta.xml (100%) create mode 100644 projects/ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.html (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js-meta.xml (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/staticImage/staticImage.html (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/staticImage/staticImage.js (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/lwc/staticImage/staticImage.js-meta.xml (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/triggers/ServiceDocumentCreation.trigger (100%) rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/force-app/main/default/triggers/ServiceDocumentCreation.trigger-meta.xml (100%) create mode 100644 projects/ServiceDocumentSamples/jest.config.js create mode 100644 projects/ServiceDocumentSamples/package.json rename {ServiceDocumentSamples => projects/ServiceDocumentSamples}/sfdx-project.json (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/.eslintignore (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/.forceignore (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/.gitignore (100%) create mode 100755 projects/UploadAndAnnotateImages/.prettierignore create mode 100755 projects/UploadAndAnnotateImages/.prettierrc rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/README.md (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/config/project-scratch-def.json (100%) create mode 100644 projects/UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/colorsPicker/__tests__/colorsPicker.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/colorsPicker/colorsPicker.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/colorsPicker/colorsPicker.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/colorsPicker/colorsPicker.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/colorsPicker/colorsPicker.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/darkInput/__tests__/darkInput.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/darkInput/darkInput.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/darkInput/darkInput.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/darkInput/darkInput.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/darkInput/darkInput.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageAnnotate/__tests__/imageAnnotate.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageAnnotate/imageAnnotate.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageAnnotate/imageAnnotate.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCapture/__tests__/imageCapture.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCapture/imageCapture.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCapture/imageCapture.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCapture/imageCapture.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCropper/__tests__/imageCropper.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCropper/imageCropper.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCropper/imageCropper.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCropper/imageCropper.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageCropper/imageCropper.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoEditor/__tests__/imageInfoEditor.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoViewer/__tests__/imageInfoViewer.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imagePainter/__tests__/imagePainter.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imagePainter/imagePainter.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imagePainter/imagePainter.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imagePainter/imagePainter.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imagePainter/imagePainter.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageSelector/__tests__/imageSelector.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageSelector/imageSelector.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageSelector/imageSelector.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageSelector/imageSelector.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageSelector/imageSelector.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageTextEditor/__tests__/imageTextEditor.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageTextEditor/imageTextEditor.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageTextEditor/imageTextEditor.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/infoEditorPrompt/__tests__/infoEditorPrompt.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/loadingSpinner/__tests__/loadingSpinner.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/loadingSpinner/loadingSpinner.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/loadingSpinner/loadingSpinner.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/toastMessage/__tests__/toastMessage.test.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/toastMessage/toastMessage.css (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/toastMessage/toastMessage.html (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/toastMessage/toastMessage.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/toastMessage/toastMessage.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/utilsImageCapture/cropper.esm.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js-meta.xml (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/force-app/test/jest-mocks/mediaUtils/mediaUtils.js (100%) rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/jest.config.js (100%) create mode 100644 projects/UploadAndAnnotateImages/package.json rename {UploadAndAnnotateImages => projects/UploadAndAnnotateImages}/sfdx-project.json (100%) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..a127a3b --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,17 @@ +name: eslint +run-name: Installs project and runs eslint checks +on: [ push, pull_request ] +jobs: + lint: + runs-on: ubuntu-latest + strategy: + matrix: + node: [ 18 ] + name: ESLint on Ubuntu with Node ${{ matrix.node }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + - run: yarn install + - run: yarn lint \ No newline at end of file diff --git a/.github/workflows/prettier.yml b/.github/workflows/prettier.yml index b8c7d9f..8e17483 100644 --- a/.github/workflows/prettier.yml +++ b/.github/workflows/prettier.yml @@ -6,7 +6,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node: [ 16 ] + node: [ 18 ] name: Prettier on Ubuntu with Node ${{ matrix.node }} steps: - uses: actions/checkout@v3 @@ -14,4 +14,4 @@ jobs: with: node-version: ${{ matrix.node }} - run: yarn install - - run: yarn format \ No newline at end of file + - run: yarn prettier:verify \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..d776138 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,17 @@ +name: tests +run-name: Installs project and runs tests +on: [ push, pull_request ] +jobs: + lint: + runs-on: ubuntu-latest + strategy: + matrix: + node: [ 18 ] + name: Tests Pass on Ubuntu with Node ${{ matrix.node }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node }} + - run: yarn install + - run: yarn test \ No newline at end of file diff --git a/.gitignore b/.gitignore index 48c3f63..a39fcda 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,46 @@ +# VSCode configuration +**/.vscode/ + +# Salesforce cache +**/.sf/ +**/.sfdx/ +**/.localdevserver/ +**/deploy-options.json + +# LWC VSCode autocomplete +**/lwc/jsconfig.json + +# LWC Jest coverage reports +**/coverage/ + # Logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -junit.xml +**/logs +**/*.log +**/npm-debug.log* +**/yarn-debug.log* +**/yarn-error.log* +**/junit.xml # Dependency directories -node_modules/ +**/node_modules/ -# Stores custom attributes of its containing folder, such as the position of icons or the choice of a background image -.DS_Store +# Eslint cache +**/.eslintcache + +# MacOS system files +**/.DS_Store + +# Windows system files +**/Thumbs.db +**/ehthumbs.db +**/[Dd]esktop.ini +**/$RECYCLE.BIN/ + +# Local environment variables +**/.env # Don't watch git for publishing to npm .git + +# We use YARN instead of NPM +**/package-lock.json diff --git a/.husky/pre-commit b/.husky/pre-commit index 2b61b57..be53983 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1,4 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" -yarn format +yarn precommit diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index 2ffe01e..0000000 --- a/.prettierignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -**/.sfdx/** -**/LwcTestApp/app/build/** -**/LwcTestApp/Assets.xcassets/** \ No newline at end of file diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 3c89dc6..0000000 --- a/.prettierrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "printWidth": 100, - "singleQuote": true, - "tabWidth": 2, - "trailingComma": "es5", - "overrides": [ - { - "files": "*.json", - "options": { - "tabWidth": 4 - } - } - ] -} \ No newline at end of file diff --git a/.sfdx/tools/apex.db b/.sfdx/tools/apex.db deleted file mode 100644 index 31f459318ac7ff82154f9762d87e87232bcc1668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5640192 zcmeFa34C2e8TUWglbbGSv$aW@CQZ{NEM=2jq#KKrwd{+KrnhY%O=6N3ii%+sH$Xr| z1O+!xR0LF%O+Zj&Eg}Lc5=HjKvUG3F|NA^M=bkzDCb?PK_x-=05A(^BGiT13-#qhd z^PF?fJ=ZjteDhKHzaxRz1K<6>Gw?^Fek6g9B=C_0K9ayk5(p%acXCkkwi&iwc%yD} zR{bK$9TNC(*+m9sh|CR)LDZ=spf|Y%nu|I2xF`1t; zCig&NvdfGa^`0@~?>DCSXU3GSGN$YlXst07tnM?&FJ}DDn7oILY3PEUG-jsBd;FZ87OiM*>DsBeb*HXX?eR`~ zW^cEN-M!YoHyr=<=avP{ooGdh%;$jy6Z>5|G@f}~ z2{kdVZ!oVfGOv})>j;x^;f>7cQWLv#t;x8E^MCbq+kd40t=ya1me1;JY>9U+Y3pc; zBmL%COBy@7W<~i7c=P%FKgQ>p=uDBD$wb1Lw?i*NTa3y2ID|&B4~w3=J@$H^H)PY9 zE=v|pq-1Zf+sunN_64c;3g2=TB;MQmI{N=`X-nIp#+I5T&8>|sa+aJ&`{ua|W-nZ5 z_a8Cj_|ij4=1(AIs`V@F)@1&`RSaFVu&+2<8y7Ej$5QsYjoEj$G5dr3DJ=JMI~nt} zvBum7>QlcB0Jq;(`PpRWFQfGK7_MA0i3L&;bNngwpG!+bem`>a+tS#vbQd`){h9e| z@pIZ+nwy%tI=dRX;>+W$UGa0`O)I+Mi;eTwyTH2#`WHlg3yEzWZ6N&U!`_%B5~M7PgTe?e-NKjgTp z9tih`Cf8TMdkuP%wdi3}fR*R&m|+S|7K=TA`zAAe?z$jNBWd&uM3{i z&)Sd7Q{;HN+dfO3wNP;RhbO5wJ_+6gp}8yG(b&~yRc8Cy`2PTrCL1CK zl+D)znSV_?XB}7Ush6e0l|JX^>DRLpW|39N48%@ku8%v2tkMLSU{lynu?H^>Wi|G3 zT;-S*vrs`i%bLWPlcmk~!z}JqBy0?R}{yOD=Oy>@~D+@IZcoI@ivS*V!y@6*ZE9Vy@Smf z7vLw$cm3jcynSvsiNIC|Q-IWWiI`QmGA7-eiGUE1+}8gXf!q@&7To zZ<6VirS&}>Z{wV{HX?AVj4%G}#hc(rpZ@62Tl#HXn$VlfMT%#)IkrXpRMxiN+kKOD ziK|57d9vI>{SaHEBz*C5yKl0-<|-*T*n#LqN{ZfP9Dg3+IC;qP2T-7+>l}R6cU&c9 zoDEHFtzC`Ht!N`WJA21; z-ku#;`)Y1o96#sCB>|r2cZnfG{tDoUC0_Xx8C~Vh$vQo8vd3SK%Jm_8NOdK1Vnxe( zM%p5BeQX$VeH{?E5XyQ5S}UjyCwZRUyga*S?Z}e+Vt=}c4cNQPR31hZPf9^&IZaW zll_U)wO_Ce^<2o9)16!-=5CeqDA~?HqjE`(2g;|;gDyG`FtUrF@d7epIjv4y#~}Y~ z=klXqZPfF|z2O# zdo<&o35lF!&W&!c?8U*TzMNzpYl){xaa!f!~BKX8dJWf$vQs6

oY2Bj%h4-30Gnp>C3 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

I(i;gW{D1zqOz@tS2Ib4({5y0FS{d*`o0rH@q zK3_WSsNden8^TM?qei}Ex0W~5I@dNmh>)^45XMbOa@?5zP2BI5@BH1yq4(R`>MnJu$Go(p4s(%(zFE+AvC$;e%PCu zZ-#!5AG$KMdJG9biXfI!?9$xq2+-$Gt9Wpku2Z?Ne!1LE^7s1VSH^rB{EpE{+R4`f zpB=`>x+E{VdqdA#H7`G1?UEh7xz-m{mLGj?O>@JFicOV`8ynYfLrZJ&KE(w8af>-V z){jgOFgqoDA9IN>yJKir>Yv~vRN(%+ey(F@U+_TAz>r6u2VMo<#F^OJF<6MKa}1go z^MBx7;C7Dh0ut?@3&wl^N*XU3J4yuwWBx!J+KGj9p0T!mDy&~Nv zA^li^_X~;Uc{{hOfmYjot8xv?Th-Not)I{0t2!E08dhU*VjgI!K~!d|vWn@g`Q;w0 ztD0SF;Cte|6DP;c@YLVxztQ}9Y-y0h&#$-SHNUn=Vq;kRr2qG(i>H7UU=>)MsU4eN zn=NG4`;yu93+C!=9$ldsC^0gw_w(y?eTRPb-|-q7Y;UYmE?}JBxUutSPn`q$ zZ~rWQovtS)?ZE7PHhl0w-rgJ74hE%M28Un2GdhX)P%6H@k|8oj7SJy9!`66VT%7n?kfxF%EnX#6;!14-Db?nF4w_L;f=R}+| zeFwRfN|@J%ui{^K>x16DzXaVMfgv7@W1S^GF#6BN`AmATXtF=QeKW83`m#%Xm`HH) z8Lm&!YOaydQAKF6ZKFh&H>vRm^&L zimd;8o88`b+~NAa|6i_u#-<#Dd>56*W*LnphU6SuN`f$g_l(eVRZ(V(q`wlMqg zWJ$+t0E<(5) z`-G=B=2gFSWBqRfy_9Y6*9K@aRGqXfq; z1XqF^K(ei|Z{X371o5)tmT?SFu-?2qKuMtW0Cz6b7-{1UR*m_K*ILrEjofyixDc} ze8A`JE4iU>(}E4W?Todn75T4w+c+W;j3ZiEoGoJiM9<5OYohIRLkeeLImT|ZKa47i zqxAPUX<6YrGfp=LyL!#+%A#maJ4)Dz{OmYr7+u-Pn{mGGYkTYdg>kn>^xxWB%iG7I z#qR_;Qg;8s?Rn+xA%*6>Voi)s9K*u(O>3eHW$hMM#@z_*Tkus3hp~5O>dN9upUk?r zWclMGo$~lhW*ifQdAHB<2WtvSGH|7O*^g>yxPvWoo%l17)@*w@}u+dwA$oHJL6}DmW@9>YNBKpP_{f{$Hs;=8#0Hm z@%>kq9Wbz^wP_=_{D=9HG$gP*hG;#0BY2i-OuxIJuL9u9T*vptJo8DTFS#!Ar;TSh zU_9BL+Ru-iEI7Ue46}ut`Gv);@t@)hR*uJCAzE&qmGH<9OpbPC;vPDeqkj_rC-j`? zFSQ;R|J|@%?YD0HH^NRQdriJyK=zvP{Q=5<$u)ikcK$Az*T;`($Nz!E@(9NND%$IA z>-8P4S7dtjo?U;DJIUwzi@r0R&?g~o{9nPy=S2C)_}@kX$o2)4t>2Q*pKYPO;Ps^O zw|UZL|Jdkw*89glpt=nIwk7b}Re=3(gNUqB)(@A2oXnF2c8`ht+*f_sjejQWWY`V7 zZPGY^Bg?@C5WR`!_=iDO1tus_3E=M!?0WnM3v1rk*xJg~^<=yHLn%e3A$LPe8GltE zIsWyqlhLkx*AH!8sa6Us$2k^0^z{VzbGMm?4<;Px=|pR7 z6M|h$P=D9zzvQ@;7IVd6KOTbJb($|k{V)OFZane%6HX4YOgM!d5+c2<#X{N9Y<-+; z*tm*)ft7bM1#4*Y<$UeT#?6F!JITlAi{X75XdyX6PS)a#&zp(&V{FAvyIbd$9q(G( zw9YdK?QToIwAcG9lOLZTF!?oZS?e&Ea5kH@U<=3}&g9QmKFj-zeu$&ygK5sV!yqM? z@G*Wa1htjZ)PVN-Ok9ujax_@dqW=r$ucia$oA!k*-qm1&0{hp&t3f%d1poN^Vw;^i zoT#C7swI!PzUv+Vk8uO8J>L!ZZmAn^%^_~U)vs}KFF_CF4e`hNll=)HH**tirj7T2 zOe<}j*7|b`c9O?)c#(K{x2I6LvAtN_2==I$bxGho;ScP{A-n?a4ffC;@iPL`5Bn2j z-hv4a63q_>-$8+J+*A5$8esI2{*&TPW1+7ZwO19p2Sj!z7$pT_Mi z{1e6TiR6VIY@O(@xz>pky`vSPaGuRqCeFZ;W`ie#Se#%|uv=Td2rw`c@kJ|a|t|I8kqPk)tG#{ zy}n}fk;~RsB;QrwkBq+BugnUZ_+{`K)xtMdUf7k~7Jp5Tq6$pB+i%Bz)^FX!+rmzU z9@THXw(c=;3+?zT_?d_``_IJtUGMpI(0JV=avGDvDdykq&F4Oe=uE%jq46ybraNwR z7lN*^sduzW6ltvMR_*>j8RPZ_`aAA7^4v)Gae`!#%jZGVwXj!|eZ3 z_+vYh$T?;I{9v)diEl>Zp=awW;*yZl=wtW~L7lii@fNm%Nw|0qNjb5gXnkcOepn-F zB6<_eNk!l=uqrwcKAU-O>5rWo!f`{VxT0mmj9ZR(Zr%MnpF7Q^_I=Xz-`V2&?Cqq^Jbf;N=pKp zLk)rtab;4uYLfjt39jDn6}rA-?I(&0tY3*AlUO@5m_#RgNVebNMGw|@be%f!Uf78A ze|zOR)ue>qia5O$x0WBW6f!BS;&UJNt?2QdT=}8D1XKnFUm$Y}d5d&p*Qdi+@2oTP?@uMJb7nBX4iyLO|B@_?;D39rbJ8MDS(&0> z(#>R!d$au#c$I20?3>=qd;Tl??6lsLvmCO+xe?lUN<8-% z;+kFB?I1Eo7tlV78`d6qX~4$zel&wfW-y8L)$IV=L0o00>(i6I!O=hE49eY;D}DRSU#x7_&B*@# zrF1)x-`b%r_y@QZ{Ef{wcE;x$5q|QPvm<}`omc&HMl;e+l|V1n2eH%Ip%|*@^Z@v0 z-~S!nOPXj`-tCF`5GRZe+sQ0-Og;uYBGC@=2>W081l>PbdU-T&K8Pt@vGLoEdWhS> z*fu_FC+`mr^14a?X-~xKNq125SMUjtBxbT&^b*@+quwZ>KaB6Je{*Kk-wdy6?6CSQ z@N(1h_J#Ay>+Buoe%!U6k!F;){9VgSe6!dF&B>%HlZS%G8Q<4s?{$1RvjBNI^66OK zq9wj*2YCVP*2YeA}@*j!N z--m|8{Z^ng`Dg5`2Ae^gta~?zpQj0vx3ddGdCwH${*${5kzQ`3~?d z)nxQDYY%2eFRnr8Su1K<%Uhblvx%11bay?=w>!vad_E2j(xu5n2+`$7ohxlHBb@wO z)dqf9<1YH|j-TSSzRwn$gr^txxAb^h&^ug#E1Uc>7;>jbZ}y&5S!7l)KmMrAPrGEM6XWAbavZ0jHsu7*OjkGr zQyvRjT>O;v+Rrf-PnCh^x5xDPHBZ&# z#m`N-0lZOl1?w-CQ>FlzoC~4%8~2<1oBh2o^q-x3PMNm=(4 zdSuEkK$X#;(d#q8xm-zK<#|*L^;?_A%G|Spx923Y;w;Rf zahN{S^BYT72lzkjfQQ)+u!rsBDo@tz zL``W0f2O*ea+yCyuPD{i@V|cEX!0iWfu+#BM@NXsAK2anJ_ssk?gNH?d6r!uTBj`6 zzR}rZa>xBaJ}{Lf8OvAj0aGtC*6gTV&w+}Q3QlhW^NzpXzW&T9fa#U?Pkj`8Tr~xc zx2>E+OQk5YM|{Q9q&>v)=!pLYdGK#jZ{{q))HhK3iC`%OIb@SZ{b%1L_X97u18@Iy zk~*rKY&C+s<=^JdwT`|s$h!-F6A0zBD_b8er-|hUgNHHGI0bx$yS2*Gh_ zIn#Xete9Vjsph-J!%y8RC@+H-4nK7X1=32Vb(t>xR^fbE`Y4|b2L9z!ATKCql%|-= zq^_f&j(HboawgvklP^CTKYHV+z^;>=42x=To@$coROQnHpY|sGWsuXpy6#7*3`ob! zmwnllHzM0(;PX@zf%GfiZ{|l?1)ZvBJM}8?mmnj5DqgJoDDVUjNi>eiPXjLmKf^g$ zAn)-N+X1RBkLH!Mp!|$Lwwz$!2dC5L5GwWs)8qYl-WSKq4U-`(Z@#`?kV0U#cOpDL z3ZAQ)jDFcfS>x!%-HMk|HDER{A3mS(WmnF`p-%-!_gfd3ovUBpY_n@;IxcUyVtq99%ddCV@$CJ+p}BA6jm=jkqWimp6n?(a z-FF<4uD;{cAlzdjTJ1ir5ZcQh1{u!f#FQl1d<7qu9jt#JPcrK`U-9R4KCWY2 z8M|&){tbVW?qn8JEb!ZM(vtF*w4X8Fo-DxLWw)Ky`;zu!_K&GoC<{;+uOP8-?*&JL z_!Xb88J$EN+r}R{Lnja!;L=Vh-kLw?Fu&3N`Njnsr`Aqu7cIG-)A7FLJH-d6csoA? z3MXYLW#Z4^hwS?fD;qYfS?16>C_%32SN1`wK8=E)T#|16IEf`e1o6QFBL!fk( z_76L`J2^OrWPdFt(&WwG^xWaT4_$XKLE19xpkj6bbYp#@s`6c7-KvHCT0{_3kX*Pg zf-*)WIi}Bi`^(}*1u2QZ`U*8wOatY%eZRcauzr1O)3Ocg8>4Q?J@1IyEmZ^2oW6p1 zWKgk~&A-8I;9j8qu=`0=K=8JkYC9 z{(xgi$u8tz((&qzrZxm`T0vdj{JdU6YfZ0%;YGhyw25ER&MHppxt@C`PF38jHoo=2 z;?yK`9{B(tr+$_9x>{pf)2em#O=}zHbH|TTvc|L4TeR|Vs^W*x{t0*^cx$GHWOzJZqdv z+K>6+Q{Y3!?ZeJ}Y#YFhpqv9k9R7-Ti8!V8nrE_#%FzY1&&IvACmD|z+7(-j5Iaw> z^KtNUFzr8|qCg}OR@?*rgMA=xy==7z8^)2XqvO>o$O$U8gWF7AyN}Gj?8VBj>FxUK zH`)8i^7Y@QxA?wC)@Kyi#h0z|#g*aC-8A{V=acJZ6;D(1hNLP$u8#b!qn~c>W<2Sg z@4UofV^bS%ylPsvO0P9c7b+UoFJIlTY)$;VnBMVclS{pnZ}s2EpG_MRB=Prk|DhZG zCtXamgp$m+H*>EOmNK@8XYI}**1n4?1Wi0^_hC$*`rd~2&93OWMXu=Dlq>q`sjld= zr@5k!k8(xlp5%%)zUhjZnb36yeTKTCn|ROZbr-mz@BSMapMu8cq0s=1OI^{KCw6zX z{0{$1PEb~o_xQGP(CNOmU}w{=KzqtRPi5Sl!B*s_DexZyz6X?RN&CGw!rC}><_D7H zeEops8`D-p0BTk(bv4; z^|r<}e6FBTiBf<9=%Nx^uNVT&i^0!}1pbU_kU%l*Ebx4gtUiLA^v(a<_*WO)6#Aus zea#iDU%t(j3cL4CtgK%oPa+;sZIHKpczu1zpJn|)c$sz`sQJ*I>JQP6`UA6?Mm{p_ z7NehtU(>Fo_6F7F(a*8IWTJre^}$g1hA+Emzh~!4@GGF=_ko~~XVH8olwWIVs|yy9 zx87p@bj7sC;QtWh7qI^TTfwxy^Yc?sf+}7g1RDSCT#w=tzK!+G`Hy4YPxnFsur*WJ z$rIqeRg?4&)BY9sw43SZ@7&`i(GOGageo-byjV`D5HK4#gEk!L%dS##{ReyzBzf?9 z-og$MUGpQ2_GwtawA(-=nD)GLm4|_Y_&HuNU+z)oZWfZ6HW(Zb!n>?)6DY@jN8&#_cycABq0jr&Kc2h2B3 zg#K@R*;SqZZ3bPclnT1T+hLycdneDSydbpgExxflXEK&t9|TFYUxS5S-%Xy=(Zuaz zL&;o|eSI}{CZBL$6Ma1aySMem%2n`MN8j#bdugWfY#vvXSr?c5bIBc<7k8}4WX|c? z&&$zhowwOPSD^PI=p6|Yr}(?Vb?1I`mtowxJ-_Gg)2J-=lq*jO+kb{F)2PbJwV(8x zvdX;2b=JHpY1fulA#LTC#Rq3y`D3=DK^aRQ(BikzNz5lTE+5U=EvDc1eBZgVm=|rr zk8Y{~*OD8GUN{FgL`482XfQZmH%Gjib~e}JJ|gbDx>e6P3u}Vtk>VU^9ApZ zu)Zpet|DyBox>XTadxu(m_JfiW(D&rTRPf#ao3J;mTy}2^D-vunLaE!Pxh20zwmM= z=0_%174}(0eqS}hxtX7HZs|9X?RYPU$#p{iy)CYBsEw&Slrhcg@IqB;PmF z6~8@IpS|7P=rwA0mwKgT8u6g6cJxjjQN_IRe*r9yAVOB19HdFLUx&Tkv|D+^nhmR( z)EuJ_HXi%b4_lumZtv0}b4<+SX_cg`Eq$9H8%cKxy{ ztRq#C{|Ks{4ciOYw>&5r$7L0H`^l_vJZV=J$CtzBv*L+4SABu45{pVOBaXijTo3g& zpLx1V_2l0^i=WmWjV7Qc2#u;O`eSeW_~z%Qp_Ct>5-#SM?`$v}mKmEWIwEb*1N77x1j6t!Zd$ z3y%=mX?fdI++XSn!1_yOLzZGt^$;6P{qCO+K5?byD=IF){)|I_VD{NJg49RK><#`O(+Tcn}4@`CB-be80;SQF(1(@zbp_j$oB zyOS4GH?NA40*D6tXvH?p0*Rc{FU-`G*+-bWWd5U)#rc1BjB}mV6=3Sm&3=5RydXZl z+q_`gkll8=uPJF)mKUsm&z0hnVn^|WNkfO{ zGDIgazt?zquA{!v;^yBzi!;_9SPLx99Y!;luNX{MUQiD%1r?0Uze}IH)`_}|g({E-+-s?p{`#dbb+H~kTCr?qbjzx}}h)Z7M=bWJDmna)bc^spMC z<08nZ|Jd$m?~HN5?p8wWu|Q)6#-E~dQnER*HoM#G`o4RA=XQPv#4vY0%o^Ej=gvQu z_4YH}UjM9ed;O!r?e+IjF7*+p?rG?uU0aS5^h&BagOq57^d<{RVT>VU*5h%H?rR^K$ARV#w33}zx1RW#0-+Y87G3H^pA&}^kaJv zg%!abh%(cE7D&vPhfE&;8>rX|GmXiaIxU@19?nc`de(mtB^wv4bIw=- zo+PqfuHE%RMnCGWFVXs+L*F87^1hiFIR6=^dSP|l2Kcg3A#d@Ih%R1~rw zU()sQn_cQS#>d5s-qwp<>gdnA)KQna)RBCX`0$rq>adG=Z_A4=bzlpAwZWzKCmKAN za;ZLR@hgAN-sVDTEskbezqR$D8K-+%GZ+hknXGdOX50h*QG3ZeP*$0DzLPZ%jO=>G zlfmz-hR=iI!=Rj@`Ta1k0>t@czs{rh`b?MV&cA);XJ^Q(0p@Q=LuWh%KCPMzxgS*- zzB@OxgtREPA2&a1@*62a_1Dh$K69!J3ex);M+i-H_oKL1T&A~N9TVCWbVWN zd0rO}bb?Ndj_46$W}+MDNYDSRpj{qv`CmW&XTF>B$AA-D-wJ3iJ~%o*=$%NJ9Xx&A zpS7%^t+6=mV8Xq?y1tMqzTTxy8{qmLeWP;++-~oi?)#3DT;C&Cy1qxC+_&6sXS|B8rmH>4xHt14 zYNx1{`doRe z@_Bii8P9X3T8sqIXyV^A#EO;h!_nH3$AJ5d3yzx8KgfrUf&}LuNjsy$rvBRpdVo@fV%e zyCS=q_4eTZ$g^g?CO!<;Sw(DzfRjOjXxDkpb6tvS*S(J*Yb(W%lzxEs|9u0z1$+Q} z1){wSdF#i=pXYpYEdC(!EL`NQ5byaX__0|Bs2|Yh8|xa+)JsD6D`y;1oO*ucn&va- zH@B@1>+RTZB)<3C)*s>mSRQr+{Sj$t)_bT`4z>G(PTRX zoTt5H{xE9-wKG&peXjh$=54dy#~G)9p}%UU+R1tRn0_9!_t$hB^kL9wbkUAm(erO| zyvL>s3VM}|`GrJ#On*E0ENoMo<-!U3lHN(1ZC!UQ`##XIv!3%G2IVl*`HuQONvELv zXV&SyN!H(()U1z!=cq2}$7XF(89s&N)9SY@^F_}ulm3D~P>$_i?HGv-Dld|)j0oq< zx`r}|Lh3{+vgJiH@eZ?&0kJYk7G)(7Pi@J=^-Z)?(V4FAo10wUe}CTfZ6#kl7*6lF z+4cPsR&?|~SWy3)>of4ISwS!M|egA&1>-*Rs z=So=1EPIdZ^WKKe=jS~h3)OcQajSRo9edw;XW`y*HBr7Zi#)`@-#>g^A=mek>pdZE zgnNhmEn5C!pU)p=-Qd|o_ae^uAy2r!fTcbQzNr5SvX4&rLewv_2}9;T2t~88Y#T_k z88ay+QYoB^y=P+|@w51mxISj{vG}@%&J{44+cUQ2XL8A2fIL3_Fc%QmI?7jQJCS@g zqcgN~N5^&dT-R@Ai5~JBy|1F9_}#lMWORwsM)zybJQ6(K+9|*Ha&*0^YAu)7 zRGo&L@hsK@alq(b1?^I>Oho)TTtr_1hd25)QZK&U-6s*##lITeuS0V%Se~Z);yMV| zHu9F2nw2Ygw@k$EHGAJebg58>7s8KFW&FMYuUTNVoi96kA(CTyQ)}CLyI@y<9GJ7w z{U$W)!NqC1+akKv4S{SS?cF=j{T4Kd2D2NCuEt67I}-WpdqAM~ZD^6%%vL(;-#4TI zNRl{vUyw|8_CRnb$O_c#DsVpdevtmn1v&L*@zwkT<3V8lp&9BQQHjdg=TS-L^pVBx z51N12)8jmD2jfRzc{Jl^)(&5Gv#+4?T<{_)-Ugx~-+$Y%!>VwJx5LoN+i%AF8D9dk zA^K#tPxRPfK=;A<^!X0|;(&UP$D5uRX9A z)67rnJt1}BJ0|(&d9l2VLxHu2C8pUl!C>~iwB<2yJ4HF$bbFpnv?m^-b`p71ifebN znGZNOd@1`sXMY=On&s?2=u)#pq!*zF{jHP{F!?tk|3kj)WDh>f-x$*tcIO{0)7W`mud{;WQQ@I_$+RMyij=DrJ2N&7*Lhwoo?8kc2 zeWUa6`H9fg13hUu1u(v>%g#C0m)#tKWM2}szBf~G7?|##m*HzXH7LE4?g3xCzrgsO zP5=DJm))FFcrrHo{+)`$LE~F^|L^DN8T}6-*Tjha6liY)Ns8PN5q;U+E6AlwW9hpb z@V|xgWk}6ggj*5$7WU^veCHx8vh;fg6*zvsZm;9(-Tw~P@2_iJzrQrPe)rz#`u!zR>bgMT0y(#ssJ$U#TU#tF{;7I*`AANVBrDn#%mb1=d=CxD|sM#dbhXbuw2kp=w$ z{13Cv0pMT|Cs4f<9(h8$A8$|+n7+OX#k;_JRFk2vTZ6uOl8?vwA|;u#HRua7oby-l z0p{FK172b&3TiPd_B3pFqV(_HfL9m zZv*?=#0Qx33bG9a=_0!qKRxcA>mZ+>0@_Ih+C7#aFgd@6B`^)B?x&gzIp3fRSbelr zoJjX;oU9h$Z%B2jaVO?)@M+abwFT8Er2lE)hbSBaru$XzJMC$lw| zw7}&10j$P>6I7ESUzy7E-)pU!>s#_tK)>P5s}}^h&SHPM=mXU=k?8^O5emnGCYShZ zN3KHWEnXg(K49|v5EgadLe*r*GdIXn$of#+PlrKsO^|03`=^RNP`#XGW+th7Nsd8a zx}RP_o}T7MUasJAO)m1i>UE$zeWqNigItBJJ1~Z$bwHypPyb=?T=0W_y)W?|FpcAE zcAjs(r~XZTw{)wm+5a0+_6hxl|DH?CtNs{xv5l*2@l)+c(2*_#c6?X$Y5x;XQVQ^Y zk)G&c(-ZlB_1D2qaz*v9PUEAaocZb})(2tA_zkGzrfB4-E{sFwp(~=f`+8J!;Gld8=;%e`fC|*9=v)WI>Y& zlGR@T2_)47lIq*RKY7mdq7@FCOs^CR%=lP}%>_R4qP=SHzE67wy(wd-Ex=+klo^{u@( z=f`{Ix|hB3Aw1*euY1iUXAng1!I<|c=V~UxpU6G8R{td9xwM>bKl^x=cz=Y&^{Aib zeksItWs#Tq7Wuc+;{M!v*a0@aucIkz!826j zL$fvU9nJOpS5N=7x`*|tjhsef{cr*8OP-%5opU}i%#kAJO6_t$}?ea^W*GY_S zG(N9~CVA7`i;b?@{i@}a>1#-;k058B8S5#Emw30imw{J^hWQ&$e|pmzp7sia3!odt z$DcwIFFE(?Mt2Lpcs1Q$Id>JvOl)|q!Op`IPJ!l{OE3o!`g!YjW8O$Y&r3iYdyD5f{m;X46<)@zoM*pMGzuA}F+()4O zF!(GLBx7FwEy&+%>)PgzWL!$9o&9%>6on{SWeqOSKSmC<Hs)j;RgaMD_4UuUsmw+UtSHqe@O@knp;%yW7t4$qs>+w%Uup>J^*|9{8JfgkVb zRY(`8;6WUY_r~pJC}(&eX!?7hjn62w%v#s5TyG+5;=R}T>mlZgNOz9%mH=TlZ;gI|c{oFR zr}{-~w$4R&fEUHd}u*n^8E}}H-o=aO@@5`mmy!wOvhOs+Rc4dv3!K; zdGv(!=SSGTM|^;JzoT-yH*veaz~r;|rggLeuWNg`=vjfubt5e910PULhFs)y+4JhW z~-85%a}g8s9_UHwYwB)*N7Z?QTAkFCU9f3H`-<@k7QJ zS!;%a#HgBKIs0?>`O>$>_b~WXfJEDxcO{=Qo41o1MnMg;mYNg5u?fY8-Msx#NBM7L zyma>+u#iG5ZrIpZ-?+AA4L4X+owdBNWj&vVNWMSkM&(PV)0)%CubXzUJ;pa}%`(3| zbQN24+&%oaSJsPauIZlZTjgKNQ?Ze0=-MFFzM1E%&*ZxPH=LWwq-6^BF&WF9w1{^N z%PICUv|FBBLu9TYX4jAn)I{+#aJD@8pst#c{rUTh_n)Spkrj>X$7j5sGxK=G?<~(h z_&m7g{k~l_m;3GfCqns0$U#<<>EC5Vg^jb0d2nQhHNOw>Y%_d*B|bRY8gh?3pO;St zwhVFeZ=c1rnj6GBJV(sftob8IwC*7H-72HULZ0KYe8l8MG=b&aM?wDUE`?~JpVF%&L8B@Hn}GtnQ)TotbcYiEMLE&!RCcM z>o21p_18pbj{|2K{ipav1{H!PX(KezT!rY z?R>uIqH$~Y6ll`7^UpTATltOb{3L2ugHlj{oc*GH%c9@(`4;b3ubhr6(;9JGOT+R; z^kwr{>gPAMTEtjrZOq@VZi54w5|(`|=zr(hO>-MsjCIa-D}MO*iIQ7$e(a}ZU(Bh@ zPoKv=d4$3IZ@>-p=-bw?4@;Ts`ADZj;RY=nN^S=lF!uTb}=Xa?6Kh@HXyvC=+*S-81HitMD z3cvAXH~+Wj?ji6QDh7ZDf@wRb+Q`T22y-i&&eHLD>o4v%hQ7e~s^9MOWjFspI#Yvc zKPs5C#(ZB**kw4l2Ye+8V0_PqFT4%rzW~oc;0TK8>lN2gH~>U=Wji&jj3|beF(S)! zHkL5|R`5?C3Ca9d_;?XsZov=`FS=kRxP`0T4YaKVPYbVE#_pS_7U;VPEiY zFmL)>IT%Y)yi|K@?wAs1?qlaU!_}u1@P?iGw^N-`-4Y%(4p>;LOP9s0T0lW6A7~kLN>iKStA3S)C{$1J3f@VqE znGLH-npTv|svJCcd6tv>_Zdq9{Vt#Xeq(h*oBXBt$M&r*0s5ZK53y%~%u29eBs%*S z_#_4Sq=P_y-;u20n#6 zXMY`f>FztVT3=00+e&yN)jEv6xwW2mTrXVTv?j5d(p&Gx(G&jv3t;OY42uP%2nPN; z!M7E3-;8~7Aw7GJ?vwF;?I+N_kr^M`S(jvL%+@mw&a8_|-u^pwc6h;mni=+GcH8l| z@Z#{~ahqw$_n2?uwd=2TZsGNON929H5p6a|Z!Y;I>pl}$|Je(?*MB=@B*%}sl5Z@{ ziQCoFJ-<$};6wg=wM0;RyWcMOGp)N{`+1LhTYv1hE)v=0g6D%Dx&XS5iY|G?f+yH2 zz>EfQ5ZSK}${)VyKU$DbU;gd#{(;m*V6j?}bsPASYBK!8)4@L!vL0gebtO+Cn2)E| z?j*ywlh_jI?eL4OR+c>3)QPUr)64;!B>DYp;R;05C()PVf+?u5f^5yND z{X1W0pmDvcL(j74TAr>qDo3gf)Ht+PAa8q#&(VLEI~AA|w7j)p&{8$Sc$;&_53D0Q-X&jpy6l zI#^+P4XrWW$X~kz#Crw37V>?GuI7EQeV~cj^Mid{gjS9cAE1^1pTd8nFdlnf&D+?f z=RqCk!{YOT?)PbFt#6*!c;>>EHJan*ZLhw+8^oAzdMKxp+@zMZn^fc1E%@kZ!`f0S z=bGmw>|^QY$??CVv(!%-%C+JHeVbPz|NPHUhwPG%pUAG-sNJkuoriqgt@{|=8^6n; zqWcLpGn~8eR`73jzWg`eK@ZDhNjsAX0X8qYfIFy)ec9C#ic&N^^=&Hl2F?HEYe#Ya zV!HyP&-kzXmM^>zZ5R7L;)-osjpZ2va9_)Jqy1+hf|?Bfwp#Ex(plP7d*((vO2t4Z6%16)LssL z1;h)~qAbl9Yqx?le$W&!%K9N8$lKoI{*ej*n`esq>Avi0AE2#gfag-NA9y5~H+_qP z@%${%Oxm4P09Z^#k_9LDva9_!Jih>5MaBN$L15l|W4ZR_G{ERjMXr~v$j)of{u%gd zDx`X&ulDZFyiDV3`x!*|RG4-xnJkR|b+3rL6Z{Yo^%Ud4NZC~ce=)7Eh zU>gU~i(u+qpW=AwBX#t5sbQSg5x;Cb81t_?lsZA(5&YZ+{t48eiT$j}Q?aIb+4QEy zH7ocl|8|={suL+dV=zTNR`+i3IMtXxP0D5ZTPZenBXv$WWBN#YqT0r`?pUzY=qLPW z9pkAkSXWNEvI9MDH?y%}Mf&b&+N=6kygr(n^%`_>3H1p%d~J}gfPABOuAkT8_x=~a z=8bs7x~3qFpEurG$h@(-Y2E3aU#i+}^Ts;T(7KO;=Yt>5)R@g1-=0|)muwvWtK)pI zxFa(^ZaN)T()l>qS(n$n>!x|mnpFzwEhnSRp9HT^O>(}Y-Y>|{bb23JWIuJ+dcUDp zXV!gHd^Fg;&h~h4EU1)aAJDJ!B<}w-c{+)if4lrR|16{di{&@LnrK+}L)B!+dv(OW z(D%ceoQNc_d6+!LmwnmQ{em4S`V^3W9_I_$=6MC>3&t1K)jbmQdnx-rhlQZ-_x!Yh z7-u{`lK;<=A9095-u>4{XR z?oGy?(uPd?BeAeJk?{LEMgaHrjO}J-I%Ha+yohMLWF~Wj8rOH)0j}snKLU5Tq7NU* zo4zk`MK|B!_AU=SB^rAI3ea;u&(Fr*#kBbDz`uSFJKO1BjeRBgmcL8S$#q_{v-&!J zj_Hq-t{%zj*QzdWdyV^DT?$xx@JIE)bUg(kFoZc|JmKV-t0{x0+vsf z!*`M|yZR~c6i%mN04T$-@zdk$3dT<&0LHHZesg@;)z5?1$>3>J$mbeA$+H zsBa4E`t*JMJ0rd;;7LlE`V19H-j4xo{-Q>p>^i)3-Sr^0D!Z;H!>oTVI2x=3gB5Ue zmyowTY=Z=zMOgo?pzp-E%W2=z*NfOihd1Ke{M*w_sofFuPJUK@cSQfKy|w(Tik|pN zki+L^1zlIs#5;YVr9vM8SETZKStn*% zSJkSI-b}Br@aT(-`dV}4DZJZFhThANy`3eU+iCC7uRqf_M^_dE3upRmJyW=PR)IAh z_=&~`GUY$6 z$G?WSzE^z7?RC*h_|xNDpOZf8_P%Ts#JYjw|Kj?bLMBl2yi4`3cYB?>!R`IalR0;e z>&w#=dw)ZX>jv`Hi;rXXc~Ta8SdFRQ1-7d$L*E2NFMpwVsOed~23Q`7XRCk6m)$}F zr#lI305kH?EcsyGa+%*ZzUn%_WFrqJkScr-sUxN|`z0~S{m=aca*VQ&lXDZt)h z{t^i={vU&_OiHkDB0pDx*MJKC#=on$zS*VD{gdl6<~G-7$| zX5#XrgZRE#t4mG%F)tH5%B4GWQ?7$xFGJq?xm6;XK9ceI z80wh48!VC|KNV~QamyB`*ccEkeV!0))vr66)@^J)U5BS3@Ag>SwD!=hMTF?+n&qO< zKDS6o@zvn>LA6b;wtXu$eaIGQHjp9_tL<35&BqktVkvEp+!VA zpAR*yYuT{gIOU$7ahQw>tb78hAu1-Xk5_M;A3)W8d;Wksn>OAc)d~`B`P- zn#T2=7SP*m{e00fdV<-~qBYpzs7!U4|2!n|4#@tk!h zmSEAYu*E2=EZ@!B{%!n4_Oa-b80wqQV!P;E(bQnLfb9w3cu=OC)jz7eFLV+kf4}X= z;U>rfmOK9f)|Y{wR!zn@yfhkzh0aS%&fr&UUNR8+n?)a3bQM1*fem2f_iP<>x7Ww- z`#B_~I^aI_8Ev@F;t%_aZslhs*aFJG;e7o1vEIKOzv_wF7}__xJ_r24^?CPIuFvpN z*JtLlT;G13x(8jKjR`*(pRs56+V7^nAMEn^`GKpr*xImWU>mOvZ(5#Ujo(JK6)bNG zY#sG&sNi>?t%sO@EoA*GriV^#eV%-x;&|viAPz}CyXZI6-mBW6-|p^1iN}TF!}D~X z#)a(hF(beZ?%b|7Lv|0X&uax;V0t+K7TZ9jCz*JN8as--;NlO1WHy3)_0db?_;KHgxB9Q;A8aSFbOa?V1_5nSe#CP-*=%cIDCmW%<%sV4B*&HG=BKCQF-nkC~U z%#D{+8vUpEl`%vDb&?w>Wi(G^RW6IopO4Er^nf?KkHojXA$2YV>L z*4-%r)6>E5Itl!MYLeqnd7tU6ka>uYPa1!8@sbnaq4IU_w7(5`(5%u5iC@`-id=t@az8z5XHeI-wM+7C=RY! z!}FM(R;D~f<)eCgw!R#zug}jooooB!S?yt@R~Gla4%;mbFS!f*`91h&@b8&iEe=OM zFY_--UB=-~LiiBNs@RE;ss(M;cu=KCY=Ew$@FpFLCh-xy%KUSIdILn$Z zM|QoGp>BTdv+#LVd~l*mo3|Zu)N{jP-7*)U?~Or-nx_s3pll_sw!g ztAXhWyIZ;(R2rG#H?&4nXk7KrNt!%Z@Y0Wl=OpRwr6r!HTe=Zh5HR%vDm0js$NKew zEcb(I{ObMf9iJ;KC{JJ7^pi`^4)PZA9v<@(5A5sdYdohu?%V^| z-UEjj{dhd$8f)>Vw`?oOpKIUoJwMNPJ74U1Sv;Nzi z_wQ_l2$m^-H2*uax(&*7UIh3n*{%39F6_BUA$6S`m$SkH#}QGIxT*Gy~UG+orZ(+j<2yj zXea~5_ml8#@nyI4;s1}jHvyBYD*nIkB!s{K3Zepv5EfZP859LU1Va{xgd`+k%ic57 zGwEbzdeXCGChKGmAhL)epvWo$A}A<|s36J?zpx0nAYtG4C4mIy{e0`3+kJbM^zBaO zdH-0?Q+@9_eQ(vNI(4e*oV&sE2jHbt$n~4N*Rk_SS2*cuj@}8}2V^A6y43?GUkm;j zybshd#E%JRbpko~gx$cea=wQW+G}yo&zUr~u>^yY2`v3?0q>_M-?Rf5o4(d3in#6) z@h=)GfIS~6n_utB!2}GkKdR|}2o=&Ds&e+y({sqM*LiH*Htx8~^`lG@u=|pRF+v`9 zE|FaKpts|7g6YPsk?0#M?{~3-V(zt7q4j&$_fH!?e1h>~yi8aGE(g=ZD=Y`ZgH4zS&IH>jdx+g{UHJCRdcuTz!ghVU zx3->e6q^23C`acl*xBtHxLS|!6|7E$ugUJT`TGQ--Gtk~JHb^U zZMU^~4>r&CW&IB9BYetM3KWyyq!9#}m^~lhECcKW(W9fnVfXu*P z!n17f<-ylMDM|q~uN|z27~QqW)<%ZwaN( z7b5i)k@|Nd^`2liIW+Hk(Y=3Y|C3uPQ-fQYrw>nO2G^yhCphP$K6x+uM5W080}%R) zi84(C^A~r-^cU7udG5kLuQYKews8_~zWO{{bwdQqUnny42$tVG7wLCrCs`()9bB0q zG0`1ty6aa@0F5Kc=?!1u+t7O?yooBiwa?jWu6^c*CMs0}CLZRuv`{dy3bZ+L)Q)9M zo5l}?b~&-b`=O)Z*KDlWX=P_W@IbI9Kcwf7HjN(=C4tRTnHf!73@%kop4{___d|U& zo`0*hef+`3v-&)Y|7CW+-Kt{7vwNYSyT5*77*BmXnRFa?I$jC=o55S9ue|<5i^b)2 zU9Uq=^!+f2Ik3%#&WDetA4;w#-p_U|_#vnm%0bRv*F~;FTfXRG2!F?KkHyc4x9J?8 z&m!N%e}ex}jmzI#vfqz!>mun)ZK5GHhkF&%4aKZW8y`fny!o&2coclz_$a@5&%OWE zUIe2`py2vWuKf&cql+vPp8;L`SDbt&lXPFy8sF|;3+IRzM<3s9^#2C!b=U)Pg!&;z zK@-{XS|^7z1NZ#-zuL2*_1c^~n|Xe$7fmF;n)FGduPjvA2RQK|a5eZch^0;!&z}c2C+B+|ACHU9M?P)hGFoeLe4GD=%l8fw4nHivg!hnzQ8@uuUZL|wAUz3w>Cn5w8rG&NVa_aM(m zv?eO*_;NvoJBfE7cdzmh)BH=M4Q?FPXTKHg)~U>Im>uFb$O?iz>ASoAX_GL&vR{I~ zreZ5lYgN(vdo>y-ky8kiU)VE+*pcp8)qP*Owyt%+@EAL=kA7nNPg`#Y{iWF}x%VWr zHfc7PHa$iBNU#2Cqvrpi-i<$_Z4%m>v<$2_ev$DXsw=j9UFQ9rIeA0>wljRr0M7yE z+j!cLf7^ID@q3e4p;yS$o55Sbo4UotQsvL}Z|Faz=et0{{-isMPt<>w z%BOcd5A=RtJ{$ixiS^}4k2v`vajitYeUrCN-p}>!$Ne|VTPI^<4(xmKzuHjVn#}OB z!E~nm*xLH$iqVaY=}dD=10RbWAO7*R!F>C)wxOOR#C-=_nQf=Vy~#TU!Q?^UKHvc% zPq(%B!I(P6_4+{xasV$+gq`!B(5u&Y2;VC+nW!;&F1S2*=;W2T{oePC-h0ab z_zngww()vHZ|!w?pZ@LT`xo7-O^Tl6piRp3K=meZka%(L_gqVt|Iuyl{kPvTcf8j} zKv&a8e%R)yj>E_K*ZeTUbu!t50ngXS4maS3{dYFIF1@-{1lh4}L7K>Pee&%fIr-!V z@-<}Z#-Gox%atsz^Xt16U72v08>f-?&)fRjtwtKq@?TFqh zE)6%~Nd;IO`y%Y0bmd_3yX=et zang2a&dr19-^hEh{ju@&A#L^tiI|iB1u_Sp;#&~X(iSfH^Z#6X2??IY8*DO+{m|5Y$5<~|2oX9!zt^O!qe z{aH}#oPDj;x{tn9?D-d5w=jBW!RXzIR^Ec%9!Bp4eiZ~I^`}5)F@i$t0e$1Qri5$5 zt`Q&G-_UPOIW`o*);%9C?6*#;uN$AJ4ZRipVE$^#Bzk5lNEDhvj1*L@w|*0~L-U_MfzN4xJHqBC?t=nM(~iP^Nc55G&=qXu zaV`g0KT!K!jn!UE?KP^Uz7So@i<9B!F=-bk!9jS|uQ=cQy7i|YBUAn>x^OtpZG$No zk^@tw*Qe;d&lgNn4JNbe-w2-$DBK(b^U1K!IwlDIOx*cDvg*g^t>>wGzCI+{H(T>3 z4;8ZSK{aZA^z8-SpO6Afd5JGuU!QB;ls9wxz3*9nylV4;Jf~tt&uP}K2YSo9{XD_v zXwL2EYjT_y={M;$(r-lbspQn**q`Ear(g=IcF?WgY#fZP5#7?_@7s>BjRSJTsat^L zjQQ=Hibc6`QN%ci$XUH0PfkC_@5ee%Fcx`lb8QHwve4!rD(5Py27_W-};&tv1}r@i|DZ%OG^tyWa?y@cGj833gNeLnPEIQ-pHo%*Gae6(G0*P|@Y zQ7Z+O8{*@qegiyMHBoz*S`q3wT{%O40tNj-uKn1K!1Ou}`bWBQFmE_4R@|}$7 zL(-@re%`rS9w&?&p{-7(AE%xSjy5}af5_-#j~zBjLCnYB@q@>XpE_*hFkegkohY-E zaV>wfE^? z4r9VHcJTNSqepe-+Qn$HcCnq>22KPM*3Yku8a>{Qj-Kf{uVj7Y_+sD2S9X3i_#5!b zNW1Vq_CMRH#I32{2kT4b+k3w-{*4dYspo?igU!}2@2X#-R^sg^(%)HA-cjhKquzq=KoQ>b;i0K2l<>5766@#7x&jru1_k4enTKW1B z;AF57Tmqg6E(FP}rrriV1YQcR3xa9efIEZxfrq-j({IV`zK)asUuZ|~tv$=lT%0Io~{nOZC!-tI>Hj3LROV>;9?Sa4br`oYS_&IPpv*UF`h7KM- zSk37RzARrDU$)bB2loXB8Q=GY9F033!abzpO16XE<;CKRuPpDY;5WevC$Af`eI)NE zJYTlci22hPCDRVKc=FPiv7?6!8#ivmsH3Ki7&UJE*yD#N7H!gYNFUMfP`&~6GKar= ztgr3^op!op`1pgZpM018YVoqTb>Dkpt)FlcM>0`=qCWkV$u6Y0dC#+e7x9dFYt=oIzqxN9y2p7WVGV#F_r-}LA;6WfsSN{ELO-X8?E5G<=cY$KJ%kpq* zhpZp4cKi(Xm$-5;O^f?x#8>YPbga3fhd+Q4_)0Xu=5lAi_j*?jrrpkt zq@1OH!EHh7$G7Z$roqkJNmSXw$KxVU0)IrB_Jo)FBK9Bj1$^iTI;w|AwyY=fjpv%AF8% zer5fN>JmG6`7Vb3Up>3GNZ= z{M@(}=RhkP{RRrtr=zUOy))8~^V5$l7ZSzx?vVXMW86=KDmLcF+DoDniJmw#rJk$9aZ52VM zN$n|W9V9W>@i4iVUnEWdPf}f;Tw_AHnv-qK?u>$Vl#`1tNTj`7m$6^vCijTTr)$tinw1iCl_5Y?JY0YEj`EaTa)v>LPw3(O8v? z?UnM?>|{bXAKRbDbT0H}+59zk{+}`R2#2 zWT*+O2not|9qB3d;U=~{o+O1iRN8@QZ;cp6{KUw^W3Ta5>o_vNKrvD@M7YOQGc@$e|D$qg#E zQ%$#cR8szt5dCmGJO*v7q0%CL^!iyPo}ltG;<^#zB&S!psuEMR{=AC)FFDFV<^ELO z3@VRBP^VYL+2^c3`FL1Wl3N}dYDYA1fuzNr#VAgnm3uf|=3o8^?}I^d4X@7+cs zY_R`lDQpXx{mI^5Gd=MDMy5F&@kQ$AXfg2iMiyT=8Jwybv$yxTn$zSSfUz?7zgMNX zqDdIsIUJ*dl7i1(N}-JWAlLG;=Ahy(GBC( z6VN;z{E5+B&99GFl_YSLr+}7G=-(Lqoa+ynCJ?SoB)B?hkm&F`<}49I4zsh7A9cX8%PHFQ$=LiFHY1l@~#0BjKYyd9Jz&Px`+A z;d)vnwqsEIdfHg~{(5dbt%G}nehTi%b4mO0jM8GBeWsuFMeO6|c`kjp>9qTzDlx?> ztiNg?_z5T3{`Wh!wx0Ke-kM;3>ZPvhc}_^36a7E8o)`Jw;NF}A8KB1h+QvaZX6?}heR^=0ozuYu1Xal{E#F~oXU-*bQ30XWz$>w8%N zW4FuvQ`HXQ>HX?zSnm%Wpqe~+_fZ)+K5VP6)1N@RcwurPlEALxkB9!@t{hb1W`YyJ z=^)17-nS%wyDrsGog|t>z~t5Ypt7rbL((lwZez=9{?gimKd#!v%X}vL$9XnY{0_v`+qxyj-9!8H(&+g5b?vW&Bw&3#6_#{j)g0C2*;7X4{C+ONp6Hq? zBBkY)XS08-=mS-!@$;Gup)T*q)Oxf%%AI>&IhuFt-ka)ej7G8YE^ud=ywhmHkH8B*pY$N1lov!LyFE6H9b*bYSRIyl4hOa0i?X`6}>raiJH=_3FWR5*fTt8Zl;`=cH z&tHSrca!Vtjgo6~Xp(VQKhmF7e-7n(0GUnzYpK`*%*vHF{!h?7llGi#6}?bJi>q!7 z`VW!=eU0tjLHTK)4hFnj?Wy+BrbxZs=$c_NKS@i8GgTJbyXCRDyi->Z;;$>Y{u3WG zVSJu~2Xm&Xm&7}2_f?Nj`?PCO5#x`TU5!l|?H@wnT}L6PdLN#bfWM_e30T&@yc)Gf z>$kzp{v^AKDg3NSc_I;oVs;)ngd&~$em&f-j>UVvIc+80L*-5hK#f>AmIA`+ve!?$Rhx7mH zub?Od=qH!A6__1g@{{@Ds}#QFkOa&=&V{ed`>CiN2~Yf0Kaz~@@8=ZX@TCv@-`NqA z9mO{+N1V?3&v%0Ilg|vwdGfHl>Ybpx_T8X-=37DeMMRfHKM(qS$oF)Q{AAE?XgG7{ z{EdYY^et5aCO0vl`XpBlswX1zP;d+t(s`b~^TTZ^`rg{{G217Fsg~OmRL_7X1+Agk zTzosW**q%Cx8ytuQKo*v%X=Q|TE!HoZinah!HX!cSdf!fc~q9K%cElJ*~WQw8ghWi zS_P}c;8N9W#JEO=>I=La=d*u?=mFIv7yWJnAEcl@%l6xwQ8}DzE>ez_V&Hk=fvcI3 zRsT#idH#ygV{&~^#P!bH_(%2Czw`_n5%sG-?aD#*XOU@N@M~0j3N*QtXRd8db645PgbS8IqCs_B67I~INixN?wWJZ*;2Zl;7{Coqp+>HVjs1IBL@{0?{JAUPOb zgTOCS@j1}=Sw5U<8WO!&&wnN8RU!b!cQkyF)gU`f{Lfh0IC?|Yj#G$gI}X;p8-{4095lqq=i-YTH>P$HOAM1LY#YI$<#Fd&{xbWnyoGwWI zjb$tPYJeQ!ZeUif*O4omw+x=0$gnODxBr}6H;I9l>npJOKkxz7`(#sd-_jih z_u)*8kGg;_72Mf#8#ZOFd!JIx=8k5~fo@y7w=YjZKMCze{fw+Cw*Qj6-L5Z%c3HF3 z`_b#*Qzt%U?BE*g-ti;Zsw1`p^Y~vw+48OK3Xa__^Q$#gkOs`>5t3@=fb&%2=e68< zS^w280sR~Q6IP`1w zf2i|S`3tsX>z6#H=4{cEe*emr;Tc>3ZU#F0#Lm|;e;bnEB`Th;=5xn#t5Tvi zS)@ESLKZN)d={4Xfy8{#<%dRCL+;op`D7Y^*$=v^`IkzP?{T)bfnqoS+@Sr$jBjpT z!R%Hl1FWy4W1_!7&FgG5EF_{Fk|yjn&b8jG%S3*zO0}zBqnBWKg{u;XuV?z}ZRn0n zH6%y1)K?}mj)4D-v{xzsEN?!E_o9$(7}Rv4u7TjEDYA8Wdhz=3zSsKt67+Ekqy)8F zLHkP}sa5VeQ}OiGG{ERz3R$u>gIdz7vhRYEDXNdR1zr3?FHEeeW{&5^b6(`@mZt2a z*!snLmuQV4xb4WpsvA@C`1EfQcswftW@ z2s{WJ1y1Lj9-xHwqKew#eq7uD$5%Yr+HccVoIshzK7Hfz`?&pK@j$H=nC>FG{*NCQ%Aq;UxBs{76RizuPlN-5t?W*UQnAfX#OFQcCnfnQ zX~@(S zw|2-o0rpOny&5w)Z_H01%XFEsfxU&M9}H{#5!mm1s(&A4Qacr z*{{#(^8Zn(vjfxNEWKHHn{)W8)EeIEc^F$pUSooH!7 zU|u`IykKp0dPGBOdM0PO_euG;M#cUf*mNiftZ!jCowRa#i)zdty7wECZswKMEH|DD zKA&s!(Xr9r7uuvA(>v^Z`Bz8(Ybu9e{TPofs&NHWoeoM_uS0SR_3>tI@-&PG1RL)`i|Ts0WU@#rfG znEadj^IxKT1IS3u)33s3F?N6%TYFxH7T#d`Eq1<*%SNpi9b6>6Ej+zfpmia5k)3}X zzY6I1q3QKtJGc})6FeXM1;{be$uXw?O=oNv`X&ygKC@x2AD4f#afsQaL0RYTvCrFz zi9{M=HV^PEtzCCAh~#yq9;>Kw^G}KpUc;Z<*mEs*X2r-m3sNz>D*w~y2#K9|`C zK3dKaqzFENg4dCtOnV2=@~1V)hH9Unx%Jq}BrhTlQ#Ov`xK+qs^!vzDXWPjxuVTEV zt^!?rSNq@3@M7F#Q?ux+yuPWqrP7@dFTXPSjB6Xy`$3zinIcDpp7OT$GD)0uL++^y z>SN_qMi&(sUHn#xydrg*(Y1D_8tfvL_^A9rjRgh!KR$h2jnV%KwC@4$xAX0KO%%T%*RJ%9hQq)e+lB;D6CG{VpyNX}UipWM%mx1IKsXu~ufId3txDX2JN$rfh z4^$o2HQ!&3~XWs%l$f^A4ZID z#x5XUY6h`>29ZQi&|YjkV#Wy07zx(cNo8mM%(gLp%um_(2i-Rizw9zee625WnSU;iO^33vT5B|iy2L6{??R$CFqStEj!0e?tul^41Dp>$15>z~R^ zXRHi@y7B(ZKHS95PiTa^1*o<~$5Ijlbd;%Gtfck%bnmfO*_WEYNGPBEExUX8@*K}>ZGKx1% z;^z&@%+8((=L?C}H*j1>U~kaS(|!8dlh&uBYtx=@pKaWI zVl)2b7>vd<3+lFT+nKus!Au|LsbTyH)w{9BoB6}8*S|vhnE74r5B>;Mi}xarTMLc= z<<=N%{`wa?A^&Rl%MZWYyJBOv&+>$s`#>GA^*_?onco4ARE^8?ZT-*XBbFyx`2hRB zP&~-dr}cJ!z^>3f96Z*}e}P{K3C=te9Ijd~--gyvE&ntfW&_d;L^&C>Lo*4X_7fM`fqb zv=t!R66ChLSJzpyw~B~N{BdV?x9{V2lC$gAXv<09c}Ay@-RA7e=P71ic&M3|>3r$^ z7i^ygHStlX&gy+rjLRH*kHcJl7rfK9XE} zBr0I{jh#$0Zg=Hi=09o6*TKP53n?cZiVGztkfQ}P_ z;LNHZ_<2nb+;Rm3`Uqm%bxv-n7%(4sIsNdQD+e>5MdlO11QlC=gs}K_nxik30Y?Al zXy;8=4raa!?b+a|RLI7RzU)`e_iya|Y#L`h-G?YYAGr^aQm5LJ-R9aYkpXKrJvQ?L zR}N<0K$|ZDucm_Z&b9kGc9c0Hgrd$&Jf%kIOme-M*MNTkv5T265rr9Kb-RPah2C;} z*-c4X?9$qVWix@{dEukJV6&$D}aJGOr?yX`u^2<@d#*F%(^+zKDLLUR)o zg2O>gc1S8+-V*gA>{~wkO7DWkZlCjCgaUz$cc|Ch3*N7qNIv}4F69HPTqsY=(Z>Ut ze^kV{8zdcp{tNs_NU-j9@Ilpj`3lZ2Opnm5`=i(6U)g_N=c^K*7<7Q=fJzcA{}Vs{ z6xK&#&L-C9<8S~>-aTl_JK%e&iRd$){w$80oYK%UUe4QSz2$ilV<+fpjp`0i1Igr+ z-EHW(5cS)J?5BeWN$gkL*L7y@Y3zUY#GwCKrw9Gd{A$qu`(zS*2}Rnk&uPql$;;|@ z2lrI_HbUPr8NkNp-=N1F)|t(LY@Y^o;YOWc`Yxo;qVjm_Z*?VLHpG6ttX5DzjAm>L z>iW&*pv^0K%M(=}$rD9D5L>@Gzo+>@Z~SuhYW9i#G!`asA3bBhpkBE+$}BsK;y`da zFm`)#^d&lAef|s7;`=M8uYxwdvy7=riTS?iUrhsy{*};AyK+$91nmsCj0*KVec}A^ zrpWhm@@?Vx8UL%`e}pRs^{2r50+2A&W8PkeH?KqMb&QJoeL&`K^GR1HTVK zpnjF7+GSHhf1rx`3;lTcJNrk5?foHby$QUH3MGA?0Atg)_@UMcY%DOY>n{Q?QB5>1 z*PpL4_FDAwE7srS*Y$V$_TSDvvEQKnFSPwR@C}NZ8d>|rC;I$KM-YtMlXprz81&zH zHt*UwGU&IKcXaW@em`D_)BoVZ!I{+kBIw`mKSBR(m@sZiC{mv?9l&hsEo3Dg*Aw%* z=o7DJ`YbxXH+}m2KATfLD*8aZ1%Bv3}T*LAQiPNu9cc~3r*YlTm6zxGNHCzKihAAcZl6Dxtl+}+s4+> z{Bv6sk>|GD{G!3f?gp$y&|qVY?IEC2ee9nf9R*6uvB$HGo38VVu%8-cdVh8YR7Z%9 z$RERYS8y+oq%xN;zMpHj8~2fN-2BD-b;EZc3s~$=!je_PhLcp|#(90JA?=2tFDGV% zW#v&D%KLNl5yj}&Kzlq$*oVIIl68%V=Bnu`X2J6Ncyv*T(XEB%G|=LH=W0mx2g$@5 zu$%@wOZW{pY75_wVR7C1MO|<@uuM@ov+IIY^Q-Rj?7n(XAR#U=aNoxe3*h1 zVINLkq$~oH3&k|xp&CwA%_iy((GUA01?}Y^VPE~hkBkg#SPc3|Ua&uM`qG)iVrx5V zL=AI97ihSQA3}a`DM+{E-dD7)t9|9{A@;a(dOHuYKz7_-%l@xblQ&+k4E309p6;LL zE-0VI?FXr*F)dB>2j}PHm6ZV|udM9Pt{gPn!p{BRL*M|=@@5vL<6in zQ=oQVD0G$20S)581U#>!GK532+D8xRZxEO)xm&&%nAlPoCpRy z_}O5<1BV3zR_)}eY~oD`@=29I)}}si<)A?h!2r`Rpy0-5gDTQY1}q2q zI$MHFE)R;_KkV|l?h20GF7s>F4p<889?~zt-uyll>3RHo7aR>rLED1H_k;Rm^YnBz z#VnM-7tzvJz*p|&ZuYr~EFSO1DFA!F9hKvqYPL-gKDRWoR5e=-xzQ_|;RnV-~AULPCE8*Sc@{vAAS z0{zTl{J|1~*Y9Nf}8eg7U+nfqU}iteg5Io9iZM>{%x z8oxsObM}X6rJqKvr*q`h>@yY&(wdA29|skDcL2@)UgvsFeWH2Hblz&=-&Ip$zy1}H zfbo7C-j9L*R*khkV&}&9-70;ndH7)@2-74s z=_gd{<$Sj>BB8G@G!Mz?6+3Mt6)~Q_gfgDgppk}@4FbPGQ9to%>b3puOyN6??@z7gN&svUY{zOWQ|i*Qc!=QGJu) zG;ZVDSxB#%zjd~_gCoBYJ4XKWEneT(KzVn6SR>)AY%Zvz9R)dkD_?p_`X0MMk5!so zH-6snHvfWUH4@hv4^&+@yDlWR`K!ieP7Uq%U1*&Go^SMW_J%1n5--i(@N11n>VKed zIOjeLO7&ZSS$lg$@{dc_)i@nwqR;OXYbUOq-x5RmL4FncY-C2_5#uR7F1RLF1jhUc)@fY3xhJT%3Ror*SS=@b!d3Z&W z-Vj9jhL=M<3haDe&Aq=8syo2 z+>qZWtsiA?fc2yN*lD2RgX_ol`1~_Zdg=9N#rG@Y?xj|RtoEKP&*B}FzGm>2Au%YRe%DV7v z+>w4{sHNBXe!PzTcRcMzChq;N0&k(B9L)CP3r;URMS!CHP-*>+-xOHC<4-3YjaKed zO+kI+{1B$u_zL1Fue^u-hjc#BND%1vK3Z4I+X}S2QhIzlU0Ku8M6#I74y>Z(b^b@` z3SjY2{_rXA8P%9wtyP}bU@w?=cB^tRd1IsKV@Kv=--GsQP|G0s{^&o{zM$Ho^oA+S zV(gpV;L}KSG-&(~o#6=ejRU*R)CYPa_Y#=iXu~Y}aF)8r`7I=t)Uy~bMe8kR7tot^ z0LVxa@C2cQS)W5T<~sdvTRSq1HXwY-VZ5A98HR7)jSKsgNG^Ja3)trKwi!#1` zJzuBx!*$lL!8?t9{PVF& zv!{*?-+sZEv z(3G!7aCX>jePwL2sijWIZ|?uR^_ATJvZF{pM*QF>Sm(h;Ob61R{Ig&d4ru^JG(Zj9 z7Tf`J>vnEDY-lEG_ahWBZ-=x2t<0bQyMBJf{cCOH|I9#8Q;MF)OH|Hyb|CtQYH^kx z&kO)RZS-H@7Yi0o|xELW%L6 z|F7ujf3uTF9%}EI%uH}+>nascw&#w%d@=3&x%Q*$Eb86Z*Ga^$+k3)7`^eno?VFq_ zgO7LieFNKr!J(jB90NU{|5KE0zS~{E*zI!uQ97FMWd15!hf@{70@DZ7R>3mf_&Q{6vLXafH>903^ z^;RF#e|W#V3O0br$%H0DE|GabH4!}?VCDGo(H~8mV*ZaDD)Xq$mwap3GAMPC#Zq@? zAK2N3?#C}qo=9BphYFk27VlJ%MD)M$aJKX&U zdULSeYOc5J>r0~3=KC*6=N-N23+{e|gTLq~hj%_SU+&9w$TLg((eY&8SBY!SJ;s&j z8=`Fe?>_j<6CaJM1#Aa_`+y8+A6FEgBKQA@?%J?7is*Nhwx#y9IhT0bQ?FOo|Q1tpit{wdy5o^cwv;*riX!;YIGeD-T`Paeq{qNzaOp|>~ z&yKbC;#6>@LTRb(5dpRxxe+Sx(*d4#Ae>XyYsTeT%NoAVO zbLF6E6+4Jx-{6t+v3^kh>-)#N6DZM;nq!N0T31uO^fD%su1VD;v+EwKs4r&Tl z59ZKxw<`zDJJOc1U=8|BibR=0M?G1&>ueDp!p!$a2p`hAuP7RiD^U@lKf z)h8!}U&$$+_QbN)lB2CP5m;^r1t4w`493(}i@-=^Y|p!J97=sRu4r^Zj`-qDS)H>nsfzJ##m zrLG(_uY~6Wu$~IV@;tlue21o*cs*Eq5``LUL^~uJVD0!b?f9W92hBgG4X1)XqC!42 z&mQGB?5dDEdL#HtM8NnnPj2>l37Yw%AA!D~#+~La#=nsr9GZ-?sR>*Ho(*0K-UdDb zJ_o)FB|LQVE?@2QLI~1n&SJ1)mRs7W`SuuAn+S2Do)f%g>}Dz~s0E zYUt9S`Br3LT=#p1;`U%xkBWoR1-mf5&bC90OS8x`2W|HgXSmUy&rfG6`ujK{6qO8FI3(L{)pC$>$2;c zb*JVJRb%t`HI0sm z@~>Fy6lPDTswI?%=C}Cx9<<=V`=0?`27T#L!@=mj%=hFi&$nLnA~_FHnp_$U0`+Ox z0NMbnmd~puI=^bc@|+*my&LwC^D$h;PPOT{`0^ra%Qp~fCZ`?G{$An(w8(ZI1J_WH ztU{Z|JlUhX!_yhxsXDIMIK5i^DGwm9{vRb}EqY5l9N15Dl%pg+`= zgO(8}d^Zr673>6N<$X5QbS!hZR5+Q7=0N`BV&(m)PuA&MPVvq8m~U*I9$(VZ;sq%) z{XSZFot~RiY{{k5@}8C@&{zhp0Es-a&jhDCnwIzM*_)!wzTWfqhd?x1t_aJ~Jjd4E zTShy2Epy#=_Ap`C^HazJ#8Na2>GmS%%q#sRp~nT7V=Ly z`iNqFa3Hj=2ALypzUI^G8`J)^%&Iadf-dVTwnj-#+;Ss$y9jiy=4Ug9Emu%`JxE5; zayNBA5%lqA)^6fQi~41iov(geuN43zSD2pV%hu26p>y1%|DC<%`pvZ~wmnD=?9JrZ z3Yx_9)=wM%)%>c{u(_7EsZ}qNXoOJE-g5Q<{nkUhePC-X{}v6A+k@@TK=}iiHi~rm z>$*;=b&@d&do-rFeri>y1VX>px<70WP>t)Srp9EIO1}KQzKg-V%PJT00~#;U`J?rd z@eBJ2ZMA+Gw3$QnI$Y~M)E;DP3-ih8k=|$}_Lx5OAt6r{)Rveh7d2&4mZdW?*- zBK0;HGJx3y^Wj$VFP?(}qH&^?sM1Z3h4hw_M_mrs`nB}rbF83sI<@bB3@W=mgmZCx zWCz2Yi?aTC)0c;*l6BR`j~&TzA;gw9*B+@3kjz>-ZIu}aT4$r?PlAeBID2=UCR{hw zElKGNj}GWi+8H-a<@gex1X&wh;>tnm3V4$9m5rf7gI)Yh?pKi8C-!=?FkiUI2F_yh zJvU!9KQ7S#i#<~j`y5veTF<2o`0z3%JsP9if#!GKq8 zKwGZ`3Cp?l$yM+zW*y!6k>5C)HvT>V5AnG}bvEAC@T6m1wXG6Zd2PCKMzX3|Yk>v* zR*rt?r!ehS+53Y={{?>W*uvJofcL022Hl)~h))9354lV0>)XgBv61D+jF~(WWE85meB*#a;K!=~*HHHeRPOfAD$_X75ZT z75x~qwoYl|HPo{osGS`_aPreZ|BIdu20k<|*y4tX!4?nj&V{S);a%6mgMQoonv?qw zO6X^)3NU@%iM;!`axi;8WStMLq(ZU6;zig$T-Wlcy&YZxU&e>P_}&HIgIzh8eF!{B zcKiLD3h6i-r*wbFaV^OVF`)#0A_Ew|yRn-~T{&pI99}nrf2D#Y7RRrV9ac($L5u(# zb<4w?LDthc7@P>!gY&@C!JmM5mexnWXTUW`(;vh#XCD9_4xR|sfoyA7N@RE%guShQ=Eb#f*~jvZOf)4+k87(Tj%-RSO@8E+Y#~J2DOCcd zZ@gWrQV+rGCMYn-`YVb2G-&->e0<*?QkbT#>(GMMt3(`_y^zWZ@L&p`0d1VdrN3Iz zsh0$y@0)!pb>CA>G*6qoRAv0tx+30d^8!TZHH!m`G|>=5^d^-6rnh@J;(S*QX8#nK zCWAAnkZGFUG#=k-P7iD2WdjX~Iu_-y%#y~3R0SB{`_SjtT{)P2B|H~_r%%5Ns{8Nl|uZE_UMlFXVt4B8`-4n~b->*9RIe5GR zz6HLYuPwV@)#vE>|EOf~`#<5j*oK(8bEC&s93SI&jh}AoYO{aksLlSb+qU5`1#JxF z+3U2IHx97|Hx483H+h4D${e)(B9i{ zX*N%N5M7XhnTTz>vpou|2IX3|1daaFg*za2J66jtw#n@P@)3H)ZrfKtT&>stMt{%U z=+hH+ALcxP5@6*joEeNdp||Uiz&1X^YY?f+LX4MIHV!=p0tJJ#e7_%xmwQrezo0G0gVU%$Ke@a@^RTY>4adx*`X=tT$z=ZrAdLHM z_#p%LT*@7B;(oG?#Z|(7ezfnj>tAh8)348iNl+0Gn6ro5TAY`;^$6xyp3BDhZcL*8 z6W6={Z`Z@xu5rZM{_VEyxBBv1v}cX>qj6ik8QYG{KSkoZ*>z|S?M!uSyg$O1m=ppv z-rFVYx4|)>DxIHW$NTm6VenV{c(n(CI7|?`eJ(!w+{*mfr)UB`t$ll=V|mWTK9ABS z`n2BS#NN@GMZywQGEA z4?P?I71U=(&~KOXz}vtl$y@MykDVNpoxEF6HZje;lmCQBA3|~c*}l7Lis^eFR51cP zMs=mdC)2ZfXkV}A$Jn1BdeZY0w%38Tfq8LxL(j!*Qu}Qm4Qp{fofcuY?X_S^H5(zX zOa?H!qIcVyRg%1#WV3b|;2d)CcvH!f^AA1_TOSew+sUmA+L_erU8xc@#`7}xiO6#y zo<@BCkZTWZ5ZL-+g7*B#m4o*4Xv>$tgQ-v)#(B8w0X=k4Lf-uGMl|3COz zehG{A%i&25tZ%>-|GZ32E;Si2`i$!KU%PV9{#$6*gB?`JcWetfKS6%6vEP5o@h5W< z82<<0ztok3_Iu!slFKfpq8v2-8faU)g1o9mx~#vQhPKZK&j87}+OGm{0wobXc8>2o z&dh_@ekIplRMEcLkBfh?zrqu2$N82?XMd&w`?R&}*z_$9skH*Ld3;U#Q{XeIiN@dd z|M+oT^!Fglo=|1`2fqEp`}WsGA83D*wm%8JOhGEv0<-y#==UJv+OLyG(G4)a^l4bE zrzdbBUF3O>vev^Q-(%1*0&4T;|MD{%de20zpVS3FnA6OWNP;=LxUD1Z8JL{W>+Bu8 zNA_)=$Io!D>=IVhCPL|Z&W`4WJs#5OgKccPc?0IsC@356oBVxFvJXW3|AD0C?@XEI z9OIeCey&{8sr<~{QRuY%eGb+!XDUcWHD`wVXYLQ(*7A4nV?Ec%#{6mcTzMW7cTn{I zik|-OaUE{X7v0%&#<}g>gM7J;_RZ3M)Ssw#+f;)FW331`~_RwP#`@jDN`)&RbQJ%j~BoK zFgf?53FHKGu2)S&j|W&ezI@WmJzl>5vVV!rmwbO^dm(r=xEW~jslPUqKNl5;=G+Kb z!0h6)u)Gf>my$gE&XggL~ak7-So6RB)jP;PwwCu=BM~x9%EGB+iKc@C{CU=hq?|1^_ky-XdgoC z@t@Pj0M{JL(<}M9^H#ojbIE7==(%?5hiIPuAR4+QbHR(Kka1X^+re9iuw}h* zwegx@;5Nqv1GjDq$`^bqC_CYdplsS@;N2YDM-W>+i*wSJz{dQSk+T*|sV3^r<|e#9 zD|((_{ap@CLXPS0N%qlTk-9+;Q^}N9RGahE{B2ea(FV9>rPh_4@M11vr zAe$3?U-W^wK2$^81C`z8199U`B%a8Y`z9Zs`?R(EWB+6M_z85upS&pU`H@Eoucs?= z>H!j$f6u)K8ux>&AIyCrD6icu2@Bx|okfxZU!zK^-MGl4h@=KaoX=e|VU>)Oxr3s_HVev$<>iuhy8n|EewerqkyZBBO|nTYoLydUuYDim7u{kQXW zfiz(LSu%bDJXkfx?|lZM?>8&2$v)>;c>d$`DEjo1(ccN$2ZBc${TKL^5lIUbATe4{ zP=B(w$onMRdaCJ@uAVp1>r=Kd+EEPV9mme^!M}h5z^p#s&)H>(`a2qOfXRn_%$p2O zRZU+1oY;dt3(c>h`az5HJg11fetsa{!9O@+xcCC|G!StG_AN9Sa(0|XpX0D`8+pH> zm7Txjl=$N%Hy)*0!1D7dn(;+f4(2Vy2I!D761Utsdhz2OQReOK$NS0bpBB<5;Fk>o z51?WT(8jy`&Ks$w!Mr`9wjsfb@P}vg0i`1Sz*5Ko;TWBVKc08KYAlYt<-T($>S2f} zY`>h0GK5ReQlviziZ1&54L=$YS6Gpqt2lZZIFkzL(E3yIz1xtSJ)(h^J7-^;9bdj& zze#0)+0i4g^Eq2E?-qD20#D&zl19h(x?ExIn;flP@%A~dhW$1Wtr-$@tAsk|-K!k|sxi=ROgrnFd~W`()}D|3PngfmTN8@Xc?%l8J4Qa2 zN!9Xl_v}59+4r$^aKB$Q-}Cwx_xcUxUO#fG>2zZ4Jk}-TwE7raemQ>!GP=)WI9^SP0^Ilfy}A{j+}9sN;`yl%1c6+M|sh z!o>W8+!4Y2Z~C3Q@zYbBSbJDioj%cXc-Wp^8!|{uOJ)6>@u!#PPx9mU8TP*(@;|C4 z{_=Alv?l6!`YZffThqf6z4L9%q*_r5{h&Ua|7~}!#cBF`{#bCl(UE)~Lf;+W^!8y> zb0#boiqkpz$aUxnP7}W|pvwayaeV$rYEN>63&siacc!m??u_}%{Fc#TFn@vH>DFKG z^BKGpH=pyr*}(^q{Jev4_c-_g>wfzL{eSpmu;tOagC_<3&tVjNof+5H-wuLrV3GTB z+@=Qi{qjQgJE%s@&l(Sn@Z*(SXa3nBAu)vczYO;_v^9Hq+P;g^%b>-W0rP8j^zhxJ znnY7`h0fn|&pJn;+pykq&y2li@8EVU;mRQR<`2j>hqFHW6TZ2QZjakGD4S2F)|X)Z zBElfgf8>ut*(v@*?-L7mLjwZ~ToCm&%t#J0Cw+6vsuks#D>}LM2 zxGxD=`x;8i*VQ_K`2nT@^B)4ONAmP^pC32H_<=Vdiw6*jOT^!9CXPNY#xu{K;mW~$ zxdsDVkO76xRs0MD$;#$`1;lgBr{6?#{=dQ3h!8v3S@vUkc(ivv=to+bH~DAydStX+ zmH zxO!e~mPSS(2*>b(17LG7_!Vpay5S>+jdbC{<}2?E9zK59*r`K@jT|<9m^-s%f2?*# z>31#X+NTjAAH#M5To;hnEI2aSo)M$Q4I69G7`-dr`*t2bX6WFJZl~zIedMs=qsI=5 z3Qk_2c1eH4S8E^J1t)@sfJaz=hv!8b;?%}Cg6=~l#IYP-#-H(JyWljCxVB(rq+RmQ z(i__axZDNx;K-8s_TE4EC*#9*0g-D#2RJV3hZgKj&9}hOU?rFar-0{pWw6;~?TYxn zSbU@X8!@C!)}CB{$s4IZ*eiAK)k+rG#f7B=Msao((uIE0^dp0lC zn7!Le5&ORV@fp5+Rauvqqfa2YZ(>H?TeaX{&{U*-3w%FcLw4O^ul%}P$^1rm-+m8F zIy-`3#Wpz7SmpG<(0ywJE&vu`n#J zb9b*OUUCE;)x12`6?fgm#i_2(5k&3N=BdxZXDhV<77OLH2_p9HZ=81SzLMyDeww$v z+Jk@`FHk>J{E#(az7F%b{ephGUmo;h{h{BTM+E(z|BW58!Jp6Xh&Q;A`!Mz*emoWQ ztNL}&@6R6v{Z{`h=%1ZTZh%5;{n$Lv^dap6mQxYu7y5OuVB!AMDtw*{5-f7-gCDd+ zzVO8#KnZ+N@j|@5tq(rRzMCkqGX#3NM)6~i;NjkHsW`KSceJ)N%;YQVE{}>{*HwP= z-`Zq@o{_aLklD*rqn{QXpPrd4@jH7952P7@<@aBpiHxp=L@n7TeAlHjwf;rI1@pPp zQl-&D??!JI%9!0ka%Jc#?yR%#=c$;5BIu%5ql-B&#D^^;#zS{CKk7sjx^M(I4kXrw zP>_DkUex{t;Bt5F!f;l$u$c-a=<7j}j{w)>*R#3*Tkl2Xogv|?K1!QsE%a&g&f=|h zbbyQ5&+`)t=cp`uF+FN>UHJNs-IuxW`_RK%E<8^(9W1;c+}qIB^!Jjj1K3B_BI24| zTim|C!2Dll+830)qL}!b|BEn=`a@~M%?E89t7rerIF|aKWB*Wp+QO@FZ(jkmAh$WF z36tev>Llia3pEn=1hI0_T=-M!yFiKkoD+EJ3q1>w(vS?Z&EFM3efGFJgCEBifh5g`8Uji7QXDIDC_(^{q*-3>+|WB zs_9238mjBMKEdcHb=r9Apf5Wx$%WW#$F}aDj(WGX`=GJTp27TN;xOY#x?EeAk*xy7?~$G zQO%8WdmfV9f^vcJ==_<QDFEvsJvu5(B#qg6E?~7O~zj$0n%;o7;Gn7k)5gR+zj3h%5`hNn11#C z{A2l^0q@<8-H#T}jh{pTjNdM5|}F5jLHBG>;l z{#F-SN94R*dn6iQ?fDl}=eu&yaVA{&Q!k__{QP1<<$VZC zxT#^Or`U&^68ZrZcU^QvJ+h1eCs5cD%*s>pb7LLX zLI#k{l_wY}t&Ga2xLS%|a^r=b5!iUy z-|a8@q_$D}T7<@nh;Lib)C%AJSJ?lY=&AiXYe%rj+8o{%4~ib-)9m{Z@Hel5@p;@humL9UYTvJj_eyKZ5>9E2+aR~5viUBUsO$= z-k%Kho6e90+vdi(x*V{4=v7*}UM0GAadweGCkv>LJ8t?W&MY3Gwtf5|j5CXEZ2)=V zKd*y3%RR5Ncre{G6g&zX<@B=n3b(cEX8ZJ}EAz|mhU-5N^#?}l?K^j2z2%9yJi^`7r()iBlOr3EG`P>U-ymH zME9e9bpP=X^?yd|E28xs?x`0&_o(L|yWX!5rQH|%UFV73zyHDUTKufrE}QPQOSVQI zN^|r4yR0X!{r2qNqxNUx>2>(*EIthCCA+XyVGyW6wB*sq=ERUhV{=PJ zfvE)jXe`vy1L9ApUGgQif+b2o6hzJj62eWCbn*ZGzZcb71)U&5NhY0SswUFgo%uj$w4=DFH%&*Xg7=WjB+eD?nOi~GN# zr~h;Iq-YPAy}wCY4tM2X$@kfjde(z#h}nCwc3bT6xprYfOMbzf{1agfEFn@FEI~>7 zW>VRH6bFJkfz}UiBpdi@QA_g3M03^j@1`pmY9-pAa!bJS7jn8KSAoA&O*9W!a+%8X ze`kaKGAL+&IzDoJ*5wiAcYI$j`KzO}#QWZ0$<4?*1tcA_>l}Nsb#a7sm0_(|{*f)t ztCS$Gv%|ZQ?|$&Xp#Ki)ZeYp7ZmT#~w!Pc${_E^8Y=lL+BQxAkl8Zdj%7-i0Euw*q2#P5`yM^P~$YY(rZpW$`MHolqCk{q4U;4Io6 zG`?SNY{}FnN7q#kZfb9+GQ*0rYYS_I`-ZD*_5)WAmZ(jLP6`R|vIlk2Pv)rm~?m<(SSu1u$A`Wvs@VU~j0@rYyF+&DvJO9y#> z^L6&UJi$_eyuJ}%_8}*11)4vXUwa|d&`KW<;j4B`aCqP>-EeG@&y`ivo?^$l`Q4>q z%tc*_DN8>K?#R9yU+?Mrd6{%wT{2T}eC6mtbLp2vgY6#RUfPTL@ui=lc4yV99=YBT zpHL!SAIpy~{Th@GqVKQcO`p=?q3&$`TArB5mGk%V{CHHM{;=r(6+Qh=hN6filq?au z#N?Ka22XaRmJabGmky(|38?+(F1r+G{zT*OJ=d?Y$rAhVFvnxo!Jg-F@E@oBsNY{C={t1$_ z{lmei_WYja{k@0#(oRS<@$L;iGgF2A`?Kkoa8Gn98vURa9m%;~DWGdZo*vLvq`x%8 zfc`W2A?7V@w<0_9=&K)tms7C~sDWYj`gW>mY)eB!s-ZTU@D|-~IX}Q~UwRoMeK6z) zuzw0$!P3*)OYs zab+&vHMtMcg%AJhxcGJxEImudE6-ahzKj@K_r)(Py#l<-_`bj|xuHFP8Q-5^wn6t=p8Xbbyz5U{`aXUCQ}6~VaBVKnmVRDT zo)8I17#{A5yIP=ITED;Mc$(esO?w#U%Pg;Q<2jRMVC8jniOOW1ol>yBoE?ZhcCd{2 zEm+1_TSk=aVh3a(%e=QMNZ0IO87^np?%-ZQ+5X>U`^}*2z@0?b$JgWBe)nIaAI_7G zZfzBAO*C!;rMg|HyMDB+9k7Hv5A;-(^FwEo^Kvb@X=NXF&63mWSHXg}k`Tszke5cBszv;~zh_Yz#P7 zHD*WA>y^^yM@3vmGrKbS@-I(8l6lgyQQ%~wAMr2CWEm%@7QTi2OU^Gdk_s8I>8+6+CZE9|j@%yH10>tg%E6LF;5p!Lz(>Fru@73klsLaM z11<)C1u{w`(Xs@%0=yg~z%F|gJE9ktW9`eo0?r060pEmQFW};tC<$!MfF>{N0GFsH z&tB$Gmfw0?2?`&&O|oiIW!+wkzA&L>Kk@p)hb{ZQ_yEh!Mpq1p%~n!CHC_BzOGaxn zO0lAxOY>vWn!x1!2COdxFIG*Syd+JVKwi3j*-c*F_t^iX_yEhUL)II?dntSxH2aX< zy^P-;o@z^0k7N0-YC0~brLMV2=af3Wun>Vg-?162iF?cbqMAH;f9K_WqbbUFL^Z4n zj)%xNx|IOQw1Ktl<8(8fsd=k^>2!FB~z2A%Dxt=u)ON0*YSPTC+J-#gPX=RGjVPf zNdrHw#J9}b*+Iy54SX5ZG4z?!52mqvfY;Aj&VR=kutQhFsE~dcpgW>r+_!b2vGbXR)mCal*vKNij z)#*r}X#Uo}iXwvLBm8y<`@^(varu4TQqjbGA}oKPQLZ=l#^_JW%a$Jpz2m`?bq?Dz z-L~+r*~`m*{o0G_9*ZGR0tNqnBcF%Kv!;nPu*!6s&093jGx@PzJ?*P;ynHZNZS;H7 zbD_LJ=SB1swxTnqZ~T*urwaJ~7JlY2`JZYKhq#;^aXHz`@|oe;G4!3YV@!1Ux!#`0 z^_C|*mE|Nco6{kiPom;;pxIMN{#KcX!0bkPI~Dw%YBt(#B5}s_uvAnfzx9{+!q55( zJuWAeSbo0!A3cwAmj6JtG4!^YgS_4wa4e>Gf3BUM(8{{zV=mcOWfi=vNp*?f8*&VC5Am|C!XIlE)1t_bskk2rs=YeBG_U@`Ek;Nev4 z44U0ZPjAcaj%VGExacE9iT3uUD{=zmpq?t8#liQ{bG9)?|rmmqV*N-Z&%;d588VtS1^nPS|JjAZ8q>JY(<~f$;ANQpVKLCHIx;%MLS6On*NLM=dUf92z|1>%APAl$maw_1g zSmJmFE3QXI0%93|+I23I)AF~Roc>t5e|^}6L0RiRf-P@c6qKKHcTk==1-uP>GAPGr z%4b~$-V5?({0yFQQ$mUQJNG{u6kw(U0U~EB-+3-yNfZaUs`l#N`#w`hHU%UgRhQEB;O8Dc~7YYztby zDc-;1`fXVD?f3o+HYMtBm7`$#V~nnN9(+-CdG`6F*Jm;M%gIT8Foqbfd1skqe#h|) zR;(d2JqDDM(^$;fXAg1~EuS0DRn1(i6hE}*=KbN;+Lt+>zqZoLz{+pgTgZG)BN ze#cJs1l%}{+;126xdg>ydRe#F!@W%Dp8@pX!XSha6u-TKO}x4$fzPv2EB_o)mbRo-&wp`d8#8|{`@FdUkqNVy1ahAKxO3qpfQtdZf>{#3(Y5^{tGVdx|``6 zRj&M#jR<4D@;cj4N&XSAZV=oE4ghxt&3@l;`W}6CRSu)ejac z|3B{j13v01`~Sz^p@{|8y1Hw_wU-s!u4UDAl1yMA$;6oiL|w-a0!AUh1Z?ZB*rkRV z2sME8-iuw=U0uuCdqI>g%?j4v^PGF%Gm}6}f&2eIKHvA_@yf}(lezcYbI(2Z+;bcK z|HDsfddd8v^;+I%|&cu7>`B+3qg?d_5(*ry3$^^CAAwnZ_!}=5&ch= zi}IuXH05hEAAZDNL8o%=CR=&>;SV(5VXD?^%?tHc8dYEY#QgB6jk=PgiOu&rTHcs; znV;}mluyn{DJ(GO?AIk%wP%Grd-c8}Qdn>Y3-D8mWKi5-`AEH|T=lK+WY?VT$LSn5 z!RHzBrq24+ac93j@&B0He(CZZeNrO*{9k{KD!(7z(XS6}fbn39`}rU?UE6``Y0`aB4Q&@m_O|~&;k%*VS3A|O zE9~&-c>7FPrS109e%Sa;B|W<4FowE~`wGlI)-8`jy410zdls@dn{?@Oq+a>a#Gv2b zdHbNe<$e9-yubN|t{D|Q8f`v%{ZKcJe~SG(6`TSz-7gCEyqG}#-cY%Ty^#H&HRY1f zg9AvGra#!pGQ=cQ5g=-;%Ug4AGpWpMjbwy&p-Ak z>}EdJT`nUx>7LLAO}`y!(-rqe|4Bbd@B0(^>VLVs<$eA2;5U4W5wr9O9<8Ro-~abV z-w$L^b)fv=uR#4)N%sr(sjy_WD>2ABqBjy+Hg_xXFAcZbrhJr19xWessecUQ%bRL? z(OEu=-S9JSP&rZSer4qG5y{@j?>9^OJpFo7Ms)o^X;>JogkJnm+NU_cS9lty?*nhr zFYD}-{MP?Y<_w0*Z`I0$E@-)`t>cjYN<6<9ITe~WDyR0OhfmP|etD^$ z6&-7%2mQ-!uKgJh9<&Z%3p|uMA(vf6Wx6#_@@;5)Nwm|$Og@_L_2fIjeD?ZJqLZex zYIPhhL@~6TO8>sKs4SyTu`ZoYW5Tpce! zn+>;nk?#>n`QAXjkDJe4|EKV^$AcNX$N}+ke^XSZTi?_Yn*ZL5{H1&6QMuE``oC;G zd;MP{@BaXdfOi$p{H48bjPFkg_TW0Fq5|0`V-CdF3qG*&@+co&;6t*Nr~jvHpXdd! z)m|P*mP54Q#=@?BICNM3lV>mT$DG|V8+$;XpMvYxf2&E+>%W7%KLXM@V{#Jy;MYC5 z52(6>+2H(5J6><{(!LkF)c+@Q>XhG(i%V{^%$PV6%jPh-a^|+3R;$~-OFk(%!hVXC zF)B5HW;Hos{P>NUBe+&dtzzt`l&W4#s^ z{KIQ;{%u~1vp)4&oLS_xIBl!fG!ILB(Z9VGr%do#oP37Y;>4*o)x9JQuKz?iVSm8Y zR{x}4uCS~ONTrMeK@~5q2hw0weqZz|&F|hbKZDyRLdDVsi`YrYALZ{2wZp2111>V( z);5T1J0Kf~=`sDucil9n?84iseP#n~-SwGB-`BqjNE>rH;95<813%Fe!2pc>fLwWN z%lT{P=_KTb?>Ye2ME4O(D&0&9-hdm~9)WQ=^f+F00jeirzjyU2EfIy6d>SV&`U!db zy~_jWxd&)dHGU-VF0%~N#7VwkfPQlkOAU1CwtlnDb|C%S*TrnwV!<#c5yb1)$W!u1 zo;rR%o4l$00S`#Rrrqx8d!+Yk@=T9jfWB=4Ug50W`h={{;QONcn3$ z>MM~x;~Gu>9KL-osI1rbxAR|=STOi4@{@Y}E|krETp5A1pp9p%A9D<8E<&L&-ChxE z*>PR;89;w}*i}GuL6k)Mlg8EmB$H$-@xxk@-x9D)-X;5U1Lj#if9z^^qM17EU0>FdRGykb$Hh`N>N;{#!5Qirc-E-n&@ua3$yAwZ${wT|>PAACL!% zdidSEK!x-U8r9dY*r!&=R+6MhRwLWxYbG!4PY)ySwLtq=(=Itd+V-4vwm+k8DgC4AgtulA`8Y-RG+`aT?9P64OMJC)ZD zU3!!h+^ql7xcb-h{rdkCX`c_EQvZ}|o8G(P7eiOMHopF43Rm;Oa)euh8`1Q^&y_Nb4k^{eN=%9GJ)3 zSUuBC=y_{=&fBd#(6jzMObT9qY}b+Bf**K+bF1?BS^B3lz?G~Bx(if-SHTv>aDM=J zJTgnxhF(IV`u*rt`%MKjmVO&a9cf7Ps6P_wUkDxsqW}%6Ki}#9Z}1LSPwN(shn75m zG7Xpn{spj9qCFxJi8c&e4oG*I)WwXTTcxbo|t*k7}<5PK3)vlnRN-GjOS) zb^p|Mwj+m;KN}Fw;rc6o-%DT5yY4(r?HJ8@t9N@%4{hZ&x%Wn|=|PLVrU#~bP4`~{ zXvIG*_nPk40etB-ZCT(oZJzHnZT4*4`PTIxweltUAuS5@?_I6kok+PqH9nE|3BNyK z^BDLP+sIxA@ACq8%f#KJo$M^Lqu)liL$pI4^~263&zHa}@<#3Cu7c8%;^6JQ;-6W^ zY1i=AS+Ck}iuOrKHU0BQ`@i5lO<(6{EdR-IjJo2KiFBLT_D+i$_%>Lp>8|D{?Mv+= zZDk;W8~Bm@#XNQLooM&8!a?+D!n?PcRHWwQ8Au0u6iw7G9anxqe{@`d$cQrrlxMAQf-Zlq^fMeyal&gOAE__qFn*J?(yEUMm ztX#e;D=6tz7?o8=b*7i7=aWd|DqGLAzd?VL^mqoH%g}&^c=Q*1co6LSdKRlJkJfWG zS<)j9x(_HBX=VU=SE)yS*!DN*&%8|qXt4h@ zpk7Yqn|C0aA5qnV`TYi)#-IX*@V9|`dC?!JA7boD!d;zN|i`IDNyUoRJuc2A&vU$Vb4sED_HBv+9u?ef>g?FoH8g>TKaF$rp7&_gB# zZ%{wB4|V}J@?tRfoun)FrrJ z*^^TO%FO4Vie&4$K6RE$tS*uQDc=1)ze)Eksol~1eR=+gyoZA+l0lv6C%%t9Yd?k7 z4){CYpKrd;PhX$Qd5fnq2w%*9>P$aTFSe~~te_RCtg>kgdW<^xnW4R8GYqIcOTGNi zyQFJAO@ODt^^(Z<`-P^INn0N$2d>JAXM> z?3sG(W9rkZ7Zap8rG;HNmZ0d?!f0XXt(@!^zh6Y!->3e*q+0&j=Nl@l%SWI7>}3Dh zVC?(<3y-e9zmBRGZIOq2u4Vi=Xct=iSC9@EKPEpKFF7muP4e%*^fl)O$?Y3*Qic&fA+4ZCPY4xQ|w03mP3{++=@W#o~Q*5nzy-cmvw1MslWH_@NBYrjV`elk#NZb$2q-^29x zG9x5UdB~2b@Z|<;f6vRoGL92x;9@}Iv-@=TMJ#|Apw;9ndR{mrhgft~ZdDONb<-t3__wvTrW4$N#yc(ay1lH4U)%4+9+b_i$ zOh}@fk+m(y_nQ9s^4WjtY_|!%5s~hTpd97=UVf;gk;M0fH9liI8^pJydxCri%21^I z82K$J{R{MSUE?0@zsu>r${E|12jn}@G(+qDsr9{0*W+8KOZJmoq3e2uyX!ypybwL% zm3MmHWzW-2aK|s5i4HNsaQSHaexr_c|Ayl>!m%#$hav5+lNd|xzsrx5`ibi$J&B$> zhQ5?D9w|pZ`TMK@J$KVD zls_tY|KET7exdvxTNeCT?AMF+=@(?TSj}4{sSnehhEhLE!AkIyNqflahUz`#XvCf$ z)ra_bGrA=$o{4-z{AIZZrKl9ohu*By%bu6M!}9{@++}#+bv=XI;A7J!%ko&XiN|s+ z&SLIj&kJHbuDGeLZ)^SsWMAhsJM(4sJXLuupK9;5yr`?U-;}=Ieua;DO%Hy{Yca0O zYtep!*L2FsUbCP2dCe~v<275e!lb=_rFX!DIo<(jA9?#f8}s(R>M5^fr&qlF=1uYT z>+zb`V&j=!i%DC(7THTk|46U-%@W|vTe+K+Veyi5bALVns_iv*wyPY%Pw~z8o^j$yFIb!?Ewf^aB%HJZtO8}zZ zV?R2Cx-|12yBDzDe5su(e}OD`w0|SZ^3`CCyh-XO&a3gc0sW_@Pm%OqSH4${W|eQz z^fvI5UQbYtS5m%C-jZ)!{gI9)B4uCkuNPz9xXp|9C83SNZusLw|??WlpBc+IoX!`aLSF(W6Dhv z^&SBuo+a=6-iA&yYh%l1KFge_+U|;Bb1W0l#na^wLDr^Ey?aE^Vu8Hj$gh5q6joSvp+-p z=X%^j&%f(a?{=yDteL}?=+EWRxfr~oA&g4(`HX=|N^9^(KJEt&1!jJXdd@5=F3j%J zvx}YJH-5Xem*n)YH6Bg>Gm^d4eD;PQoRrRhVT87IQBt)dTaX9$dlcN9%V>gYrldEpUusx= zsQiR=9?k!AR!Ma4zd0MxtOroF?JJlZDC zCojy)kZJO!T6>>h^ZB75pOq!@=Z4sEL^k9xTOQPK$U;qkU$A2-FN1e@A)<_z=UbL- z*;~OHSRN4#kJMp`)WQ?sDS1<^Joq9iw_QD1ylU>GXh6RtqUVYG5-*z1-Vn-S9_dWv z;gjZ*JReZscCno=OGhV$5uN$jNnCoUseSL@@)=lAYYCi|_- z41$TT40+R}b3R_SJVPt!c`t%uBZjt;H_7@WQZ#yM;~TYyHH<#|7|hPgl2rJf_6N!J zp#9=ee7e0!A^-6~5Je^L80^aS%=ZLgP+=Y`z^DsSPxF8@^c+QmNc zqGIJu+xPcL`yJ))NpeZ5U&)QfKT&ZgzLh>hBleeS_4_>Oyiu1vwbl*%@yaBfUv&IA zG@pDh)I)pvN%K2BQQeQ0e`9hyhYr@Z5R`-T;p^r4#Z?mD^rI_$U+h}aQ>`6!;O~j{ z&=j8UXNRyBpRgNv>`&N#akD*VR&)(42>@U^iDD8D;()kp9iI4n_burR< zDCv{ec;3HIs8@S?-g~6B{(V0YH?#r%j@@}lX5&8X)luymitF`S4pCI0rcfuo*9Qvh>Ym&aN z%<@Cq??>TCdN2~p3St;E(pI{6UAc2Umf#UlM=EuIk^R!%hLz%dpnU-`cdSXe=X~DMAnB z2D4&W;f}#rMj({A_i|3;kDb%}p~L9whi-$mRQat-&&$aSr3G?>v9!EsZa6EJ8%TwT z+)&1D`rKH3P4K}uOZk8fV`w!j07mXHpSPlc%wRMl97zk(TvEeV$8sZq>}XCnLS2Tl zvx7z}gONzs@5}dDdrI(&T~mIc!>$9^;$fYPUYROF^J3b*MS#Jpb3&1Tw3fZotJ>Q$ zy^rz(9fqGV3=27|Nb7M+r*Nc0G>83U+ESC6LF4tic0T9?ON!E${2W?2e&G zI9t1s@D}T4P^mn_|9)3=H3T2D0K=+j%>KKZO(_kw}&7li^4zc_|hy4S7j)UH5>~mJ&YU{d0 zV<>Jcl9wqKIxQGXw>_%^`J8C^fe!xzI0Kxpn>`VK=c_T3}w;l)2MkI@B(IfmA9=Lp13G*vm;vwNI ze{cDM4*xHB4LoQ17dwv23a5uMI@|GSdMupUo{@mF_QUkA$_YCBBk(zRN9FWRFpDu7 zs%vX2F*>2M(Y~1O&sqH)Yx#l>-wwV5o0P8)YvpSm+;XgrBcI$8G z{-nkrhKhf^xm|#MIxm&6C@Pl`j9?jpQLWfU^O@+Mj<y_Ah!{Rs9t@X7S75F z$|%z+KK(*CPd>*7FpbW?c0cL_%MWzKso;;`587Wc&dAEj%NAEsBQEMCgim=5e%S5q-#I%mETXQ zr?hwaP_sVXjmODSZT`>^*MNMGrS35-Hl(>iNR1?35DcF!kL*EYW4Yr=Y3W`;-~H@E+_B5l;LusjqFvv ziFSIDEiZILe=rn0VC27BToSj1cS$VlvvMc+Ioa|99f9vKViFjodbz{z7jr{d!El~* zK@Rdi#pVwkF&8WW)78$uFOe`mdf|_KjUz?aC8CPKXl$?QrDl6c$OW6F?Nw~oQ{X>f zmGbqj-(Kx_Sa>mxO+0*HyG0lBI?eJ09q}r72fVEHwbhKujZrmWYzOsqy3HRtVhz{` zJ~IA`FPAJveT3FyObNvMIjJQl`os8B>j^sIEATzoruJi<&re!jMEcs!qA?xS%X1)? zGc6y`kxjt?z^t!|kAvdjHy3(wmdzhJlKy`r{r^bY|3`CzX`u{>fJ?xlZ7|ygxinUg zBQG7u<7~?hbR=zPB>n$L)Bmr_4rkN-<8#yZhH`Qwq!UO_$190C;DdZsKO}$V1x8*D zE->~jCqf68WL=%;=Q%ci=*SSr0cmPSKGJb|dLTCt!@5Qpio~LMIb!sPM$!{UqCquo zZrTlT5|s;dB>uoi{DF}jwcTv-+fA?|7LL9@M{U2O_Is}713L01a0}>e?3r)#iFYzq zlUR}i{W#C&4;^_IxDVW>_H2!vEy@b!2DFycKdTmCbHLB}mLKTIfq*gn$bKr1Z7>lO zRf&Z&uwpoBF6_t!Hh<{I@!%0qsd}-|*9)d#I*5JmNO0QB1UZnyg_aNK$a!EXn5BGd zNX+M@qoSG8>&8rs$pIgKvV1^CJ^`Ksj~e}y_-l2YaF9PXOWUc~uK$6z!HX(~O?G}R zGaT+9HZ;#n6F6$87g;`_BR>Tjz=zsSKJ)b=8Xz#v7*|8&GQ7*k3^3H;aUhqAEkDqa zUxHm=tIB14UN)LZhld#@04fn4+r7Bp;}XjUw4xbceyJjb(L?p|zlAfbxB7QQC&XZDry}qkWly)L>?OafSnV z{MGUUttbM$K%wd<{Y!fAYGN>*GsA)8QLhvIywdUk9f3_7fqX_>pnlnV@p_?K$;(6< z4Dj$yb8#2NHOmR5b;u-~@236UWBGzs(EnG^|5up)e}~Uk!Z&nKKg?mMzCtVL|10SK zD@^~t#SC(7V8|chA_XV)gCC}RKr7~hWnh-+Z)}|0Oaq7G%LZa?BjG&UYd8GdZ~1{% zJPn=)kC}F)emtvWe8rIEGE68Wd5R9|=>f|RwBil$K6pj>`D734cH*wAj?7)ynFlRD z(2CE&X0Y1yJ2m6aSy%bW<3KJCSw5iSQsChmu*0`6W}Tw%zY>TKW=DgfFE!&pwZ#P! z@u75^4|G%$Y)5bM`Pr0L*X!w;o2-Bt-ujE(8eQH*zObw90y^q2!2H&zR$A|CI9X;<{W}|K2Mo}&N6ZdAuf^k^Y}yicHIV! zrt$$D#h76fe#fYD4Ie%a0hW)n%?<_~#E}#A)6Vh%9VK;?2?EN;`i#76UDC&5Sv&U; z%nmT`;bdN#ScA#~I;tc18;B?$jPLCt7PDZ)?fSy@mJjHt8$k&uP<>rv?KrVH76>Ht zH9Zzz`0GGVI#_<7qwWBGK_62;{(2flF(R2H1MYwi^g`=L^rIgb0v)PKQi;NPl;n~a~89?S?aNh%@R_|gprdU%!P z13KyhKumwsJBE*B`_0TKjg*xDQAhG%IIQx3j>2~s^(EM#^${PZ=?F!#ccBlIOY?`0 z#%~z)BiN~O_`>f$bet%o0V+t@F!B98%^%hr|2MY3OY|$`sQf`k9|Dd7W`Dp2G$oLi zNmww_Hr7eP$TE$)ck6a*`a=mm@+=?F(I#$ z4-f|$eU9qOHXAIKm{_|&rlWOVooxQl(P@DGZS)n!50id`wO@?s32{hVgONZmEib-m z-iiJ)wpV#TM~jYJ3v#qxh=_xIk30Xi}E4$ zGXM+&52$=TwEj?tF$r5hY;;ClHC>pdtFNuyX{ReTe zrtO4tBnaeeJp}PNEkAVh%ivA$g4RQPpPjhNW*-a-TQfqmcn5O0!SVqe{V`Yz-Zy+i zgPBY~`779B84Wnuv0UN=1k$muh`~jDbhUgy zE9w6$>HjNh^#6fKTb);MI?gV%d_XJd|0^#BrvKlXvRU#CxK4AtTWZW?P)iSKn;;fL4wK^yQU9m5+^#-q?xD#GfC+&&!sLcW&g- z!}0;GoC@g6D<@aik3b|6kX?UmUFc^|n?JO28F(BlQaP-%(T#+e$PMFCz(>%5oxuOq zb^@*ZH=s|id{*VKHINqxuqG`lM-)QG_zvau}cNW%+_uZU&6^E7zI0U?fPdj=BHJTE_r?xbJ4#qt9klL9Y4 z0yF+!ui;3>a=F2_5sBQ&7CT)w_y5cBf2rjUI)?s#4E_HY+yBQsQfb>+M7ec=0nOS) zyTaD0K0(Kv1kMD`iI!0vh4^XQ1 ze|?BGN_GuOdYCZ34)|q*o(nnLVflcLc@PW&_o*Dd$zbUx`>Wi}zu*_C9H3(=z<4m+ z=mGN#iJe@o^x*F{f9M$E{9_h?Db`-pw!h5ZxEL3W1O2$m@&z5U3Oo&#seZ7|K~9D- zQ7MhW+o+V2c7k4N{fK_P1l|Du(SC3>W>kY@?LsWrX2&9Xi)Fo|D6b8bIgragEkDpP zAA!%od#2r(c?sD}8_wpSADNl3U9tl{h|j59pkuazZ@?zwzv;L?%WQWStDYGAJK&?Q zW^ta(sApkx04&H%?7J!u;xfJziImmi!tk}YSYn5OJN9!)JD(6JYQOF0OX)lSU zqMG4A4lOJn(6QYB7=s{ZU)xKWJ zSjzY#vQauIOwo8fP2}It<_{g$8k`1>HT}Jxf6{)~yd0UsY<#}8+6%c_R^~dBm0SWQw1F0cdc_;PK*!rlQuK|`X=s0v>TnBKa%4bu2 zotrscz}hg?kA2U_K+6YoTqkfnxJu>ofnQHzx;QP8a8{V}igeX9JlO*&ge@2HVce_r z1|8QO6oannAMKEp^{mys8&fn-P`|=(yE@{(qe5|JQO% zNMTeWer4;!H(p>i(&U4(bP6r}YCJe-XF>T&Q+;n_Vuc zaT8bL3Xidt<_{f@bsrxF=_-fyz8peP*$u!JK%UWyxW&~4 z40_I`JG~fZ`GAhU8I*!D==hU)BW8`5 zxK8YdbkhG-Sw5iS=YwUy?*FTKp5SiN1upCuaT0C6(D6@!|A5C-KQ^#VJ`~^RB({ve zxH+oIfqqQ3d_c#)0p15MYybCAO}TK+3bllDt!5=2d_;8}@HNHq1s%T@d;wN#dtT#@ zI~e}tvIHlV9n6&--!Z4_<1hng7%$U{Bgfe6XWQq zmM`dpmf$y_x#@>|zL+sj592Uo?>l}H`A@U?Lnj;qh}};(()dqiekZXk#y@YF^#!Oj z{%(Ax(t-X=w|qe-oDD7jr)zz!^ZRFwYKZZRyDbj*m|^*VPPh!DflIW0w%UH0%?-h8 z~q(suN@?pj377-`%m}mKbPQd0)kb0_8d2HnT zdOfaa_mPi-_JgmWdIFuW1Uw2BYWv+0%92xy;*0&<^nkN%MWzIF3-cw^(K5{>=|)DW|+*W_0__FF8X0~Q}qNoaer_KXkq*S8%NjU zl#K0g&`y@x{Gk(n4^9NXRXJ=)9GK1mP`d-!S$*Kws~n&c&jROz)07YPT}JaVIJYn) zo3l~_nX)9+86V3nAJB=HgLH7Q>34lQs;e0|5|(z%OiQ{(0iE%)!tw*1m<4h{d)1Hl zeiP2MjGBuE9O%bNn?H0S{r*Jy{fXC@{m#qk0UTNbF!D^HUT1YJF{&^_DrI zWQ*b;|Ho|p(24i~6UTrd#-7B-$BA{z`+nZ(ahpGMB4fab_=^*(O#X>TfxWK8g*|=3 z<`11HHdX3jf!dMyIw1c%V;OfEL*k$wp0s>GCq4&W0#6%z7R@9Ct?S73_Jf35=t3S( zSw5f>-vJ+k*R}nAobUtejH&H#5+@EgkjvASALzu5U_1C+`PqG)N74pvXZ_zZmLF(U z3cUOPzBT-?gpX}>_yR=96JETYL7q-Ol-6PQ^MY#53;W}KpEkC=CC2T~T7IEbhr{bn z(1Wy|-u#t&qf~q`S%O5_Ko231R7!3J~0?c(%(t|tT@Yj7(&%`z^wn@Aw8vxKlCy`o#Ay*{^xD}&?W*25NSbT+cTDPA`2VTp-BWT5G>It-J9H8&68fEODKVCJFl}_!re>6`oVDl%6T(led zOXUYzMNFfLzPxIt>dgijoaM44u${Vj$y*m3$mM0r2eb;Grb_JGDy^6Jc{GU)r4I6c z#pVyK61)X!%>UbEv>fBAw{*B^KmW6QK&w`R^}x*ke`Y!tE|^SXc}A{uFltdc$7nH_ zJU9HjYWaay;X_n?2exRvY`1OZ(2T}lP&^Rfb)!BvfDT$mfKD?Kyx)}CYM9_hbF<91HNd#YS*BX z+JP{z^Z(3-Q9Ef|8pxzVE|GNK+`Hg|n4t0jopcSz2YISDYvSwk6Z>xU27rX-IFJit z6XgdwsRt+n-Ibq@@zxkG*$Gu$Brm&tbeV?TW#fRKcP&5ANq2$!z#Yc!n?v~`!H(Rg zXEfMB{_olRp_2xJ;lR%S+jS9kwG8&fg?_wm^M_8tADDzcFsahmSO479bhA*!jeY&V z<`11T2P_8W{GaWzZ_~H2W{so+`G08hhfX4vFo|)*q?N`WGJcTtUhUEp<460hyaRqd zviv|NNuMKn`Jz8xYxW1G2cqp#!vSuJlCArUTC>?}?Qh0*WoL;eXuE|@`V4FWAFG@` zt+@_?>A|oW3Hl>H2Xgwv@&ldp4fqjkSAJI88e^I;)eik?F2QRwKN}d}*XR7d#JG92 z&^r+#jZM6j*?R4w+5VDPCQ$EiHen|6&PF@b^!zVA){_>+e&lCBFA^En=Q9W(8d_gBa z4;W8R{+F>Us<>>w@%?_?;E&yL(w@Gsd_X7TV@(!&`S8M}h+^ANaxS&EXc^P_FdKvY65tAH-O+Jwd0m2B(2z z)V{2}DiC+a?VgJa&RmPhAkDDjqF>x$`GHP37cj=3@<+8VUvtSZ>w6NTRVVfGrOh8Y zB@MI(muvfZ&&=;x@6Bw)H2Y(?%TJ;)seV|>gm^j|R9@fZc2ytQN{n4a?!BzQ+=0O)guEyV)+}^PS}nI;9d+0ki*a zkL%c-om05e@&TPP8!Q5L|DP=2;H)f-C`Y4V^|INJhmM$0uZuKd~N4}Ihq@CRVm|JPX8WzYYRo{N*W zJ91~C%;rn=x~Sh@EML$^&IIRy)9rb>ay?9LphM8XJ;hAnXnhDBE7*^7rhfPiZzlx_ zHQ~)rBIQHz+K1r@4m%bQofvjBhyq5#!)^sc3WimI1>kA$7FY}Dg@%*jumRAEK?qz6 z=oN?m9mxA}U>@Lm!`}e3wBcBx5eI?eK^s2*4xGjB_kiJG3RnhS0Plg#08JXncSiD^ zk$h+5UqJ*EfHLp^7zw6<<={WyUBF0b?@pqulPK$?0?-Fg)=89g65pM)6rh`v-UnYW`l76p4+oTWGG(0%zmqBJ4c4^BwmM+2C>z1~GsxO}`fm1ITFla_~GrM$>8gGvIdy zGMWLuGyV+Pg3f?;G2@?LFqj0;?HSL4HvxIh*y(vQ4+P{nvkjnLW?lulfKu=P7!78C zRRF!8`4QOWd9#`V@|<-FAkSHpa~65dBF|aW%dB!hIcHJMSxuD3%Cyq2af>cIr};AE{M>fD^&_ARXj_uHaVi5U2pt!3qGsbCA)T zP2hXan|lB_4$$7_1^{K9OIhdk0epAvC_q`~^4+;Ff)BwLo;NQA904fnyo&(xop&|3 z8QcX1fN@|RcmmL7=Fw*6?eM($O#pJ5e=p%&hPUlnB`RLC4#o%AyZLl7| z?*huY;1A$JfP5Ep1l_^ypdT0u(E9~Xg8u>XTtJ=+n}Oeg)4(Ml1jutCdbIE!Fbq5b z(4&Ru(ZY8D@?AtZ7aan~bI}DL9drUW0_t?pATR;U2jscvRj>w7r;D3|qX2cfm^>G^ z2iJgNa5oqVCWB?*Kj1w;y)33qmmCa^2h__F>Sak3bOpD8hrwtt8$1SH1|Ng%p0~6K zI2@b`E(YxYc`l`WFZ~A?4649F@H9XNmwpD|cUepDJ8&lW3!qIeLkE{pFU$IR)gB!O zY?iPK(L$Yoj&DKK|7)~gR%`q}Q{2Xfe zfliHqZs0l{SAU}cU4JOzD*wZ5{?Mtt0Gctihp87v)a~SYUK63TLuprhpl#y6r$DD- zsiyV^|1j}ov(8nQys}O$5=zbETT*wD&sPchMT?w87OH6x` zHI1CRVWyLIlZn)r1G!)+l^^KT|AN^KfmON5%uXR0HFhBvEV9Z4I+dPx>Q`W6_4u7xlP^1;9LVGMHh<{! zrsVw-F!BF*9Mv3;Dd*a!MMApqX}9}>{dNDA{`{&(kG!v+X@A<+DgOT_y_5$&>UQcX zujyZ?Ykg9FdCJ?5&v*vY+JFndrRGo5=$+*`ga1uA$NawgPZPIG&+nbzCBLk&O?sbR zJ&FqQdlv>vOG_}`X8*=c|L=T$*K0u@ct7$?!)sDn$?wa+WdN^4zQ+&wFCfy_cCxzg zc1gadcUf<;=vi3YyYTkHfdH*gAp+0g- z$VIr~X@LJxYpge#!MTtWo)k$a%yTp^M(M z>-8hQz>v2Y>;x!{cMSNYuh;UIOF)U&;^7@$i+(4AEIyA0YxxJqPb1`O?NMCU@tF0Q zHqqymD$|G0zr4y1DJ(v-=*YBApc}XqAm3?^_+K)#5&TG1@-+F8I)9!N@%BwKn=8M_ zlgy9!&EH>ER9w{i3jI@k^=q}?a`~2NbNn*xQScO4QLTM1B1?(y?&#{9k5X-1e52mw ztLfh->m}(s=@*(_VRaWq|4%=*U+|`Fvc;fZpgvx_DZlj6Hf`EqV~V@xmv#;GD!e_j zs7q;n=^br+linu1uty;lI8sz4Iupq$Hrj7d{T-S@%fRfYp9GzLI1qouuK%}FM0$Qe z@-o%<@jWj5reiHX(CH_EGeK)@KU@8EjhwS?htQ2Kf6exkkjHU0f9UiJ!C%0+T3_7f zA?pYIQ{LUK^GP9!q4ffto&mBzK=r~uzsFwe$}A@vBxU_Zrn!Vo^rx}=L~EDJ36>w| z^p4@-i1FLjs>k3Q)Yqw&59oAa z1=HUJFIAU|tZ!rk5mVpxEN|q)auPRkVT`2u1D(DG5Ivs$v1!--iprX^#!mF*bjt^H z`Zoaoar!pZ3-28~})?&M@=; zpGo~yyYE5-NxV7HV>O!3+WQCkX{|@-419?h*rOR{{r@_>+94 z_#>bXpK-d;@0$Bbc0be7fn3hE{6J?g#+VTVmm2-{&%MrzWcmvr#TfE9-~(A`{fJC* z03)v%9jdqcn&&InRqt;2A?Bj|Kxg1H&$to%P36M*3Te`T#+TqErUV?w1s`4cfX?Ux z?gGV{&zqdL(=lWYYB!q)xh^J@$r@sO9M1Zb$ajr{#vJf>uH_Fp;{h-b+^hZj_Kq2L zNi{KNDw2A?;MnoBj*=}(w*=@G*kJ2&iD{~2HrLG!v68>blF~*xTDHmi|9Ze zf3|!;XKVxCf{m)TAMJU)VYD6ROZrPjO*Ofwr;99K(3wrZ{_ypq^7Zbotm};*z2&T( zUu^k;&Lj>nlQ_W4-xzzG)L}EgWBHstmD-8^Tw?iv&csKZNq;r7wW+t=_mw9dMs%vai`*lPFcDJNxAL zh@gY>K~pZXd_ZS*1~-5_mB;1`CWd42!@=U4=G@fF<(3cV%p%YWbTj>LIq@>k0jbY?lI0R5D&4{Dvq zk9Ov+O|I>W2lyQDb*1GCIul=F<}@(Q#4F+(#o{yg4)PD!{Gl@!f)!wn`oSO9R$mfB zF+y>`PpahyIuqYv=JVhQqrY}Ndi*R|Cwh`*^M}rS6MO((Q9XI5)_t+`lG(&=T<+sb z!8_4*1)aGLYyqE|@k)(*opigFiRJj3>!6+(w<$l+ncp#6nF9UF*#EexlQ5194_M$H z)cIGPXL!TR-nOoNdbe9qaej~1GVNPbAm$+c$W)blh|}7~-x-!a=q%y^vxo=G+RwDB z1b?#POM-C@IrmKDIlglt6249 zy?<|dTAE5K5k_}WPg#}^=&T39AaJ)S@1D*VWM@)ZglpuIg0yD3P8*a1Ib~b^ptJBL zW{n5KO+V%PHGxRmJULR&i5}zUYCS<`O$YOUS^u}*pBJ><62S;P@5ISDCn>Zc|QiGm259AwYSnZkxSI_1D&-QdAz=PzbWqAyPJ&$IbMXSV`JfR?5ou3i^tsp$ygvy)Ev>1g?Z z&OQO03Vv_&L!+qpOme5L9>wWT%$WeN8~M=xY5hQFp9hF{%syNBStIkM_L9)3%){yA z>AsoYsoih8+VTUP%@|-de!}c4v>ksDj~^z&9B8#X4(vN)c$EuuHo80eS`b#bFfKCZ zgS88B5HoA!<&48nW;*k_*f@?+brN5=#_|K5jc+i!1mtVE|7X_|%R!5BPJ`aetamzv zGj^M0*1x)t7xGbgiJa~P_kcd8owX0OjRrc!LY$$-Aws)Hg`Cvib(SCK?EYXVFz5e% zm2NJ2N{Wy<(4W8A{GqeQg2`Z%(PR97J3A2H&frduueW?aXU_qP!3^bNov+7HCM;s2 zEAc~s9mpeQ`GC%T3_J@~nts6dm*Qs5g?`>(^M}s%vG?s_-siu05- zr{zE{`1;yzptDzl_25ITpUwV0jxY;n;vpccos;&`#qt52jgK&U7ucfhcWqYCUi@xM zi(O~s#}*v%!@ytV0-e(W(09*CiI4mJIDo8A{X9NCvIjSteFRC(+l4-LwfsTn91ZBp z=Nzu`T3!7LrXTR#84m9W>WQ=Fg1N-CAuj5vyX6Nuhq3h>{PH>N)b8v^j0^m^NC)kk zzFPGdI)}b-4()5s)tdj;Y^<}BB>ut84)QOu`9tUQ1iitHS|6Xvy`kI!l_S^iMuO%b zGM)8{-yPt9pPMW{&^iAE4}d$3z4P_M-g{`S#}xD8LN9K%d_d`NmVZ;izs=!@61&<&Jp%{zfG((BicZW2%fM_?54nLtC}OY;9&^WRY;ZtkXimf8HFbB_SWfP>XfeBZDCnt?_gYss=%Gq`fY z7j|3q5<2%Za1J<8`T8j7NG9uLBu=DDK7HSbJ?mrng3i4d{1sfNc4R|h5pPXX;y`b1 zwR}M5wgX`htf99y9_!+~=ak!Q{?NI^4CdYd?EJszZB7m+ujv+cdkGg>;-o%qw|qe7 z(#OmdJ?>`o*9IMpV;l=*ux&CoE1VueZRM^8Gy4;C#Md2`FX&wQ{kin}bMH_)zgFT* z2#AB1@spV_%t@MAP%*i%GsGygJwfLV1|z`$)t9g0{c!tms&>CF^8dTdA3Ap;mo2h7C}m^(-1uswcXI;-X6gbpY9|HI}F zo%;-U0X(Mq`cBRD2g&1f)^D4;wsdWV1G%81svn}OZ-Do~|FnKKvJTeo3YgtU3JaaSb@8S3aH?%3Dn51soB_z{@%|JPK%4=0bS@M_+O)989> z`1=2QET7PM2ZF;ub8GjqIAc#EDAx93?(88DG&TC|cqpUM{MH`NzSr^vop&ra2^_6@ zw8d8y^9<+Qw=Mfv2 z$2fi7b;hsryUN?)Z4v@&TPEZKxmUtK;-t_*J=Vqakkx`awRbAClj2Fb0&H@+Ze-Z5wu1e&#Ne z59qw9U=FAX{k@It823UTe^Ol0gz#`)}89OHNMH5|gQZEB-{?K{P zftSEDn*W#aTdXp|dD-bwB@Xn0SdrETblyAQV_@$8T}uqj&c4Y^zZt2AQbU=cT!-xg z-&Og6&f5UCfzMS>H(E!ZJ;?MeA-Oz|_7cc)BbRc^2Xx*pPT3=udEY1>n`x&KYLvTO zYMiL%pnir}KA`gt0EdDWhL4;;=gcrQqXyLRJx(b@Eg#VN#1Q8H0oeP0{C?l($NI8v z>SdVa13LeY;6h;b|E<|=y@B0m77zcrXg}Ce)mP~JR1gA}>blUEtL-|bbIGLlSGUdX zj>KuxO=h@rvZ-C})IetPIMAaJmQU#XD7XfMjUFZD4dQp?nB^-j_+VVB@`BE1PGx>i zaD(v=!a3#$ZeO2td7uWPlE);D}u;7j!`j&k{nwBk_Sl($OOh_`&X}oS+LX2l(X+E;i#Avz&woG|T98^NemR(%XDQ zI6MycnQZxiF31A8puO6~Z)Ak8GZp@Hyo>y&*!-ajt_OwS8g2g@eBI?lC1PpGdm$Xi z;StLRbU_KY72It2@b9B##)A8{CDy==!4VOP13so&KA;Qw0^$t|?lOGD+Y$G$%f&tn z>g>&s4)~a6`G79KS6)EBxnPj$>F4AdWDh4%L%+|`&mp^r+>M@2xBNgCNFB`v6P2IU zzFf=!zcSE7G)xolS=*75dYWPRfi74E9tR7RpU-x`Pg=TF>$FQVcA+;jEkDo&{|5B! z3!c?>{FN`C_;jp`{PC&Ou0aSnDPHQ<|!C@%jq{P^cyoysow9@JohS5OHSl7 z*YX8j*a{p0%=-UNO#fq#FtH&L-NSjcyL+co=2?EA3y%k|&g47W z7eRnV>kGQ@TyPOM%h;Es^QEx;a`sHkL8SxzSz!5rF1!-71($1k-Y)a!9IRqC@Z&5v z(G$i;Di7#F#`_By?=Q?!{e4^4#$o+^f7qOPvnPddAeTj!FX+PVpcves`EVXj;v5qu zh&hqVtmM=E?3^s3#z(8ph9_Lu!Nrz8=t9;UEM%T?VQ9Pp zW_ngts7A{%5eH!YOWPN85pjS;t-%r6-Z}qN@I4YX)`Tpwao)zTN=8T={`6 zIuo1+PE|Rq!}jII(nC=Vcj=tA-@+X5@r30Ay67(e7kJS{%Eu<@tJ-EWldXMIVsz<5 z9@rL@2Xs+3$OG+EuirKM{o^tG#I3Qi0F3!vkfSe_1}Di-=V$VqCLma&^5)p65_DTKmLNY zYv`i?fLFk?DhK>MWAF9AFUAY;gz&p zUbOr`7oPx51;-fuwd*!yM?o~qN#SDeqRNSbeu(ums=v_1!~qr)2UvWz@)2JLr`@!0 z6OS-D;NxY>2Xt`&v;&tLJ+bGrg|PHu+9Kgh-^e=P13RMffG)lYTn(~KTv7WS>p!Kt zst?8>nm=@LA?N|F*K)pT`{O^$@b0;HGEwM ze7t7)fG&O*l!N<>o%8L#&c9jjCGHxys<+oIKhVXMpbCssxyZRm_UH_hHMy=nP_E@o`782@4MDx*KPs{8?g z?0ewAp0q%^i*>heSw5hPMVH?JFRK3RcJ86CPfpK0eB1H^UHmE706tQ=Fdj(qBRB;- zJ(O#@0~h*(9Mt}ZJn$VB?*dzukB!#;3SH+qEAIyl=${;uT%x}-Tc2<*Q9e>E!t zHv09Gs`t^vJ1I2Sf!)E!Q~5xb;6p4q796Ji!&YrXS$PbTQn}tk8j*wi-?#Zgmz)O9 z0e>)dk6=S2q_;BQVrDYLmQ_YL!ENIMNC*6UVEKVAxfuKv*!_PRZ@{@?6k9FY;G|wY zw0uC9vsG_?-IW zfRB$YAJ8SmpbxlF$M^65%K6&nSZiNAF51y2mM`d%yTOCt?<$}5dsw%e#%wa)xC8mD zwtPUB;6p5_00Xr>?+9edP_47HB6sVivGr)b6pPf z;L2X?dXt*#uGqv zIljk#Q$CEX@Fy8T*^uQ!~DGqc6nBw4R_#@fnsf-d~z&{085?X#9i0 zh*>W}ZxBDI%z>Tx!tw)M+7;Xkt~c>`e|a(yGrKw@8?JKONiSvQbT|PpTTa?`z}FVb z7j$WF@ON;F*3;KnflRblPL*=F&Hy{7^#on|02m1FQTw|&;V(#BQ&!Nh6HL_Ag&ek7 zKA=lSfeB!k(U%(iwcTv2r`OmU1RT`McFPZR=?pL*Jfd=mkBhj0F|NDL?ycKl`G786 z0iFa)RX?`-?T8sQ8)|kS2ga(ZAJC=5nwK)BUuw?(-4c&`%egsbL$PXy6aDzg@&R4S z7;Pzj-O{&BeVBVejl(ao7S^P&GDSK<2lDvZ@&R2cwoT-+UisL5o}A zWWxzA`1r>10bP~?4?hAM|7U*O?q=TYe3<&q|2Ou0_{9AEx0XNXvO~a8;2@Qg@pBQD zUG>XtXAbw3erNfBE;|vN4vsT?q@JG|KQL6H3V!t4iQeqAd_b3-4=w@c82y!f7QUY= zJ6!F0bvOEpFRASrx-1PareF3~!$-V56IRH|ie-n=I@lR32kq#4%LjB>E?_LbEJyj+ zoV@xx=kq-4j1zN26cId@Y(v}3Iw=(5|uKS7zw zWka>anlTo7q@yax8@26k(3TeOLc{g+bS=Hqv_tSf4 zSAUoIr0s0A$?Tk3Gef`SJX-sIwKFCECwjANl*wV)zYSe}i~al&eNfB)w=tJ5Bi=@9^LG&GVK6?>vB#%0GMi1CvfckCI}lK|V`- zeSPf({-v+y4WZW@g5*vZ<9Vm9@VsnB2hYLA?+*98L4Cbuhn?o_pZlrT^vD@rv)>%# zHEDXT*Q^yD+VQ7o7JK!>$h#i$NytNr&C_HNKWMMZ@Qw6YPBFY2fRwx`kk9JB?kX)T z>s3gHK~7Wkw5_RDsDh(tsos1I|lN@?LOeG1E{MqB^2%GWdPYWXF6`!c}z zea97EO3&N8l=E#lwOvI>YLAb~cdKnz?Rxj_6){;Szi*TLUiAEX^Z$}yGXFbzS^mF6 zZtV*5yB3z>&&Jz<$f1CGmv-=berJ@d&+=@D7#wMY&B4Jy<&d0?w(DBu&^q1@jl6>- z!P9IId0jzXodJG>P4}l;^Lxk#9?j>cn+xwSAM2KPB7JI1(?{mZJArPR-Ufb3V-{_r z4K9zFgiSlHmH%Wpp@Pf%S~(rV@3wFAmfuEFs7s2d3&zXH=~aH&545Buea?UL2hq0W zNMQL*pdXmR-|f>ty(I;Cw47Ix(!JmTd6Qi4%kSc|j2E_+RqF+^^LrLHpxjjb^0Btu zlzI6O$%kk8Fv@%mz*uNetLcZd&pu_=?$;{cn)-oMQUtPm9;m0%F;@@%3sN^VR~7Y1qJA>s_z5lVm&!*0D{rsw$MoDTPKFjgx|6h32Z=(G#rv>Vh zqVdAF>)|&Q^)3__$=dNRNrQ3v@|~Wy;>7BbQ9G`EM)mjRleWKaeE*0%Yqy8i@O)*D*R#MuP*R{WY75?6<)qYw#ow#}O7wvCXTqisM{UcNx3#4KV+); zA=eeOloiFA-)eq}P@C~43(!HVz@qq1-RZ;EmqlfnCEbgPgT?t>dK79s#J``YU#ZjK zwtmTRMZo^gihKCwUqG5IY?%5LIc_Z|EzIv-7`(lAVJY{5=9S^t*+=bM!|U@_^L3R& z(DV9DhK~XAuI_S*lvc?1{d&vba|Ni>??uy{lId|84)j;q^3Azw9-e0L4{V@eKHvrYCmhyL^*psH^oS`ouM( ze)ahHQ>5kBBW>^TZ?W7`JnD-dXsY1xFUj?Jc`NV9cRT)jQCBoF(Kz+}9`v++e5{ai zl9TFVJI{-tH7h>V{8samn$dRo7=J-aSG))4>*Q%b`sh#7oB7J0`SwPzCI0=*Wrf9E zgFW+$dZd*UcPlFGNi3yA%|hMjC-f85TZsy){zzR(GnQus&P2*=@Hih(tc3nFTpxBw zf(S$Of$nD|l36J#Y3hHk^l=X^)T|b-tw1p{rYWBnhYUU z9%sJKPifhdWW~?CJpkCzy7@c#uCKMfvi`pInqpOftQT#k3+Ty< zQ@~Nc^jqDDFW{5q-qEYj{<9e`YkJ6aCALlL6IowKGWx8<7Br!RMSkINI^0prJm(XuicjcW{9>S~k z|0J=pGpS|+X%UggL(8LbI}jGAzLnkOjmm9T$!*1jrC7yA%Tdzz z^V8b7m004H2y^AF z;9mJ_gVLupY5G*j$_K&2`hDpylG<;b{3hxh6<_&;t#@R-Vu3Qm%kk9tzrkm`Kp{-M ziySu4t^znJcMy^;%Pq|>xVfmfyBSh9xV{_ZudW4&86>qnTh zrvuys(%&mPseJqTkwcn`!84lfYJO6)q9ZG(fcapR{KY&Cs85>cO6;-PHIdEBHi?z5 zlEWF`5?)Zzrara5w|-8NYt!I*TrJ$ML|x?3dTGVy55dRsM(bs-`!7x3ua~Px`+cxc z)8Dx)I;iICu0RiO)d={dzt0^_p+`+-v&Uf#6E-fWF^(2i%+D9WXrAYk5}8 zYk6i%ujT1Kc`Z--!fSczT${r_B#pBVtNb{_1X%eEWxoM*5w`Y?ebDrMy~rc&>p@RV zKgmB@bq#O3$y=${I@)id-e?-DhT1la>#^!~lY+PE@6=g3z;I}+`DjU3^zh4WC8ga< zdM8Fvyl+&0x9S#?m-hP|$@?MDPu?ZR$5uTmpUHQp_?5-X4)D3I@~sxTt?B!6>%`{~ zV3ekxEVp}jJIHXN<=a*$W2)T3p1pc7Sd{6Ay7NoO6BS?efR!hlu9|F8_Es%LmX&}` zSCqv2ReARHyqwXD8}o^q4e-3&x4o7N7kVvUTIlU}`7<^}hoq79Io7bG^?5aAe-b<` z?;2cx33*~mdTKG!m7armub*>80kE6{htm>s`__uaqj>3pt92cr<@n z{i8>i&)%ct*Zf|9QSjttJpZjW|4?yRVL_kLLO9rq{6#HzG=F@$M^84Ny+=_z^zyqfqVZ_HsMw?Tna|#%50U3`@LygW z162Ng`GcjUC8g zfgu@4B#nfCV2P8-BpH}w!el}bm4FB+MNlkQ!2&3#pu9>+?>&>=lS!FWN~kG>%=i1R zz0cfpr=EM0`Mxi%=UMlhz3(||?Y;JDd!GhaJ9f~HM}677@(bFq8GMh5Pk`1A`JXo# z2Wv+U2B2`T{L_BOUtI)@|C{jtlP|kho?=-Q=g{_KDzvDW$^X{jTr4UcR^+|ve(+b< z0OS7_{9o{8_sTSQUjp`^;zY2P|6BCGM3P;3FTW|VVP+#Qsf>QZ0$s7u}S z3zv8H1zgwrv}<+I0++hyOD=D?6sZxobCz>EA9krTQ!Z6-oJ)OYk!%0Yp)RlOPn~=6 zyRLnomtEe7#~V4B>iy`yL-$7m%8f>m)gUA&BtkbL7>!voBimwh7_=Vze6wRyTL2yd)tS=-%#uTW{i8U z@)E8DawSMnHwU@Pew2UpF02?5as;D8b;dTGUrF?Uweww;y){h~j3zd;eF5R`T+%!71Qka3cuuSB?PD)>qC3 zzYKN%4@E9;BK6#g*SGEet#`v7% z@-9Wv2BZ72xf{eL>^dxZm;5@c{Kc+{vc47NtQB*f%6mGM3@fR)7&4UkVT{1MORFi5 zsvV=eifY&D)GxdCkN?iKJ#&R?{l%NW%`UIcbuRVrr@+oG@8}BFsL_-5t6b`Hw?Jn< zAt(7cyRM`m0L(siqfOuSWjA^hWAr0X?*DYq>@>>bqw7>5lI#cn(>y=Bzoa$%u?BMRq2`yBqjTDsYjWzx?<1k`aB12bYYf zD7OpN@!L-JqaAc{G-9=Ol(0WPYR5*}fcrf3ekvr3S~Yx3vhIJC{F=PGK(?8>jxt_n zG`Sw*&0g?7ZuB;l<*%|>M@x@0LpY{Gxc{dO^pS?aXaf78*x#XQ#95%(pZL6As=JEp zpd9-}#1dG)u803&;1R0v{YYQe&$?e;ZlaHOHu_(K_MxE7m&{IfasO_4MaYE26~5Bn zX0MAV($-#g`8qT|3ZClE=a&(aKN*7*#~clQLjQPZmVSCXP~|ZXgz-3pePttpG3TSI zIG^^Pr*JlC;~{_iMkKFN<~4T5SN3*qa#I!|uvn_T5$ncWsu~-I-9w8jhLjB)5ta8y z-~8fGv;9lcXI#eg5>2+9z$>+v^SF%HEi7ZM1vMT6MT_k{uKmsEb@O2NWo_t=&+3#v zvSP?N*XT~Zk|Oh8J*>AD?s={PIZrDp8`^P1AyQ_cyr{Ti;qa1r*)ORGxc~y~aTK!VpF_x;OR#q%xtabFhD}xXXkET$P+A#+KcGh zv~#&vkEpRGM2<#IwQBL7iO!w%zRO#`*|i$?ylefy64&NyYuzD7l2mbZ`ZsH--|G~AokpFuQ2k!@;3>*&NCO5yU8G^w4BH??? z%iw6$WQ@lPDx>f3ai3GSfrQeL37^}rd=l66;_M*b4$z+_`oNf1k?mY?D+M_$c}oKm)%^VCx$#oUzcohsq=c1)4%TWK7I*n6zI*8eQf81gPPcU>~z=a zjL9`AYBb?l?)@h)(W>TG2LhGP=mB6p2iW3Bb^=h6WVe=_^@i?aY&=+@0<5eb9QL_ zwp;Jd_7?Q)*F#h|&+Iy`2WHop@z^NdkEPQdXsUtEvv$YVdH82nr=rrZ^3&XX{CYC5 zq$q(&HT^+`b-Wmc82OqzV)8BWyK&g zuQ`8#zrouWedK!4y_`nx#}bjpE;9OC_|5Y;b^^5_H)xh_T3>WFFm_wm{>5+I*bQMP zW4xp|u-j$OPs@|>8b`>iwfRHCY2%pmdx-15$vWxj{BIH#oIZK2<-JS3;o*x5j0OIF0peKEWoP}?`I|D zwjf#2Sb4xdfXGcW$9)n!A7o`D0+Yki#_cb7$TFTpD<^G^w+s6i*M}f|BeZUS%ep{w zT(?@{p<$HeXO3Cq+FjS)wd?(7m+H~irFznn4v)BY=O5`>9oyNtJr_Fn{VQC%)1HqA zq_?fdxK!(XuHC?ox_13$bN(YPb>n2#=Qg?a1HQ}oce^&<#IL{Hh5PL9D3*u#xQfrNA%!D` zg!{{rKd+5OMe(ZER))jx7I2uge>X3%(<{2*YURCpUs!0uboef8E>3nBBsZ0QnljLN zKmCCMqZ=<*Nz<)e+A40d9d{S_L$K81)jPbSKEG$T>%+Hh)uNpJp5zzjue?5%NBG`C zKiw`Y#@Z#z`8jwScnAO2=B4AvpvK(}J`|n3AMI;~?!FeuXUDBixBOtW?ov<=5@QL^i?gFYbO4Eg`NeIGcg+05p5cY%g+tHdEDLEF+vNUE zd4ZxSU~zgNEns}cAFi4hpL4BTg&$~QJpy}==+Toylq7u?`X4}#*blu}UO1kS8Gn>& zLw}p1Yk7>x6}sbg2DzRF1<;G_i);yL?pGj<@NyNuNUmRJKR~nc9p&5uXvc%6yViS7 zbgg&ob**=<&T zVKV9GJM8*94;zMisdT*M0XsEG4g;Y|AhABB+oP@mmTwU&#{bxt-S|Jy7HlnbITdZe zqe0`V`;xks3@h$Aa_E4tV5U5F6bC-cdcead&iMPBn?yD>wYPI~!zglki$Ma!bEAF=>AgOcb}JOZ!?RpPz7jXz@Y5v3!0wW1Sy5lCpW<+$8yYX>n0Sui7lW z#@4$g^oG{e;8(%^p60|m{Pxptvppy9skbq^c&#>nPZJME#{Va8um8XFKQ_ z@*7>57fifVzqG9olsnF_SB+|7KhR+Q9_ht|M}ys-37?z9ha6x+1=~}>bHO}NzS`?~ zX>>cckB9Hn?_lC~nLSS!0%^ePc`&RQg9&%4rXD}*hppG?@8Z>b$Y2S-+R2i)d`E>kH8QA^1z*E`F71k?l;l4g3N4u>SGTEPeB|*5e|2 z(YV|IE%L7k?W{a;AVnLK>}B1URf}rsF2rca2GoN zAFI{l(G`_V5%KCxHm*Ex*K zR?!D0euX~W3u?a59<+Wv#}3LPrBU>lfG3$S30w%S2jAgDjWjKnHcwQZyiRU`$O~18ucbQFtV19N>ZQfp|ljy(fH~dfD zUjKjDN4>m#;+>w^M9W=R`T0XAFQa`5_nCHvb|v>W@O!`Rx_hLbI6Ut^&V|nw@nL8t zZfE-?usf(ENU?LK-l?fC+`!x4016c=buG?0ofBodYN06DICeZ34RHuS|Xt)utdnw0Y9eI-kl(A7Lw> zbw4O(Ccnny)mVK}e`fuhL`)Z0KR-_s{s;V|YGQIsCbx9|kjx}#S$rX-nWQjc{Uf-# zzk;uTN*29-pbt&0YiHM=Qy>eNUJQdb5qOeRGE)!9BKD(yrU#*aP?~hP=xhA0W4jcT ziYWPPa{NXSv3}#)Kh?>#fAS2rb6xAVI*|kJbFESzcCC(r;7wOTq=g`{y`{%BJm z4(cKx9dpbHCXve)SB$fVA8YjegOOhMI~Lv|2cLJ_l1dgWqFiISmC5gKr+io!@)a1oZ6&c zgU^FAzzv+!0OTMqL@{YXu*VD79}>t;dXct11HM4TVW8!+Nypp!M_MZ|o&N%~CxK)f z@*n&l9W(qfDl1-QyMAr*mMyIe?PqQ?sZ#WTNeiHkKS`~lAQ4;p#V6)U9$Dq1L<ikHo_cRkmy!OV-Z0 z^O$|gZs7v%^~L37y#@_pX6@-G$xB=H!d|6s7V}s9`FpMMyi z$zL<_$@I`NDNAIN%s->Iu!*a2J#R~c6w|&`7p2N;Ua1|((KMG7b&URn6_jkd*j6S?3e+e>z z$!qy}3;mOM9s(MDwReZsyEFZr>7ybBxKtC;06DZrT>-2;v~BWsUv`sUgZlB{$yBrj ztv#04;C~B-S=7mapSlJZKX^~x?aOX5fiLw15NDRo%hmsP;76z{uTY%xMQ&v{dYrqX$sPEjTpR^=Fd;Pd{gK|$O z@8NE}BR%OUclxbe$N#L~um5X$wlT^(J##+{U5blJMns>%@O~g1*RgLC$JzX}=M`{L zZ*KuLHpp^{V!2?-Hz*$moCzQ~E*@F#Q+r60lS? z_3~-iUoQ5L)&oDTMWU|pvVMy{d`&OO!>6zmFy*`UfBZbonKDAPq5p6DuebKGuM7A; zn$_1Bz3986qSqpE*DO!e4|cHY0_8~muc0UYy1=X^;;uIlmc$Foi-y#_D!}-8JA4_M zW5L1TiJtb@|r$32sX~!B0J1vq7&l(*KLITZ_j&9x!V(;@=w2=dRHhE%mX#yjIT#brNZp`%{o%kaS8Ls zU{A9-1yD>)4Ttpxuv#_Vo@4jNTinQYoqdYv(HKV_?G zsc&wcl$M`FwJ^x<3)~S)*_cgj%~oq@1T6~@CO^?_KwcbTz`x9$;U8_yf910UT^5o0b75cdJJR%)0dlQ z$EQJy)EWADN{0Sq+rL(xhxJb~yHI5YcdBe+9=HZne6#-T?>MFPNg@MmtPX?S3BK&6 zUdhf*Pzs_XR6;QOYq9lj^AGAGU~2)A^|ik2re2RYNElOy`2eqf8{b%-ttrJ+TTg=3 z)IsoM473KG&a;#Ho3xzU`hJ)WG1gOw7Y0+Y+0=EQ5(rvFzfIoEkEXs7 z+TV%&=R_ZvN-)*E=UM|lKyJbY)aC*k~4X>wZvfB*QRqiBL!&F;jWz&vwZU!0NEZWo3;P028iZu$vSumY70Kv2?!0y_M`x9w#a=XGW z#MV#zd?2!eX+_Xi_yeXz@qQXH(UAx_!i}ZOr?Ji8ze8o{?&Y!gf&8ieD=BC99@$p# z4E;3!If8OAIK=3|Bk~8+h<85!8DSGDTQAi?K(qO~*KgL*rrioY%T zH1RX-MEo{B@vgU>yOr&YM7M7aaPHc#JJ+d46DNkh(C_wzZ@NP_wQ}vgafxfQocZOT zAG$UVzv)^(@_=jgdq*# zHAXCl`e5&-H#*(NN4pMU)MEC4bf+xfAtYByIQ)_>O9t^)H%7zh>_X@-GeYOR5*kcM43NemCQnvy`r- z=l|YM?V=yV^l5w32T$*k-fw)b=3xl_x|#P9W&bx{5a8z7XrY+b7)5U~GCSHmV&ve# z#UoJ6_;_L>(+M9oo{Z`A4x!c4PeJES06$Gd8_>qn=F?`683vQvI8OhV=Vf|xR;qhhgQsWa_XPQn&r(dYrh+jk36&Saq_Jfv2J&f58 zrZN5d;QgM{^yB>2O&^G?zX$$+3Qe*lce@U*87ZjfD|?(4=*p_5{|#h5F#Q9L0r1~> zKl_`@dvvF3efU`JnZDY!KJ<@#yYMO3x@~)W;R@GkXiwLw+r?bv|F%ofSI{GG_3`gdC+CO%Ge3Mayv_#i zHGWn6Vo7p*(>75{4l(@>{o|oozhwSo`cFBFNIM;$cK5aZ%;~TCt>ry3g$BXsZ}I&- zr>{42E+W8FS}srRX93!1%1pWX<5F6N=K)=RHnSeL-`>o#~#0-5=s zU&^O&?WC8Iq0;n-Lnq!7+Z)i}?3b60U!?%=*cUu4?PS54L`S@0)R6=u7hT zlcFJf47Kk1$&5>()fv1T?BQw7`mEoYpN;qgcIl19kJ|MUBW{1j>pS+1)tf%V)-UXO z;f%vPMXg#0W_{dmXY`^y#1&L(2R}g{HHyjg82ziaeh}%wj9)_k4}n*IzjZT;+4&ks z?qTZ(2qlyM2FjJtT|LmgYd4@+_c?Xuo|(aA<+oi?Ud9`EE6PU}Rq(0FC_v@rZ)e~u z1T$_4TcYR;BWd#RmGbKE{!d~go80y9`SVi-uTu48 zP-eG~D5>a8yZnrz<~ii{pJozyuP+^&quAj072+or#7RFn-5!&*{2qSvs}+nV>+Uao(I(m%m6Pffow=A`!<-?RJfW@X5= zSsn99O_1-?$oC%!<(rVQ$$1oOo+KBV6-gUqH8Wo0`T5U*_ch+11NBda{bLnA9+@4h zMc?qP5w{tdatmgx#$y}_Di0#~I)atYgLg!B8*U)NWXxVRMfLSGZ$ysvI}et?C$KS1 zVP%KFO5W_I8Ca3|VCH4umHsUK{$Nsizwtebw`&^GpI}2lYieGkzZ0|5gA58`fyTxu z)|`4}%YV)OG3}W}Af8AW!psme-OTGKuLs}a53SdjK4_lMkp1VT2fcg~&A!{go77?E zVAW;l8JUHT&spe!`j>k6PmnrL<^vgZZ)Fa=bZ!CeNzDfnm{q=11PtQYL zT{gU=DE$HNnEhD34xQk&e=yb4b2IOP3BfV1D-}2^cRrZ4ePk;~ub1Q>Gk*q#+*2)@ z`4Rm#2d0;68`8_G3kUQqu85qO>E)#C^fFE%sHLqZwfTWbFE7Qn9o;yW+PB{29W~SC zwGUpQxi;_5|FLmIrDq-sPWSX?{%@c=^F_w+yWss);GFE6JC@JrJHYwFhx@NF4?tIQ z7+>$7{;qSwI>7C;L3%k^HQxUf4j&$UZ#S7=s^t8|;9Ak}Fzcvjuc@t#|N0(#B)H#Yv9&u6@DD7?9_V`<^A!5uxVQ%@}lnP`k!Q~n9>BM&qS zvVkK@ zi_>({ep7L4U1(Px+YhW&G@orNjIY&c>>LVaw5u+?Z0+6a&wHMits{L0mhHjARcHG1 z-cW0_RH)gwR>ev3Xy8n=a^?mQ>a&9Ph>e3p4A?j*X1wjoZYB-T#Gn;hyN}8G`y7SC zK(tV^hZ*xY1N)xY3mgg7;WZ0k&H7xR*uW;%4v7?~o$H3{xo*}u{ttu@fU=Jpv30nHK}qqfEPBWr=J-(VZFaQR+s%}`XR%m4qI^_yAusCfrJ*!oQcvL~(^B!3?|lWh!I z&r^0T8&*+#Yel!A!%OR~=geZwbk-f<-Jrri3~W6|p}j#ce_H!K^ah#PdGX_HeW!k- z{Bg>E^E>~41NIj5weGs=tbciC`nsrK)?UAzjV{jGqx}p!V{}dL zcXsP}bwQuY^E(&#`M)$5oE>YuRMpOpw#oyRH2yqC3BIa)5O0(2;J;Pk<566n4(|)S zqv7%)(FJBxu#eZq|4ocww9^fi0s%YZFVJ%}H zv#+L!{{>+7L6$R{^#TvJel#yD`!K`sb}_pot-OSgk{78L2_@UNL{~7hg zUq5JG{(X6&$$+w3dzX#iiS6OH)h3WNqqxWZb@n^eZ0{QLXPwf_^Xr_3g{&)&zV(VaP81eqO2 zVE(p!RI0nRJY;+1Z@rR)iH02-|G#5UqKyBoy)pkA_Yd@EUyJ0Wb1tackAt%u+4CHQ z1Ov0@*@^8r3`MOuGjGyT?i^4M>D!zTgXVmR|FDHjy^}N#jNQe@#qzrk!>_ye0dq(Q z-07eOuQtE4I6A^B9?REecW;%I4=x-QJ_6>~w6nH5i^tX;MJvGCa}3S+iZ8o4{n^oC zNCC(KQ99pzH?$}I-J8nn@=c%b8h>>au(dBz+BskMWjALyJ6D0Kkilx9i1_UrL&Y3s z&2##J#nc7JRt_y>fB%l!b8v5K?e90CAO3m#nF;LA-+5N=fqb9;&Uuzmdk%a7e8tnA zyWDT>d3;tD8wT^YTO)s5hY6>||Br5Su5E<=uj`M!KOmY5^yHFYE|FF+XAC$|d+|6l zhtb`?^%qeP%&89X_cHe9s0L%4Q^{6qFET_Khv|JRZp`JNkRR3)K;m{;9z16<q2 z@4{M{jpYHcID4Lsh?UQ^a&vJvO`q1<^P#wsIgIfft>n;te$+W|&SG$#YN>CIuJ>D# zpF}k)$WNZ&J)N)0-E5g)xcfl)Et8*J=M2{^VhYiy9Ocgvtgk`dfTJ_#|GxjP`hTte zUq-L+Z*y(cAZvN1`;ElrelqmC3*BXv!umb;Shi1r{{eB2L2qc-0egOb?qQGxOkci7 zJ5B;mQBB-F=6*Z}eM$FELk8HoU;*^cQHgP#D@9xgZU7Nv)8m?OT`61hT*jOD7 zJ7TlJ+|F$F(gYo##DO5`?XSh2-#7oDE&}%aemU(?dLWqFhqfT%)EN|{Oj;K*J#Ogx zZ`sQs@5wS>fDI zffs@d#$4`*nOg*YAAAga9>g;?1Ua;qp_q$g%^ojj|I$Er?&GxeN$?+3$T55fOibVW zqgpF4n?tqcJ_G(uH5vZo&nlw_S-(HP>ML{CA_KQ!> z@6VOw1va*Kz+wtGO*I+)85jDK_4@;?KN2-io2$?TgSm^sj-v|(l!M&T?+-}o4|Z@e zPS+gotd^Rm&Xbz|7l7r-H}iHGNlf6cUrtG!CuhFeEj?Wg^Hr@l3GAJ1Z0Fr#MK=%E zKTlylL%$@|#CB+QRrfm%@o};BkuSlASZ^@z6gC%tUj&uHnV*ur#2{zAvp8Y=gDmGM z6$a*=@3(HA)}@&Cxxrv7Py(>{r|;dyU(y!UzwYn*C>c~zJh0oafvg^nNGu<_jy3Nx z_!ofWT@lRd9_=-?wRZ6xx{6NSxZ=YF8oZpq)`jObcK;2>XWV}i&gEX4xF4B!hUjPr zOkNraz}{^~+@9Cbm)*SU*tr{g2viPp9GF1|2X5oFx1eXg9{j2QllqA?e+>n2-duhd zyLrV{WM>FF{|n*_EpL+|`Mlf4YiQZc#RD%dDJ~s2A`8A-Afg_F=Mfj@kvIrq@=#X+ zi(5p=^R}s^hB49c5ciXnRJ8%yalrB58DLKky7PvI<71no^4ZrS>wEJQa{mjU)^9!? zb;jF8^M12W*~no7ONI^R_N!vKOTVr+?=Da0_z>eOdplP-n-P2gBuk3)D_j?C^zv-2 z9>wHrdejX%6GL0)p>`hPdL(~Z_dbbTor+5JNoZ`pIlbWx;1wlB8T_TPTY?^ch5hk? z>pabc4C4GX&)s9+JH(pOV0_m$+Tjkv%S&$7OKxi{FPk^RpJ{o_D0r>`t5j!x;sfZb z0QfSOmwmDM`Fol^{krI0PLr=91)I0s=+V>2uIDYIcB3bpY+btQ=jkK3RYE6yG$mu+-#da@*|hr}Zz%jcXnQ8Y8J)k+!X_`z>rv&pPm8 ziNewj(V**mA8)u`QP}}JL$o|po*C^mwXGTD@(w|o-2I)`#C^G`pFYELy9Cnnk8^oP zpU7KO3VCnYB~4LI_MgAr)>vGV90_cG`L1JJlC}2}@5tnn5vSfjK0e;aE{Qjlw7AyR zKO4@hRDNKf!4Oceaoufp(QA;(mDFeboI~YVp0L@)o$${GJF70<&PuYStnEVmmV$!f z660ZP`Kl=e-1C$@7q#XjbCAD!&d^L?`Na&RyEL zUkDmZh%PTL8Hj&K%b#dji5swI$cDmYSD;#n`|=QPSJHgK{DWF4u-x;j@EHaUS51bT zho}sb4|r@ye*#(f3H*-0)>n{7yj<177M4{in5#@dD7vH#gtjsvHHf6ke2-Em5{1G_gqY%7`LSNSx2@}U2*c>`-8 z^E-yF_~-rSCYU$ydLy2J8eTSRgr7H9zBQjjZa$82J|T7fH`3x+IE_1D-lnYOjt0Tv z&1>O$B!p{;hoi~I?8yebjY97t>`5Hfm#_3STD>>1r6JzFjt#X>c2@6x^!bPScFn&q zZ2yE@@ImwYg9B9;kHgZc#PQJVy6$>YTrX{&btQbt#D}0XzntwI;Qb&@IelGgXW_ts zU5g6`7MJ_=gm>z9Fmbyqud#NB<pAQYIkgZqe-J1u{w?JI zS;$S}6#SXxa4NIRG@oVt`TsJx?H*#vp^2Q8-_t~E(x#f1}?nxYfA@yTH#= z_rB^f{M$Q0f8x*4NFH(jL($F)+ZKx7wB)}5YU8)&w1Sl4r0z!79eKL4rO2bvS;%_y zqF^g_WDETywgd0?V&hti*tfrw@3od8-uI>6*rC@6M`EE>Mbuf?vU$J1iYkYem zr4KwMx1b+9KLY*_745+fiN5^CJH*M}II5w=JapoZPR!Th#{%N9z~aZ<@c$M#Ks5&@ zJ{f)bW%Pdl?Qen>cjNJC!S&PNb+G>Xb}-)74vt%}4_rq3X2sV}7d+`)cmC;d zIR9<{(b9z+z3@mAMRxK?_rFb$`zcVuO)pr%wypQmsIz@SvUg#{5YHpA9Mbd|SIYyD z_rhbrkAuhf_!I0Xoqi_wXLaSQxU#bc=2tkF%W$;rd;f=Kn4(c7td&p)MULLyP z*DVs}(eZ~Fd>*}!kiYP&=lS2D4TI@JJdX~<bD_G9{8cU>Z`cNPaPhU#77 z11x-$p9)avsZxfcK<~#og{!@x{C+GhjzW%{sQdGDpMmDS$}JW`WYNbU(87>d9+u}? z|0PYp^3C3~bd*XG?;o`zz!ey1HOq$Yv`#;)drHA$WPK>h69hgEcI@-6*E&2#MSAv?ikdCDNPTbEZKI{JU zsIMF+NNgY8{?(2k3zG>s+oCA@SwsTkL7f*+viK3Z|E2bjr1GfZ40Q^JdjEW+e*_#q z7EytIx?QwIV1DT;j_RP22I}+L5%^a5c2!XhbQiVrG#8zvgFGabi}wp*d~CjOD%36m zuK+Lg{%Lqnuq@Z)!unqW9yWQ?qp1vS1)2-x=7(3SWLbyu;{`RBC%*TyFnXQT~@^}fOUDAK1zvY zRfC3rGFF^eMt-(vd*HvW`3@&;XO*mc5m}YMeCK_X{|&yVn%F$^ygKD`t=!!DNSZ#b z#-3Za1llivlkEI0{Hn9yBC?i6qg4yv=IEMVGkMB|{VB+^FZ*~wFV9VE8A!XAR<6wC zDSn(Gyz%>N1DL#$$aNIi%^>H_SqtuUZrN!rPj8=EeIYn9qSkWTEXQ@4Z;8qMQe^W6 z_@?S&>+m}=kaFLqb=dAglS_d6Gk9HILs z`Tx~|oB7aAy=OBak=)+Ap1rGcydLM}(p*C17KC3gbsR3>GtRsiQ!qMG2m>;~*Lhrt}0 zr1TijukX+wz2P(dT)wT-r1g_S4HC;K-5zxruxqU&X%A?yxRAEsLQ*3rwgry{bD*!T z0Oqq<7h62km)+trX#WuWDHZKNbj0g_eEhPPubK)Nzr)~nyDz)Ncfji}pj@|X-uTH5 zntBc~d;aPQVEkEOT&&>~EdCk17l5lNAPCR@Id(Wo1x2?-IHenhaWKj5;;taqMiw&& ziz~pp!C!&@1ZQ(j1CYb`Ad1C*^?pN_OcoRC4HiE^TXDjvJroh7zmAer9_HuNT7mh5 zd}u!l{#`Zk^_;~|hH=mOIY6^(>D1)V{%hF}Gj_N56)OJ+{1p5oVkLFvUvqvAP?8te z*!~D!Q^Dz~$>`7cz$feH0Ifd~HBg)DE%ar#cyZWqsH_2H>rZ@sm~?!0aI*Karb~7| zU!wI&yJA!OGR~S&T-!a4wXc7HI8uG#L|;jrg0A)qmLD~{CAL1FU;MsvOBm)QXM*Qt z^0D>OFJ#uGOBUDD>!r1wi;j?-wI6L;X8yM1tcc&iy|ww&~_E^?8n; zN9kC<4!lGf2`qlwZ2 z`dhq+@{7(R%gadybGAQ=zs5iGdCB$0)h)qK8Z5b*jqsabEAW$Gqw6r0XlORiJ=i>W z$pHFW3=RRuLLOLphTodqe9`aM|Fw3!6`Kch8COTe>utUp)k|*id2QWtS{@QLVCz3$ zrCsE*=Bk$5s~v%iQJ~!_ek2^SswEeJUja)g2atc#Hxl*EYQ0-l&;04x39Vnp*NLLz z5A-&vezuTbiDKb_?$-ZhdgfPdXJkYC4c}2;m~34L6-=-H*n04i2Yd%2n_Fr+2L18i z6#bXsXOLpjarFM6?z-=i*f^M8Uk9H`@xl0)EMP0!J{^?uD>tp@S7a}{wVvV)Dsg+f zU5S72Gv?osc7c0TlQDj81$pi%Dk~j1beR3GyuZ2o zV14`BIX9Vjrg3XU+b1vA`M}a6Y5QH^PbiRt`u0D^&f(xuIq@NCX$020gF%L9r6lLz{>^my>&sxiO(_P~+lJce2}?3%*Tk+^-; zCzr#aw32R`98lAxQdc1FOoWnp8Ps6c&J(1s%CifG4dg3R#qsNE^3m7)*-j4Y{$?Li z4qz!>+_vZYty_xgc0UGx1-1b{23mh~9ptK!B?AZY?PKZ$iRESSZ|P<5D_|sUV1;aq zr?C7|=T`icCn(obMt2(qpRBl&3LHF9U{Djn~7ULi?8>D*#LX6nKP<C`}KsRGe`;6tFC$SI)7llv$t%1erGhO?FT@PZV33kT&& zvsd5$(!c!QTzpB>N50lay0UZwNR;IKE&OPZ zC55%%cGV`L>j$H?%X{!luo!&6pKIrQW!CwK~k zQMq^}xYM~yKEk)x?sl#Zig{fLZAEI!4zp`7ZrOD%uVyUj@oCo{0k(gxz31WAr%k_5 zon*x=EpN_FO1_d@@gAXdb>1QzFJ0LPmw&NWW$PU)*r<+6{O*R1IK}x^5f4mVYyd$4w*@g_TleA(q- zKT)Wu;s;HU!7uv)cp2D(a)4&(r^iQhzaMx=OTQIJEE_>aHlmGtfv*<_Tp+1#@w;O$pN6ZhZPSC8p%s*kh=7DTH(9&hM zf>=eJ@fboa;#qcw{_)Tp{g%nQmc1D9Ke)G+cYPO$J|FeN)~OdXKktuH?`Y!h*B6)J zdIixOV>ub~il0LtZ?kN&{)y)?lA@2-&AsnM=b>Nm_iUM+#mB+&n6JTyd8)y(`C-R# zssUxA6T8pK$~nJh$oOLq%icwOi6<%YxMgz!+htV^@i#lM=Tf84Vn>-A62E6?*%D9M z?3}6FvhCn&s`GXZeSbhGXZxNZqffu=Jwv#tWm~~rMn9G>EUTvWP0y$~JM?kbq|gESE1ds5f4*_X_Rc2wEmwjw8+aJqb21Sbi*2h`h^B@{IMnT<*A8u>Nk3 zzuzdb2n%<xySy`a4Hy{-hgrPM`h7m8&&2uVpuNwBc)Of&F^<&fkRZ|?L6D}_gH(0uL6_fEzpbn(DIS~4~Pe#?EPb|@9!~wP^pavcf*eu zv3!)#jlX}U3ZAcCmVb5UuKhcA?bq|l{=M`2w9(ozSs3crvy2-Q}i0*lWre=)7r;& z`75HT%(?G+%Vv_)5>Kz|G*An)LtZ zyZz60`B?CA@MUY)tDSrG=uyz8b3uQ72=0nL`B!)A6 zHeRpC^{8(_pKkfx8y&~#$o)XPCo0`8%`NeZS~gknY4BXywaWB;=T-d*`W0x9f?ZwK zultq#^LuyOk8!H2-|2Q>=hhCk%UR!8{vP<6Z%2O5UOlht(W_tI-1W6_zIa{Z%XS5} zv;q&je6PuWXW!0U3%c~{UeF~{PjfXYFbXxcJ@DfJe`^oh701(-*`R+;^n-4_t`04+ z_wVJP2jTSG<(M9?qeDB{t{4q|3OvQ<8Qpqb)~jF7F8vF7zdre10y*1r-S(&DaaiEXc7^5Hia*?YTB zL62Tn7xa%hO%qx`?nedwY*z@M20v6Y9A+ng9q=aK27e6x5&Sne1^g$t72L(qSkCfg zY+0CFfxWEg3l@Q7UMubbe*%6IoCGce*Mo05w=xCd4OX56o(r!gz{Vk#Km32!zFhrM z+8=y4j04*hGr{@bG}He#F7MaVJA=-ojF;tizOp6s;F!Rl?TY1K6}Z&LQ=f0-cW#k* z`jNnw?TRfRv3$iQZ+Crr<@feV(E@t^(ZHAO3TZL%dBwXX@3$g<*QKC$_g>6PTEy;- z4gA@zBzCXF{#Uj!{_o1ocJ0%vr!trp>;G|qKiieZgIMUwj~f4XuIksVGl`q&T#NCC zr^Q|ICKp(F4tSc4`+Gs(dKY}P1;+hjfiK&Y7lK~~FEGA)F7J1Bzdn|D94Nl~TI4c8U}dS_t|sCNR{j+HrS{_MSkj`z*OM)et$SZuq=zdfLZ6r=SV@*( zuo7|EHSO=PWm0e7i;VMMMWi$S8wM7S;8NFs;{2NnOL(VFX>n|LM;I~2A@7k>q5doG z5uXQMO=6Qf+-VChK#$G%*nVsrZXM)taZ# zzvr4+|BX@Z*gR!>)w{_h)^ORMzVxEE_G?95TDIy0knCvHuGoPsw3{(bjHb88;l<^H z%F2hv`e*gKy={7p^$n_>_t(zp;R>T~J+#`i3~E^bu+Vjav- zJ7>>xzm$XC)uZUYEKpD1cF<-?1(bCB`n-)7+?_MS5~pKziI$D*yY^{{Z-Gh z-Q#&$9G&3z>;IZRUmp|pIkElp?Z@8l$B*;D%}4b3aq7prF&cqoz5d#D_EnM(qh{AC z7>-qld)3W4C4N83s;<!YS(Q*ucR`7KW7PvL)&IBFw7gsX zVO#%x=<$BP{;!XFv3_OBN$(%AljN>&k@O@F1`KM$>1^%ycE zR;Lue+kmFOjp%298(Knx2N+W10CVDw_w z!+kCFX}PrKjMu>sO;&{n=T?n_8qO>ab+KEEE)YG-gJSP(iusGxtZMpsMC?6JxykFF zzMYD4f>krXIodP5Y|5|bI#ct0dpY#hf;WgJcZZ$px6S{W-&$4AZ^sll7;ls(yhwY- zXW_5wQwn(jbYkOJOm3^2mYa+@Qob6=Z9=Yc6QwA=L1$+XcMccdTA}a6r}Z9FUwt}#k=`T2)yIc6 zul@u&UkPrYqAh58FTH9??{d=f)kk}trsrzI8Q@u}i~EJuCm#U4kNXGoK{Sm|ydG_e zS`?ELFN5GGARhba-j{X5QT5zuvwf zu=&JKXcKz4+Gaea*KgjGo)w2@{hN(rW=BRB`5)dF;>SYsNbq`birdlZuGH!X)hF^Z zs|Rrgk#=>t%NzNcotSrXiEVv+#KkrYCZClt`NiX7Buk$f8i9Jp$Kzx}$2T7@QT^4w z1VbcQ{hiR#)ps)H%Ro7rL%~jE@);h&IN%wNbA0MQ!Es+WA(t+oKJ0!=f}?sNRK z2an>6U*V0BzOq{o zL%h97@9!DUNmG;DXIVV5SSvo^eWKBe0cyP7ke97~8{FmG8l(~jn}^8s8U*i$YoD*G z&m^1`KMt4C_;Iqcdh2a#5R+i_Ccj;SzZ0zaB50~8(Wxfd?rV|t;MHMnCQb)4*n05y zkms7v3w!^+p0d@I0zEw>tCFYKmUqR+$?kb0g;>)q z^kU7G?0gpd0+OhRB5fcly$e$)tNXKOA6dxQNc2S_>&En{zM8qHgx z_8lBsv$s2t?9Zb1+Pd(}?EQA_ee&kF*D$|d^B0g|MmQ}{vXA=LD6u%3A%ynHg(w@@Uox(`}T{te{Nt+nP()gC0MgKY^Sn6Tl;Z8 zBki(0aY^If-z;H5S3an)sJMfFw!rxA)NP1;F3;!QDIeeCdTRFmQTQ$Oyxkhb_cOqA zK^Z3#!pwHeRT-O%`=3h6OT+UFg#)+&nl9fpAW6|yrRgw_WV#j zh4y?}`*A(jC>|I+kMv>fr6Iobhu;OBw_B@8GYznJ@kq~^*k!ikGoe4bi*GG18fg#Q zTD!8)bK(`zYAuumk)5x-jJhtW$>=v(tM?Q7O4v}DU-R>`9UP>{4X)+<7P6~fsVxUT zm|cxRQo}=E{CmJ>C$g*Z+v>me*W!xaqN_K7FYLg(`56a&4N+f~pL0mdODx#;!}N)n z_u5~AzxQ0LKJZ(6?=b5&4THta?P>dtb<$3V|1UeQ_kV-)pS4OCfwlMfZPi15yY>m{ zp45JZ-lJVf^ER`OdinF(pr30Q1r7^Xin7*?F2iU9$Hc%7>6gt@U}r7O1Lo;M$i!)-nY) zeod|WTmEnIlc@d?*HB5w6VO5(_?Yti@ zHC7(w4*kZVu2ru`Xb@Vo7746?ehW(PeR0c4+EP~$2DoGrtv7H4f-&CU0q+TV}pY(V$Lll?}eF$l?USv?E ziS1k99#Ag&7|`rr@BK;oKHO2xO=7k>^xQyPbN zec4r&!}9_V5!!WWPtULI9v5S zUv^b@(YLF?!Bj}Mt$$S*`~iC}u=(wFo}clDMb&u`f0BXJcftFpXdm%^jvZzD99hTD znC@0}_cE`#h3&oIZ$V;7)mqMJ0CJEQqNo}Z{J}u>Q2~Rh7ijBmz&}&eLIBEQ`tb0> z&W*=OOnM&Ocm&;e4Ba5&t8Fa}iTh`9D{7JX9P;}r;(yfywK1OWRK27!dXV*diEX?Y z%BrP7e#Pw14l<~ki|nR@3#iZ#oBYHl=l2q8wjKurDenDIv{^x@8?7!dbf+Ng{--hR-&)#F}{|D#QL#=mJswT z@X@xGnWwG0q^0}&e}{fFPg{3d;OFOQ)0>~C^)4?fD&}>B#dYRtHMah^?sG(wFM?kN zZT^jx5LpB^Pr@rU3_gzz^Q8JrLY^JgLmK+O!Ff_ujpw%RY`Re2ZN?|=`1N_uPa*@on$c~V35N%LIa&ylbJ zte?`E`@siQleOH^{gY(=9QrqeeRawD_Zzl<1IK}_L9ZY5qwe=ja+xRj{t(>-rWe0} z_fz0sRFh!`PwZF!;`5Ob=#zH%{{4rog4=6g8?edoOFB+zxk_Y!jTL#~I?^+Pbu(ap z2&j0?Hn;gm_U%y@0h+lHcIA|S)s(I+Tx!`JWE0GQ-wfHuxnpvNegcL^(oU6hG;!1Xnqziy>4n?yZ+P2 z;5qOmDwI6RZW8N>`58$;V77P#d@cZ)#Y0EhLjQ&9&rz8X$~sTC_LHZtXEtT+zmffX z(FfLdhWaXS6NLklr)xw7rZf1J^*zDfs>$dN#%2AVb~?eo5O8y5Mk z<=w=AhQac(Em7WGR(czkm@8^?d&WopJN)0VcLV?1^N;Iq_SDzQbpjiH;J54lMSEV< zeukYe8j1ah`G>lBb~K*rNhi$yOW|XFTy8~<>`P#GkYp?5QS9)ia08iw#oIUPcPMeY zyq|j+ih%ir$6!4lWVWvUBDej{v)7A0EjB-jcUjL0-TE~~e+$3r9JqcK$oyQ8EYCLi zNmLVp{D!jss?JxX0_V5E`#~jhisg;UOL=xfavbH_Y`w{~+0w_g**w6t*)-a^77j!_Ht2Dlmi`<_ShWK2KnbHjp_RY`6{Dn0-n?Lu17t zdcSqR*6oeInhse1j)niFR%GYL@O}W);K|61|8wjd?hEp|>+uM(q77$)Uv%zagt1`& zh$Sm`-|#5-EI5^O8h{+e15s@FQ?RGu>@x%g8-7h&p8;Q>NRpL9KCadZ%x1mWl9#>s1KRwqrSfEF?NL_&TMuXKH~z<$ z-Nu=;g%m4wITcD8X{>KgL-)swa!&V9Xx()qIomsA+wa}P`e`xir_{AHB=$?`agc}s z(=B4g#@l?^ZNzEo#r~;5RI~$+0&}1r&$Ew*{`!diCTM>LB;ReJJln=qO$V%hAA|p& zec5f?3vUWqOKvdFmRH?~r`d@0ZF~s)9mv7D4{75{5F@F^NUEV)9c9CTc(lnuUbvTP zRLuPC&2V`-(5j{*`W9YFiQZwL<*7;MRThWTT7lUdGlptRtNNp=iO0X{BUHw}Wu0f6 zyxT+bOQHSPbae;O2ddAf?K{9d6b=Wi{o)hPvqy2C&kXMK`3v{?JkNbT|HPiAkmX)P z7V#`6wJ;|XV!VX$x}lOM7dM-SA5x3<7PY{LIX-+ z-1aNamoD#XkvzZpao^yB{Wr?&Ti>{+Zb5`B*(GtFK?{>+gCFuB9Q~u8#3` z$=+l0A^#j)HC|RwJ<2w2la>;I>Zd@n`V4z|oc<;CdkxMHs-X~pJ^zHpS4Z)_`X&B4 z9sCSPQt0EJ=c&!K2XgvghBOmHod`XK_zLQ1Wlg1 zhZa^a?PD@i3%R{FqMCIOf%&c9!+Q~EbF>UOldpJxQeHf`_*Ofk+4XxIym|(v4kr@$ z>$%mBQ-dh0`FE541*-At2GyI{+zDa?mS2-3c)q)bduxfx@82|%?@LnR|D@yZ{q!n3 z$@lkhc)tajeP#6b)u_KE!-kKnuv41tuRZS&u21zy509M}?6PC5-nRojfc9&*-Vf}e zUGF2KLtRQ=0R&PNQlp9lDMs9N^F?rh>_sb3*d^r)sz(%>J@;#{Q|H6`N#pgnOH7wPBmq1F!cZsLM^?H~kN% z0;ccCb<_Fa1*-A-9UE`+7g^}L>6g(*vPS<8&^{ORd4S|BCjxFd3;cq(!dLUDX6N74 zk8^04CmC&~Mb#Uq6Ks-?*b2(z4grq>y&lBgGiLL)==!O>MwB-Oq+gJe*pAYEi=o*x zDD?H?w5J-jf=yqSwt^p~prrpeFvs!g$Ekqz`Hzqu0^XpSxV>%~5c*pq&G3+gToKu( z2f{Zh)u)kx#HL&5!-e3NsAvZs3wk{nF}$=S_=T+e&!%CXw)N*v@VX1UTXjaaCj1?h z-;e2Ib9&%2RNg zegjV!rzCwQEeAqQKlQXtPVn4B{NKb(Kyu=T9tt--5#*MQoYMW#kODTpx)o~XQ$;oe zMTiIBD0>f&I)`yp{~hF@>Qx+!N7>XFL{l}on`rr_zlmjjw>{`iU>e() zJ#F)TmV8&QYtHnuqx{p~dPj}kRZ}-FkCAGTT^|=>`GMURvuToNri?(a`QP*vU$_~U zw;A7_X?M~dufMr|w=%AOW`E2^HlHp&z~&GdGwsjj3$b{na{RlMqc{;;-1>9pwk>n+ z)gL+c`Z$+rmrpGEw@ZEOWtX~_9<>xSXU`)l3M)#A=#u##>p!k$GojM@|84f8{AcqO zQ6uC2NB+A3FusYuo4Gm6AI+~m3C}*@)go(p@xlInH`D0TFZ*sLHnO=l*x%@@{UQEr z#=16tRkiR<5`R*=CUdCH#_#X`oZs%kJ_V`W=lGpWeQ8WyY59A4Zu9N_^hde{GMjy5 zrxcg}bP73qAFIal`OWyK&G&&_qNcL{aC*P-JsaPR_FmA2ledfgx#st#H}gKwhTT$l ze=2ksIpOA^bUiJnR@5j4N50{)(Av$v4m%lgviY%n-?i5u{?9G%+x!zx+Vqszzgbu> z{%?K)`r`LN7T?*d>qpZ4Z0&hk?nH+4NI~e{=Fwp%qo0*jwgsi-_#J7!N94-q|htmfyt&|haob~c2a47r+L&-HtoQCz9j)wf`SpV<7m>B;WC{W^Cp=-U^* z=67D}*RyMW&n|qAuYbW;I~Vj$f1VNj&(Yr1{`hyOcEBvy)xRGJa*Y4a;Sz&}(6&`( zfy&P~%lg4~i?r+m@YQ%8zZoC5MYMsO+Y60azZ|DGo(47fJ`@(9h8A|@M(eWjfqGcJ z+ps}pwP}>M%RPPVAhoY$@>ogqzX2?dy_?azEcC`d=Qt-x9y_?WPw}8)63wFGwD^;+ ziB^^>lQ-cO`oStc)Bh42ZJr&V3Q9L#!YojV;lDuTOOjU^{{ujLxm-VvXSLQ z#T+BZEgo#S%AalV;Az@Y0+Kz8FMRg0J~+f5VSL{y4@|>Lj&)oW$2GOiV)JL?gGCu1 z;?0)9Aj<&i4?oHnz%Ar)Tkyn!X6agdF?q_4$$Ctl?b!c;r{K2S$IdUnKY#>VXY!Q% zV(&Aj+TZ}oHRL|l-@no(qSuz6iBZmSRDV;$BrTq`C?iT*e~*Ul>$)LpASr_m*1&({c6iAo?f)7zV)n7Cbn<2{4&E& zGKz`yv_U@|*8|gA^46`&9i+EgF*I4s0$33qTpyQJ~2=CO4`Ka^M^Mf%&da!1vrhYU>5;3;?x|E1@3;)>QGM zMo_VpjCAXfvSYBiPD87!@%=|TT z9nJVN+FPfDxcxo$e;e_Ct|9)GSK0c+i0E%^O%93I(Y8M6&o$rk3_S7sTgMn3`RV;$ zM>G2L%hu7*nXNB@(~bTXe&zYVt^W&7P;JnUrt(|!*CwyvH@B|wXKwwQ-@2_!!%n^N z+RYTNWLTjRZXfrGZyH%xYVyl@-f8P%TQ|{z?I1Bbg01gHdrfU^yw=Cp#p)S_t&Evp znVM`}tR4kc#>`$~4au;d*~nwOjfDI%(PbO4uh#Y$KZ9){vE<+Y;SX(8ld+Zl?B3t? zv#mQl3)9bMX%{)cHl+g@_P-6yvhmDn{R|@N87MA3e>S~Rs0D1DM|QZ-m)*8g!%n>a zHI-C`^)s#6OXIg9Ptn|V97xi#?Xu`Z_*5d7tk=)1U2UL*U$pxSZi2(&s9onpWEck^Yp?aHu|Ay?_o zu3Xp8j2~2Mb@)2?eG9zC`{^$I`sDjXGRx!m{`^(_3i@8%zjLpCJ+HRbk^D^>Cp*(t@r~`a8^Ln$YHLsId}|Cp2dq67H`3S5YU!ujC6BCjvE8O| z8UhZW-L-k=w%*i`P;R>=I(t9b*9_g3$v?NvOt<`C-n0Dk2aH5IMHr91CHNjqZH(w! zTz+#&QEdw9^S^E5p-C>Xjdina^PGF*O`f1A2LBlHzxItu&HPSvxWv;ClW=1ExQDb+mBH#e5>Hw zY(8q^6^3Q|x&F*;Z}_d-{^_ujF<$CVi{+!+zd#QdF4%uUCP!m_rR^)0h3u zKevCylQw<)JN&Vr?S-n#XeZgl{^XzH66 z+(dIbtNv%SV%b@0Rzk>3d z53cA}s~e$1HJ0Z@_G-E$i~o&tXCt+Bxk;L^3i=Qav$FIonATz`>*9w_aN^TQBTazP0V6FulL9Sr6nVV z)LGUG_v3Bf4sAT%cGd>A?{)6&*Lb3`Bi1)7<$CS^Xe)irOZ`-JF7?4w z{X*kV@F=jY_s{x{(-j4M_|wX}djB8p-UB|4;(Yv`xl?!VHYJ$eF}(-e!Qd9#1dnUwE|?J?Bx09L_3Ub|IDf8pYkw5bA9((% z^T2bQ-ZSS+3D!+|Kfl1AU@oI49VTI15nOy^_aNTc(i3!&*^3p+n|u8A=`1pczA z`Pgz}hU4YqPBLcaD&7ruzA3oiO;d0oYj>|7P0d7&G;~)}wApFKY<{;XioRtE+v)>G zlw8X=|9sBBhZ^A^-e)<1b4Qwji_!j!?M=b{1;*_7S5vgbFHLl-a#K_|!xZTcNjwQ> zk6zy=H$L(Dfa)*t^B;abcoF+Icv7o;&`#7}*LixF56X3kl;>lse(iW@{Y$mD>Iv{E zX;Xj5dOoJ~(M#uJc^_Ac0 z<}aI?k1Z$PQ6a8c!M)gL7&~Yc_hQ#^FZLnE-gq05{v;sUKiiDQxn7@G)kYpiu+`+> z09J1v>}_hR_4>O#&Ih{`6^AJqt(Trib6(hmlFSXe%?p<^Upa?0i~rIOd%9j-!@O(F z1^iyDWK$aS&HuvlJ$%5=*VNC*)2k;U)yIz0>g_zo)hw4g=o**8^U~$a$97{rwmtg& z5dEm6W$w0mOXg$5mHviw?*|}ni@sYrxil_3!0}{osT{N5n-um5=S}KY+J@zw3P-gPflwT)#Sz zTft8Zu5e|XH$?xIfJ)F2^t057PEPWx%E@;1GvNK;&-s6B{bV&2+G^HKR{srr)$5sQ zy_$?}TrT31$|Z5?4UoC~>PIrRL)SW21SiFFpp6|CC`(>SJH4^<_fMA_z^?P0$>*7z>``5$z>b&P-`ibmeWDu^| zm+jUd=|f9pDefGduJ=X89V6xb)OB~|?|nvd0MTmAp0E*EGlh?dpoB06Tj;(>?mwJV zUQSaCGT=*G5s)fRw-epgteMZwY2X>46a_ng;kdJAXU?K_T5}}0jDO1iCBMJZ`+UpK zOoM5cU$0wJ424oKq{|xS8Z%I$7e#t0~vXdS;JxaUHTq4}qeuyN;m! zCS3wZg{)gKm+p|R&96Wvbox9z%1`GvZS>o$VzpR?_PQK?VTZ6q#ZPh@&XCoR^8xJkSZ{XY{Oz_YKc)Ee;tA!&6^kc0TH9?`;;6}jXv~sM z8jW`$!NT!Re8=5)wW;-A_xqvgWu@hdrj}NhRFy3(owKZl$AoC;@07T2J6o{{73dmF zzUI%$E@E?7A1(3gzQaNyBt8Yl!H@hb8*d|vP^YhDcgMHeb??Bw3W@1c|ApJ2c`zgPaO zI~)8@`M(2yS$hT|=3=)4(-42jpKU#?lSq4LeIq!vfAZQ|*82W0faWz~z$y5bf_q+Y zeV5_Kzr4SmRb5lMRKDr1KdkZj@RTR?Y_nEE6|iCspH!KMwy6VL8v!m;(Nedo1o{K0g`{JP4|zSf|(m z0{sjr+e7oa>L29y_Yv(9Bn_lodpHfKVvYu*padzcH(Sv^{*yFX)98mdU!UJ~4Pi_8 z9;$@ck)o8uYnFhL-(z;~x}KX*-!fiPcwd!^6RNkU1n9i;QrL3eqrzHoNJ*MFvgSwC zTl`1*{oBRmwNwOh9sQ~GoVCE%^4E>saEFO({g8=l|05IGkv!brkU>9-DFLk`rJto+ zrEFO13j~z%K)c@8n#)cBU%+?Q?gvf<7l2iAW+J32Pd~-aXA`CQx*i4bb1k)kg4OlZ zr#4l8Xb6?cW<~|eY_&`I(GQR4sI2fe+a%0C*FH+`JqdD6W^F7TJ61aXob2|yf4csS z7iB#&3*taL-uM1Jxvy_6ekic^k8WGH(QViMleX7nKOx@J%c=UA#_4YF3tj8|q>ibQ zj)P0#qd7;$!Akh;1s(-TaNYd)Q z<3aUlt#&tS(w6i(NF862$S#U~D&Ln7uKZ}xnEN2d%=_!)TYeqkaNot1n_!~#YB zwGI3y7nEQOB-KBzFM2C|e5_8g@K`-x>bpj-Z=h5vbY1>>manSa@D$`WM<5~VObT@} zAAKIgi4*6=4VBAEt8{S2IHv5+alY8Aj$BpemzV4ISFSW1!VUw-j$pSeqFb#J5Blh3DLF%r%GFD{if$*-{WOCqVL)c z&eydn^~bdcS3;cQ(WR4XOHM7VsZNEi>kJGd)a!__fmNJb(pAb=>{}vjY-fTe${u!% zpFfdSa(o>#sQ{AdrR#sogzKs3^QAkl&Sg@2z?G;!ppmb$?f8frlBShD|EBguKn<}a91@H~`E%$%; zZt6a8H?BVCEXH=7WM80eo!ch=RQomQdg08M96wlh~^h;RnM_Py%bI4w#Xz7Dc)RuS>X?4 zo&bHB7%@MjbE8U;Ox|e!Rf4{$fYj)Kk>x^Vct7 zE5S?0i^d7~A6r(lWIi+G+G_oJ%68EFQGbn|q}71z)!z-?D|_KOtNzDcKc27e!)x+! zr1_(s>jU+F0w3YtaAI-&J8Ul$`rM`1z{gbG?cu}e(Q926i$US<^-!0^zo&7^(GzyA zzjU2kxx0L!{XiGjuk`&OK7FHpft?rFc@lgXB)GYLP&=*@mjJYmpxRn@5O|2Rq}d;O z4Fgv9ajN(O8L0kEr6ck;$<=|{>M50rN?lw_qd&fYia4)mM}O9f5&(4q^+>(&g`ch+ z%9wf${8;}VK96(i-;-83FG>9n_iN~{lT_Odiz}h9#!)c!IDloLRNmdB`8SpaK3V2| zbTFm1x~6jJkxT|E7grT8)uqa6cXpa~{oI|U{qry~Aj>-RMGqNAO-uFBC9z4Yv;+G8 zV4F-|XGh@!-9cm7Qc~1E3ZH>WCv3+STE&5YH0;RGUpK|u@hbK)ox(cOoIM33XvFjB z3IzYi+i{*te^V-JD{3ZHESg&DChh)w-Kaf3PO$roijt~QU4AR~i^P1hbGb3I78o;w z&O3_xMkntM7MtkERogRAIxd9nX9@i?H@0XnzqBT0 zyEwg$a=dgrJOb~Nz=hJ*EiPteH=!Tc4Hed%04`Pfp>eS8yR@Dxttr?|5(k@T0qdndajMH`Z_5?flADj-&Tfkqq^ZCRmQi!Z0;HrbJFUDaRDfYuG*2BjzCpk-0FjF$#o#(~O79$!c1ZoqG49Pz;z&~flT z{<9vWVrUQp18LBw&omCx>kUJ|VS0YLaX0P<#DRuM-Vc7j{uU|_J6khyNmJ49(;!8O z`hkp_6zYWZ`d7R~K<$Q?HS7lNAuTTM#p9AYPPf06e$d}%LVFib%19UQGwyGt8}v8k zX<+@LVVcri$)}Hd4Li_E(be!x`HzF7{T=V0BF;SC_s{k0&-El4=ELD$@BtcRXlnn6 z|29-}ADfn_3xW$&Y4!&rS3uVvsXH3T#|lr-1fn1?;7brKJ zD)fPdrRdZQ5|~scI?Kmd{Gh5vzLVxWNurQ|-WScbL3}`SZGt{k&=vcw^Lc~&@Fa%I znMwOg#$Uqxo|Eu6LE#>%A7m&28h4314OhvLeC-<95rC9}>W!}V zaRvR-@QL@UAHwG?;Uj+aF5A7pqdYxLtS7;N&rWN{=^|1>ae8=xiN#+lj!z5=>FM?7nI(;b_JHg>KC38osNhq85Y za2>eIWH)8KQ3EnMbakuoTjdaw13KQRej6@u$7a0*f}er+fjOYYZ_#@la?FiCM}dFE zAZ2;t{3Qzknp-885Ly-1k7e^H_#8-(kLUN4?;}(FM06nN>-E%?3hO0qH{yaKKpwa= zsP|RLfmEM(Nkbji73rz;cp9Ww(|$;CJoZnVT`#Wre*l6wyMB>Z#=Q?Ah3B))t}QR0TUo~Pan-alOG@>I zatX1W%ek)CXv&Z^EX&r}aT-om%tH`okQV;EH{t*1E`g3wVe8FC2%( z+fp89!mrzXWnq8S@r6y+OIVZqv;KazBG5cAA^*tzq*ID(tEsRw-mmIi(Uj%WxTo^? z_^q6-Xy&yeH&2y;s9`ehm+$Ur<$CQtE!R!T$s@;P2zT&Jn)>TSkY%`nTEq78HRb z7;4^={%nH(tkUZ0;>D#I@bmFs`E3Qi=O8Vx{(pSD46XzvneBG&$s-=;N zMIhO@+1M|?UvB)5a=BWz0J>FA~QybU97majWe+! z#@2)K>kB(;9BcA^t@_SGlwHByg_Wxd)3BfBQPmR*HEr(o{0aMq3O&(tBHKs6S3xOa zRZr=+@VrEh!}YQBTi@xczTy3fSkg2Dl(H%teeq2J?bkb@C&NVb{VvG)NySed*^un`f$iB08Y_w}ro`BhbVg)BYTMfCGv`$6pS7JuT5x zMtT$8-$eD+bRu{fxE#C&lxXw^@I~+w&g%g(uotFidfJbRpR!-($u@%RuRVf0~ zTK{wPs7NcIK0hDYkZXEQTEcm;iOiANd`#_)DVyH&^54b&YeFArdIQ<(z%~xV#M#fs z#PR~#w@TCa@b?w#0G!v#3QeUsFoLXE{Je~V679~`*ow{DyybClZfct`n zIMU6GbOEhrSsv*bw4Y<^r9Ck5r-i>qJ=!r%y*Gn4f zwu3*ZQ=$2MHsrECTrX9AIgY&Y+a7-9?$|Wn#g62lm7o+4L&0uwFBH$3$)m0=4n03+ zIlmqJl4~Lr{Fd-tw^k)NwfSOWT2?`@pCJRk^Yxk9V+SPtjTf=`_v|z=B*ZbL*in1* z$$G8!114@JN9*{zhy6zbzAVV}@p^6ZpB!x+TMOXz0;oAQA+9_f>+dwzYgHdi)V$K` zb1(a>A1E}xg+7x&8PHM>W?vsPzv4)1pFIVyk3h1k$j^s#7}!j;qW+n7eW3aj2tBB5 z)^pzB8lwBw(+=%$yPuaoZyd#_-k9%-%PiWUOe4|tD2i-hNderOrQvE+-S z_l2t6i=e@@NXG?MYx#!I6M6TP9RX2NKz22sCdMCm*6f;B`8{M6*Y~k~cx^n8Sn2e` zN6PU>*BitG1aw>;RiHZA{Phm>TNf>E&V z>S*OFssUO@UkP7o8-46{?wluh7(<<|O1*xS3I0)CVEx+Te zC%{+0|AMQ)jYvo@h~(n8tfjH9}A1JzaJL!t!>lSJRVU zLN}oPf1KNIy->CZ@}HBI{M3uBcYFECjjh)RJ(2%9*%9bF`MsB@{e6CDy-itkT^CDc zf7hQv4^h<~-w`^9{WJLt*Nd$;()tr=O>UQs{ZcQsHahNK_fM@Cuf>`~1O@A!iAu5%=HfT+UN) ziCyvxDY-LTo+%~2p8Vnq_q?kFV*PLsmT$uB9^}(HwUvA+(CTZ4HjVwpw8`*mm;WS; zYrII;Jwx@Ud`CcrXu>wtxT0|^?4Me{{uUWX-8#71hO^xcB>yGWui<(|>WTH;6-_Vx zs~qSqpud|q3ONS3W7D=5JJUf~M~Z^6I!2%KQCy;dmv#Z^f4R3`?v0acc(Udq`KoOU z_`H6lUq3R?oBFwJkx}968tCW25{28Z5 ze=9wvBW>RRk5_u)Pp!oz`b$ekQa_XC{yC2=YVQ54|=nKfIB0e(=9yqn|WCwB1eb{0zJgq#6x_<_8G}J%Yx`b&2^w zz8G!~;>LVC0u$oz8lIE4 zw3d6x%Sx+f7FR6dcdHrj6_tR~4&Z~Dx-Fol zytFRt1CH(LhhY6@ zX653tionY7UqSpx=RG~@R~rs85YJeY+;8Lh;UXI< zynef}U+j3A4U5o?+DIPOrRz*uA89>`AE94mZB0zU4E6i2rN|L9kQj^@$i3IDys~%^FWj2TPv}TOQ%g@S zt}UdmgS1-W&9q}J;@|yAxAZBIUj)E-;&qC zvv8a;ev4UCRx+=&y0Vt%tWPN}FDHb}sw_D*RvtV54*yOE@*)`<-EQocb*%R9Iqkph zpE^%rm~3e9nsD7yQe*oBa6j5R*q)TArOr2G==TWf5AXW<#-=+_&kuipLMq>1&NUns zIOKWgJ*{i?C{!OdN?edTVdN@;tX9d4sC`FcI!>XU{7)Y;>V=ehu5P zNbTbLLg$GyF$Xn~Li^2ZP5~=HnMMo+bsoWUt*e(+#-2e;bL#yQ=No|+{c!1MPM2=D zQRo2ezu-d_9%Qo4q{D0px_Khk=MrNo|8bDA-db<8|Ja?S&+!&H9t0VY@TucNEFu!! zFURzII?wTz>mBkt6rw&Rl1CCGK*%34Y5QAvTszDj;O@{V{)_ETv-3Q-0?Y*mgK6sb zD5n5gPrVEu!B?e4^$ER?&mEsydY1eXNNxVvF7&aG(ticoFM%38!t>8|lxTlL$tI^8 z_Y1n5uP=n&Q1JQ>fFfYe?G;w1t) z{?;(B3>6mgxPhen;`YU*I;afQ@BRSg^^UUXU@~i`g0pB4lcw)?Vr>Dn*K6?E0{n)w zgvV6}BVO&*CVIFBh^HYx_URzEtNe`Fj-7=*(6Jk`SAgemAf>I!FY`xvj-A8}_XunG zZkppM@F1;887dtIfCniZ`X-1M9ea7b+Dmv+w)~f4i3gjwU$TGdyN)^|U^ z)+JsOw+@}cd&AvhNSLPiQoB>@!VYqNM=f|Jc!8sNEzv?i>%t@5e)mrucfotZW5nrS z@vq>$;o)}48{xWM*P%PU=_pfe30T886zI4RyiE2I#tFTca=hxX?g{*$gG|=J>|UVb z2DddGKVs)_a2_b3W=GJC%QKb~*SM7k_21RJ+Jq;{@NTPx`oo;1#bvQLw*o!WUT5mK z0#<<5948>t-Qc~_;^J!DkUmc61WNy(WIT0hepmX$)#$05gNhx$16_Xqf)*cFJLvh2 z`-G~u^QUDMCFQk?N~gQ!=+Z@#YIvH?5_uMRwfkDq@$CKV2`K*^{HclNHi7rB|GXn1 zer6@Sc86%ea<%vWV*2mV)#P3NKcU#PE zBmwDfhSaY&oUx=bSdgM!!1+U!zK~^__`!nGr7S7e1a(f@^J&*#|8UebZ@i9dAA%n% zKlSUl9Lj$a@znRf&_hq9hn^i0L)Iug8Lw>%D;IHz!|`;VY0$-cwve$(dg-7f>1b2B zEBO@TN%itR_&K;v{^LN$@h0SseGlEy-RIxpbZk4NW^^J^-rN*5)lmHhu1#jlN8(|G^-7xGdMZ1nX29oNLmm~~Lh zSd^MyDZRj7nU!~}fF7k7`l-LhNxl}G$(;`W9NTSyKE6dH^E}Z$kV&h zqL0^W96u4-$AQPk=zm@ui=Xr4F~X(17s0*LJstTOQ5wf5LVG5txikD;-HrRuN@m@7 zB*-Lw<4GbxA|$n!8)v6;_SME-&>TD4UP!f?9CUnts^e_ZGF}UYrh6PyQO;UlcvNB6 z1l5rhqFd?jgz81~b2eqo1@X~Q>&%2J@!NxA9q(FL&y&Lb4{{tKE z!~sWw61)gv?tNzx*V{sLG8>0d!TZu3UIZX^ABB zr2deRJiCk$-hRBjg)DyqAD0&8AIhhCoOYa0`azs{8`^&bCD&ycCzNgwC*FbPb0Bd@ z?8FBnP;ld)!KXo16E^ZKfuwfS{I2waIB^nZlOZ>L7(YLYI3e{M77^_HmQZvM$|p$P zxt-4^l3TV9zLLujycK+qhCER7iTFu#HT8`~MbV%4f9Ovv_(tbVd|3W=11GSr<9Rz4 zBqWE4mJ-P~eqnNVUuN>|U&j4*aNh1{V@8XN{Q#NOTS%y&dEq~3F$5eYO_}+n(nCX~ zM;W=xC@5)tl4br9IRn3Z51Qk^om9@1eENE;6Z>}x$MNzX2Pybv+^^{~?Yl2br1c|z zzOI*O-He-T{1h?T>H0sx<$!<%-5O~_is3X!L5~P-Jbc0WC~uf9omI>atE5PtQp^RY zvYNB_|8i>WaZCW-F}auCYjV#x!Q>uWY;q@77<)Dg7|CFzHMuwL!TYNQncT|@OzxS} zP400sP3{r%P3|Ez$h(RxQ}sFr8LB|FVkm!@PA0oq=!t7| zz6u5r^MXLn3(@fw@Gcq(K{2xO3CEwz`s++c3ALO2_FDF@*Oofh5`60TY$z2cb=AC| z7A5URt(Q9QfbIj}^GeSeDzVf+>3`K_UZP{=FeSh^iCp(3c&CY6eUXV=gK^${(L^pE zWFnVsZz30eWFqGm8}r^~CUVwq*}ew081w#5Q{$iPTRLxgHA$TmpZ}=jI?qAw6l9F- z`>Kg79c?0~9AhGjS0Z zj$d-b)KAuP1$$1_?8=%Y3_#zWY(2*L$%jyC0AI z#-4gJ>*3RkJ@`Un_x5(^?flNaP&YiAvcGiEz}4158!B$zA8eOXTRcpk-D@ImoNFR4 z9cLo%9l`cF6M5z_6M6h_6S?71?x)|uM9w2qy?=s4=!f zyVWN0#fK*H%04FY{KF>l^o}NS^9|f{h2LH^0UD!t2bNUx9zt=@%7a@%byWd<2q%qe z_|nF;?i4G(G035y$QesR5y;SWzegLy&QSEZ!qrPsEBU-@B*SzPjqyyWwyZe_JQ=(M zyq@#AK-%%X4gyFixUn8SdR-ucxF>!@MItEULud&oy}DT4=wm7E@qAYZ@8f8ZJP=`j zqMRoJO~F>DffsT#0K^o%)5|0uh&2_ykA?9iYi5CSrOC;iV22rtQkfq~9C389sK$}W z9Dffy!O`W@*~yw2v`R7uGL9oFIhjgcu#1n-NL$>_MQ|HNi`ZFY++V-I&Qi|)3?vZg zeN}4b%UFQ{G4a!05BEHWms7a!thi=L*Jn8h4atx4HX(VV_1a5#t_riMHH_S^{={$UuJT;^ zanmVvfHfb1pMn1aUF5Wp!yQ|Fp2V2mM9_M1Rd8QcSV?zA`2Q1T_3-~XoV4rpIBTe1 zf#A+3Ygw1j;|AKOCb650JM09iccnajgkRVDkOKd-c5{Zg%qJh_sZ=tH74kNZ?E&Ca zP(r873BvsCz8q`b>aJkQa=Ez8v{gXo>+i#Q7&t;&v|en>@_EBnZqpE}>F;^J3+*8w z*9D$_s4T(q2eqt(UtNs4MzRsGZaRPLhz?lm`F{;|HH+%Kgp6c&x z)Q)x=*Z`_0xz8R5GIdR`qokR1^g~ZO&+GRH`#a0|qTdX*cY^nWq(Sc=_*wY*BjR_N zJP*U^a~Na+^^5<)asl{lX-V+I*;(nQ{_gerEA)$nzUa4ztxP2U1yagxy8lw`r?}sU z$pG!E(XgB5j;+0noz-BY{1=pgpyMo^=Ls+88F>%z8`TrJzY>e_yaj8^j2(vOkC_g^ zeuk9Cf7~8oVnEkEm@(NOx?`))+$HJj?|JfRq?qz?M}CLV<-In`P0=6t!lG?Wr0_ix z8OpqH(cY$L-ZiG^j`vN`uhe@T<^K50KyT?{Kz)1ydLQAAt$hlei6Q!4_yQV-f|56z zKzaUKi;Re0)2DmVr;B+W%Da4_pCJSNq{{%+4@vcL#2j1u8Xt4Og&aw2RQ+WB-dE4> zaq(G92Pl7L-*%Zhw)S&)v+!Uqra|U~%Krg&q{19Z2x#Nm+kl6Gk~J7VmaB1MbNd{~ zJf0t~*vJ@gFV5)!GO!o(GD|MjeDWy!%zgx{ZQz3%*WSgE6xoBplg!RBImaV4 zc{bwmtmHwmm z{D65_gwd~d{Tut5|4}$Ho{ztSFC)Elz1mgt7We7-nR9w}#v>He=RSbNuHf#{6wX_b z?d2E)r~CXJr;nRw#cIXKfsUt*Xu?-!(tCjNWgGrIZ>ssKj+4D#h>vgVmw8g;JSY3t z{Zr>jtX@UPIto_Th5nt|JV|a1bn}u3cj`x2d5W9^UX*ARy)RHouO7kG388t3|5mtN z=OaP8_+PhqNMw@!+eTQT0Bqhp#unX&EUbP-u9T((Kc@Fm9v{N5+dL%P|2jS&gAY+g zT+c>+!Bzy40x6-+>?mI7gQFWq?J^JHO8|M&?svI~?ontWmmE+1_DyQ>RVJ_H5M#Ev z+n8;)Fn09wChwzDj5&zwU*})u&I>;O_Ae6|ahr+mv%o}}X&iK<$!k2_6kT-y>tWlP z=)Q-NbN4cNpCQ~4c_zB;$ly%3P1zn=|ET_=>Jwak4)Evtm?-+BJ!Rw zL!Ra|){*oc9d>Qxbv~~Fe*orz52YMsx3E%{#QaDJ#)z`(F?$fIg&mU)PCgt>}v0~G%1Aa7ByzVjlM3vj{O_l zH*7@a2jUxl0j0=NdMoIUbnkz)ku{tSXzhJ2GI#QJTZ#JF^tbf!3Pz5I#mqYLiqOLj zdVLy4Fdu+YoQ(ptzuSwe%PKgKWA)3ZAKuzuZAT8nX8J(GxUab4c zdbZkb6#FL%ed(%VK8^*y$I$>V)L(JG%xHW?j}s1_Cu1SH6s(k%1ih#lvgj}3S@d>q zJLx+qWdR!{k=hHvOF5E8?XOJqFq`Sv^E?+s@4umJ`w$VqVEy152%t|kbE5vUdi!x@OaXfAGIdpmxe1`^17asrF>h+l8 zp*&@ra3^Z?U(%MK*FUq;OXxQH{$l1Hl{5s{=!blCk_4s390JDrYXh%vO zOE=EM+r;^U8Bape5N`^;wS`y6X?o`4s1 zd~{Fvj0R(V+7X+cWIF!1FGE26lr`p@m%x{$CBaXh&B~6fk>q^h{gj-Z^S00zJN^fq zxa1Wj=%|mz{4{&LUQ-q>uE_Y~-hmwP;6%MvW~JA@(A?l{w>|qlW80iY#@={vJNO+4 z#`>$T#^1vb^&s{9`0c@Of|r_tQ#P7{vO%U`$s|)y`hh7}v;oXB1t%V73QjoQ6dcd~ zcb*E)&VHNOc#q%@0_u18eJ=i3Ncex|8>L2Eex%+s(qXx;{(ebpoO#G$zkN%d1 zabV2vLhC!3>6JU)@z8w6c*-S4=N=$!33^S)N-t`uTuKJD9qS^wlO0c+y9k}$0RK(H zW?;Q!&DP}>`VXU9yTRU znfy1tYl=z^;oS4N=XHRIUcxyy?_{FC9Alz?yv{@)|Fnk_eG~lcA#+S*?pza{{GqY) z{sw+*qBqU~&*}ZVzWPsw{d$PwuQn&1aQ{muLiG`wgkN>D6-It+9da9-e2*!+*=(_o690d z4xuY&7aC;n$NY7}$>o)mYTgXv?y!@|3v!9{68rOVEqJmW3a(#-B@SR@*Tr$n{aq=6;1v zIB3p&@Y@QE^;h+Djm4PtSqq{yV_fzpCry8C);=Y{vbzNDnSg+5;tyml)klDD+@imq9JNYYb zJ}6<&kJC-e+mfxvtdx83l|H_u^vNT6-vUok`clnD6m1@}vpktZ0Lj*QHrDZ_UBQV^ zeGp%P`WT#M4E6Jvd0+`hkQ;Lc<6%3n3|t1j1+Jl9906_#GO{<@hPD&gp2StN`&qN& z9we?H$f~c6zK!&IfyLmT`Tr-3JZdH~lg)h|d97+^^U1pT=(1;xv4tnnwu>!Q+kD;XPw^jIe(#_($*^@C%-cemRIN1;|o>ECuVmk4$xb zQg}9W@s*r&y}u0bJ~PSrP0<<7DqTO5+F8e)uE)@SYGbPWoZFH7RiTxzzIrpQFE|cK z>Bi$YqitQSzqZS~OyAJ~5u5iv`tEPw6C6<&y6er$xnJ!t@Vm}S4|$F=cI3;>mU%z@ z*yP>$k;(hXCr*yO{>&^c(#r~Z{aSKW6G(~*##0t?kyxa~@^~ybkT|smc46MJ8P&|r zlfWfdHy0#%tUDRJ5&Q>;ao2V7TMibl8^qtoB2gV}rx~*Y1<(#uCi!=O`1kmQ#%_&2 zoxzIi8AS9Ojxo_K@P?isjeg$->dbsKmWvOZ>FC+~ar8MN-4BfjM1XLH7JC+8wVPtBr{UHS?Pdp<3XmFOa^pU-UKK4@j(jPOxDo^siHC_3=Hae`!7@!^G)cWXz7#viVnbp=)*=Ml1i-_SF5B zXq?ZyRAU_xBcGKe0h@m_eefwLT`j|56sUIUSX#M=eSr+exvz+nCv%N_GG+eHl%Di+ z*4Jst#%eF6FSfc1{Jqi-`>l(Y(wxpX-w9f;`!O+s{l6*!cF2ACl$ZIVY1j>nkMm`f zK|0USUVn5vbR0_DdI5Y<+FXBx)(6FY?F);82N0*^UsAcKy_Eju&?Zagzp3=Y_IjGu zSEMy9d+qGbP}3 zf64vY1$)AWAtPW5X1X1|?15vY6Mhf1_*u)LCFNzj-s>>_pXB!l?g`Tg{Fwz6P_-(5 zW>W=6I<~gpdp+@&^@%o~f>+z+Ih(@wgI*0Vepyx7>GCwuP8~-DzM9Cnmh@8!&y&F= z!p_Az=zHGoxVlEhvOsF_PU+K^2Vc%9_dw0cHK>BjpjB6RSJ0^Qnz z<8(`da~_U-cgcWP`CBWic;}kxr0YX%rKi;vm#aMP+!XYR$Gu&V`gWh6$bALZIU2U$ zdSc$K;2ktj$j9St)^U&7u7bw+E#OIJEx1#f!f~&FfIgy-wvzoaceuYYEx*B;PZkB?`JZ%Ai zxPTg|U~3xo2DPq~xY4NnwV-llW$>7x^z*;#x3?WH&BLM}t3?HM(w3kfV?7IhWG%Un zF&?ZD6i{mj*n*AdHVvH15hLqtJcZmtS~yTz!ul2FWT;=!_k{icq38A6 z8v0V60k)7u^$7orh(8VnWBn)Z{hL*M<`Jbe3(A%iWhW)^JU0q$aSc(}SBfV_lR5{o4WR;}w zJD`>U33|=XO0T`4Njg{Cu|`nHDwu#RT!K!ofUj}1KNyRL9kHJcWUAMR!ol+ty<|22 zbZJS@t0F7C_JJn#jE-5ZwG>_`^hGZw2n9?D3fee20F3ol_IjNy96ZnQuwuQv@CIo~ z(2JFXbmO3|%kK`MiBSJDG7n)5lYqAwv+N0&M-fwD5>)|V_vUgn>cI>Ht}hxld-S>Kdr zxN%RTEn;R|G#BK&@l*@rpD>XVx&Cq@&q_PB#ze};n#i>mndk{4kh_neQ}Yfh`U>j1 zVsEr5)Lfg9eRqV|M7$DD9CHwO33wlV&j24s?AVNgaLblC!7Cg;O%>^W2j?DauQk=ekpC~+BbAPYJX@jx6(e_fqkD_ZDAAl020Ux&xHQL z;Mjmqd-Z7<-#1OoAuEKS*fa(*C6I&IR{e=9i3%zk`WEGa`TD)C>j$aV(FZ`|8$Kqm zrdu@J@vucB(UqdTklbMo0b_9}8+}!eB40~rzmdg@7#l^~I6e3b>_K6XML*)LMT`=) z6>FMB5}ky25p$iw7r>V|IuwlcV@K>~G#Ta%uJS4$}YEg;f zX^W`)2<1kcRNqMw>#uhDiy}ZEv-*WA@(S8tqSt9)wbGN>LEwj{W~G<-z*WA#HfR5Q z$I})qM<)s>?ZCrnjP+OcdY$2TXn#>N6NUA_u$Rp>vu)u z!=ihg1j*LBdgU*1I-+QYk`;y?;OK4amvz}9H2l8+`dkjyFpB=;wQ=w5dLyOha+EA7 zt%|)M*R8h}{mIe!OhzVtH*kvE7JUYfuVg>H{+%*&(tIW-a-Oc2h3y{s1I@FcOWGH( zMJ;?vfZr7qR~QPae|PX4V)g~}IOE@qD1ZET0HpPr;Z3lWa1Pi3lISOcGP*Cg_P~!@^ObdOL<-ltKr~CX$z0L0jwxEeHT|Pb0;KUUya*UOa>^AA3;CI9oqrh zva=XG1(ZhBOX`{Slgk3bI=e1rLCA4VS-&{{C_E|KF9mbK z9{Hylx73~kc7hC`x?Tc{L&3wOCBdHidwXtRmE9MRsjVxkpLqMJKDE%_O6ZF|bNH0S z(BFc2V9Za}EGe#@R8g{|lIvQFC(BxBwOe0aQdTo9urwzC8Q7OvbO6IZ*68it>~HNT z*#WX3@OSV9P<&X&O?viRz-fTm^HOM^3~J_2u;)ox*;7mfsQk>$2WTB2_N=8Xa2*&)eN%>8o<7zVK9}yi;e>ojCJ}27& zx4~;CkintPl~8`E_K#bqEnQqzS;4C{gK3b96HQg6y#A`BbW(YF2J(vPfXaIY^8VZ% z+X48t{T5hC!vIj_mHEyp{Cfe{ih0dDZvv}v9`4S{fPaxYQ~93>|C#RC4tN&cOg!yH zG!POU|K&V863-lbp|P7)^BWkV_@%5(T>e{QZ(>Ei^=1>XdpQdI@tJ{sVmd(eI}80@ zbH{eT8|WrJaSsiHK((*x_MP$M)F-7YC0I+uA{9ndd-D$Oz zHKp_1ppxsw@L557+Rq&t(CqlAOe>Lzm7jqkf*ZG;KJ>|PO6v%!=MZS@ZH(4t*n8mS zj)xt%B|07mN&*yLirKrZO5=unFJ*hLl>5jBYHb3^_c`@4j+rkG+(qe#pSDpC`8QLz zx*?7H8mCV`DgDc#O~pS@md+FI+ZxCWf8ZX{nu49A|2D{bYv{BPgz8SUzvp=ib`0z{ z;0H8Tf#-0Z_==9lW$a*BGafHn4RUA6fUzK!7%&-J0G5L?(yjpS1b+v<2)+$cG2;bd zNjs40WFTv=1B*evKkygepTO6_|AH;X4$1>rMHzHBC<(m_g!B;c0JYt%aJk7H+ks5B z<>6|PpU^M@R6SD7Gx0i(+H~M)emt=PIRIM;*nvx+{YUUIj>JL4plSM5F{c1JEvf_G;GeP^zIjpw`ZeyFh&FAqbA_o3Up7n|JCKQPfz<00G! zkfwdlb}UurkC2)*gMpG}675U!=>z+U3jmsL&VkQw-LW0`dm1+bx1(V+sD3DMgL>t( z+On!rYT=aiiu>g#cs%FhAF+SnqX9qsF*+GMf(D84vG^B?2PyMgsqybmj<(wIV|cv) zz9?-8e)_Z=OWY}|SXS#CCTToZJJeQ}&UL9UOmEOW(2MIUrUNwIOH4k<9ovELpeqA3 zDg#G!RejSR=VPE*$1r#w61TB0=^C&DKZo|UAhAS$?;Y#E@H{G2ek;|Ulmi0Fi)cA; z9k^av!uk(f$pq}v_pqMiEuW)8xk*?lg#2_fzRB6@r_50YzT&=N2a&qD^yuD4x&@7C z`RPjW8#1E8r^|I?2N8(}={RuuEpz|oGpT-cd zpe$mGkyU=32hoq&&V!tOhdW-{pHtyYl`!a7X-nwOIT`e4+)u^yfZR`Lsh|fflp`?% ziwO>JO$CnBuHpL`Q}oY`{jyFw=$C#txxI*ZXe$Trl7k-|9G7?VqC@CLYKo{_X!ip{M_A z{qN3~Q{1}opfWw(4!YTG2Y(+~BtCMjV36k01b?PiT|UnAKHacis9!$;pC^`IS?eJv}9Cu1ka`l}Z^k=^P9JmT8 z4+6gpmVp-rC(8FZ_pRQ4Kj24R<>{qWRb@O?AtVeerq7r?ZT8ffrcs#p8$Il+0|^n3xjnb<4N7r$1%;@@k)MsQU~E}5^0y(Iqp z6MO^wL!a3tE{DuDg%8`oAApa7k2rm&PMdtp5o)q-`iq~2--nT@J*0o?V=1nLr>azv z0^E9%ZzqAp+l4RwGJ6_HO1_sVUr#4?ze?O5GG`NeupP`Q?GUlc2B-hDdGqG<8(-=L z<;!-+K#=vuAw|l!{n$zKW~;jWp)VO$`LZ3dExJ+z4t_`84(?wzWe5L&7G?*79|B(h zsn-TS12%I8RvNcSH{% zD>MG<_>dU@(Oh~V<$S5*zw7-(;eOP4*i%ql4s|7e5nC2^%=bVkmI^^PK5O}LCI`WB zOFUquERWWk%3n13mA^-B3-)htl?k>-h>he4)iL3G+#HnS> zRw_y;B@|MYN9&^@m+MJ!`~L)aekyG)9`Z){(ke%HCHyw=oOJ!Zyzi2m4)~cU^^@c^ zrBCna{1aapaz6MQrT+z=ettOQHd=qKY*MVd)Q)a`=;14hno@yH5=`#HeDfe64kD^W}z1Q*^ z=>L{GwnLcmnK!`?K`G&5e$>-*$(Hl}x>vd1WQDOuP}^V3JLoS!|55wlhbNmz;a4Vd z?6D>~o@xsNe>oOCm{f3F&@@o@aJIdrtde-FJrK%*OFl4Lt;$h$lRfDc}C7H-`RD<^S4$XuWYWHeTXY zvAV96!u!%?Wvs{drEA?W^h{_HrG{P)-lDYau%{gleP8+5-b|>`)2l7ybi(sb3npE10reT3-yk3yOf&7oWrWVek=Y(YTWJ`_h#@QtNwSzYlF@ zNJF1d`l0$|DEV)wU(HW#eOv7(rn=AD@9*rtE_9_)a(5MY0Vqjc?bn;VdTUQ>oowg} zumM!h6AI^iuIZ5Cvm>T>&I+z=&N$R=qG7cobrA!q0a8J_oWa01kytN zS~z|I%QjH!goJUhJ}dov{iXi@EO!S>sU`XiD`NXR_%BdOk4^Sps{N#OpW0PS254W6 zL9egeu^mQfWmbcY@?UTS7@I#VIBQv{|II$luDw|vIx{8q4qLGunT|MTnz>jJ}WME1XfFT;=Vd6|N{D;lAKq@Ud6)Q~!OFaATb~Im_tY|96Mwa% z2`v2$Df>qqlK8qt#?r=qS$`bvb4`D1-QVY)Az>;zMsx@_qbeQ3P9z$ z3%PtWvBM|RdL?)hm;)H4IdOmc6*Mb zSW~$&_X}T7s{Uk|;TH-Q;d3z`Q@~jqNsv)Knt#PFmX^<}Jfk`b{d}FNe18tR>xHZE zmAuawvFC6ka|q=te-W-o#t&@cd0yGb1Rihi43R$9JjerZkOu+66bq-y|`c&|AtqJ6a3z3B#L`6XPvm!qH3wLaXucDFs6PZZEATVYJi5t`TDfxWzYk6^1 zJgR5q$D$&ja{L-OTHUc7&cr`LzKN96AhmzY4(mjY+M3#`(wGQY*g;eTl>hz4j`03r zM=&psTm}A!|4LuP_)ES!vb1>F{Iau4BZ&BD#>m)G|py&S{ zJC?X(JE9C7jsQ=gVFajpNZx%vuw#-Ug>$m7ub2){xgJ2S)7`NhaTYRN0W#Ou-y6op znbdDCU%8@}|7XEpR0fnkE59Rj9e_|ff-xR_2>b{C9RvFUKEX zFKPpJ#O=uNIoQOJEE;vUgD+b6Ul#mDML_NFN7&xyj_rs?DW4H8NBn#Y7_)=qKkWzj zhl>}!L)^0?E&#crGvY4rDez5=;_P$mLff@+^&-l1~Di3Z922E^w6l^D_%Oh{*x9!{3m2p*yxC7h{99)D1;6 zj0d~-%iP+9m|@9`rAtc}m9dsIb=FLGayI?q{Zi$540&oCNjvfkWZ4NkfQGFDdBjg+ z`98jum4!XVJATUlaeD74cWg(@hBv;Ex0D9PjM_t=yL%u96RE8QSzeX$MskwAMD-N>`1D& zk?EyP3D{9A5aeG4%DjuX&^{@j-^%GVoq z6oFk{hL!(1|CQQ2Ha=qY=zJEEm$_SbvtL&f6#

    #?JDb;ouTi9WxMrPL@5yMQq{ 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
    r1r{eac|b2dlM~-z49RzAd1L| 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 z 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%0Djhz!ljkrHjsXI1hJUiEDP z=aye$SN5hqBlyw&ivMPCUkD6R`~f{Ot3RdrQVQJ;@Fr=zud&p>?7!jhu08^-v2o@n zV;Jule3&=ROei-8;xUMB}=S^+2FGf4(^oi6%yeX3E)hfvU&YqiDf8s!f(WO8)K<#L7 zoU!Y9)K4B-`rfZU#ysBK+rA1yWuYN;0ki7#e)PC$ zaj}v_s-oxr8jqOu8DCfG2^<8-@<1S|+_Wf*{B7-xqwB_Fn{?YAm(MCDGuz6jnJq3a z5<46JVD`7kfKg7&F8M>zc{Q()D;tWOA<0#J6?#S~_ zpI&<*^g1E<@Dp$@{+22_7F2Mq$h3pI?ChMiw>*SN$U4c;8mp)ryf-K z3cMdmE5*<5r0jc}^S|V`!1Fmh9KT}NkD{M0NiC=+7@+S$upeXcpCEU7>faXMQ_e4+ zQ?BP`&f(Ddx*W&qck1|U_55~_|EhP{>on&$OVi9bo&zzSX91#*q_bL&8{{?Um&fIQ zD}CqN%sC(QjIKHO9QHsA`(R)sApW=1$Lc?M|4wC1$gzxK>u-E0&l9&~sQeoTpVU6h z89+UlyU#hs-p#L>6SjTfvNjH^zi0K9_VB4KD`ZWN>aQm|(qC=Mh^VkV&Ac(_TK1is zBIkM{l4@+>MyY z<0i6|v(2Rb#D;>lha`8%cw&|%5fF)L%8Hb%$jAzazbmy(yj@iotY0gmAoWu@we=U8 zQeUa7%narIpt6>C_;B7)cAwiB-BlH92amN+bHv?|p>1O(X6`rL`3ID3mg6Wrfpo__ zo~6C5?NwlWsJ*Iz&Mu|tnYm&}Wc}_;AY!k;Bk%ht$Q^tYF#&4_1M5yL$3K?~KG6@F z$7j!^e%7AZZ)p-Qn6p#xP&`-c=S4sfAWBO0pZN2iMf#OuO)>My>OGt5*S z+*!t#_%tT~KLTVB_5>8qcHTeMzqE|#haaB^JEwkwVy>5tbFGJvyxaLV_i;QOawIeN zHh!}JU%wp0vHHurr?W1L*USa1Blg3)XoJ`D$UA`dyq;g{16=N52%2!t4=f3IqdOyc2lq3iL;6U8balk%+@^!sCL4VGj04xO9J3H5TCGfXf z@4lWnFV)-cZm z{I!00WX!66AaeV$B@S|zlrG1K%qs<}SYR0?^hI*)(>$4q{tqOzPwXk3ca&?4wNKB- z;HRr69UZd}9M&(KyVK%((gwB6ykG30q6ABmJoHka?xxZV}~2NABp_qgdr6N&4@- zu5Hc#7dF*@Jk2%l53UCGdF2=4(|;19*ki{Dv59%aCg!~ZY>aM|`o-;z8677Z{rE&c z&>fQC|GeZ}K6`DIum3;t$ZA%5F^uS{B;ic;XJ8&{?ZCVhO3KWWtrQHl`Iou#kKoTI zavU{Yk*Zkbx@|vwUO+C@4)CtA`EEXL<{t(*eQaZvycG_^feC znKN&o6`~tH^~?fdF$;Idoykox^GD|k$`99meK#|at$APA8k+e>b1(q77!Xx=2%vUJ z`B72Ia|^zCjJ;nXbn&O>pM%HD^vL{%W9MU-`DZ|fP?c8=h(9fH5i37|IIPBHB5{$J z+pTtSzVpx2F5U|5p8)4WCQ9Ds|IpFh#mB13hRWYD&KH!g)}OWQy94|eDgq9~uq*=B z0NsIb`vQE8xjhkn3adyu|9lWKr^*@jYyQvVKvK|tt>avX_ptIg|41(6`GxuEfOL3^ z6l;BwV^8K^-=aES(o?l3|ANCa{04OV-9pvnsTaF9qDNMXY~Ua|{yl#sxY;E>|1{uc zrC}C)+tO0|(&*D|nQQ;P>Fi5;#JDMVUAvXi>v-hO%pan3%zS3GB(uQf^JUDfm7<`2 zmtKxl&f3=RK{?TJ@DOw!RMH%X5kCzW2#9{~2`C=R$+H@cA zC?G0S+b8yDJN+hKm6rW$vCa=|f9(PdN!x=hT!0;3Am%ozJqr+6YX|Es5&1v%{vr~! z0QW}6#Ut?R9l5($-S| zS(=G%ugv>}uREN4A~bQdw>vodyY@cHvF-zu_Wp#QBY@^1-N&a=}Gzhpt%B(!;a|fatt=#VAIRm*yQe1rTp1IoIrSgq0 zw1An&f^x+Zl&g@d&(6Bas?s5<`eNdXQ9VmUdch>u-;ZQpa^+rAto+!Wlzm?dL>>JPB=z@RhvQHB zjZuH^(T?K>7gba?l!b;454Gd)*?7W&e}Ef*azP*9U8P|bi3%sFzt?1sTmRbrb^czv z#E>hsWA?h#yKwg&W^pK2Et zI$2S@yp}4k!)hTWg!ak4gKZ_z$fZ0ce?!}ef4DH+wewFL<4Z|03s2=&l$r=j*gy33 zar%goii!~LW0y-6%)$of#>!{gu4A~9r0x1GB!38;BPCk@4|p#|n3?L3hQHF?Vf!NZ zsh#3S+b--6WGa4%Fp029>%R}2FQty3n}c*M$qwm7( zQV~}>@jDkTaqWDX;~9ciUWM@>rg*V$P%);BK+Z)RjKdYXh{aGay!|TJZBZ#;C*I63cpLau3;9eIavV){gLnHO_u~(9+O$ut#g*I^abqi|WT` zI2XQct%@cl*Tt@%iTo|Ba_xJLV=+4-zium z=0_7GG;w0}Um)HetDX(oGkCK*DSq>!B3I)td8U3dvzJAux`xLcgMJ_m9*?PBF-%0p;7fN5+ zx6tV~)?F7}WyzXFW80!HdZg3eyIADRsOl;9p)HyY%oK9kzD|GdLh&QB`n?O{W{ai* zOB6p!+xI&cp^F#Il~U-&WDk^IDSCrhbgRn=nMg8=uD1tm^jF~f76JXX81Fmb_p96S ziVwO7J-_G$pESqo!pD0#(Dr^{_me~q+Vk`-t=FGB+D{U#OWgA`-X{Ft4?p(24^HF# zUd-y{smOOnd)_|}+DnDH=r6VZ0bD_UV9^TUx6C-SADJgCdK>V^`akV$X3?wu{Vm7c z&dz>kW6@tNYL$ETMlO06*dS$5^?Xy#As*LvHn?8C2kIucfp*H&k)(SPcS4VNs3f!a z5PJYImpIq&UWwC<*RyB{Pz$U8*p0F1BX0UCaEgB;*NZ*~e9y)IM=;89IB#ZekBm2P z?7Z4bF}(9LU$o7A{-~Z71x>$ww_h;Zc)6y`D``ZKCDSmxL z&UOU8|IzGup>KHRxSxC7PW_wLEp@Qx)e$iZo#>hUukrRfJj2_s_ZJ-hh7hXANf)O$ z_$PJ?3rq@+;l)L?7hApfV&z}(efOf@KTI2tkyBWlo}1G@b3k$5qQb)59GPU264t{y z&kuaZuI2f9nP+M}B^O;ozL*H};#^?3j-QV+E|Gfm%gD;SBqJZ~NqwZg8`9GXGKzCA z&EYNm1q0LaGjj$M=NIucl}^-G#%q8tLQB$~NIgYAN1kQ%#TVxG1u}DrFUpV#C(OSHT^VOWmwYkv(#5PvFaB+yUZSt%fAYl(fEr-7l^6Yv zL3(~BZ@J1$EA9)|`n6zK7u1iqjM67xd>wEz(4_sh6^Y8pNH2tHT3#Migdgqk`6>9{ z72lbO@U5q-7x@z5-5umse+2qj}nfWTe z$QKjGTKs3=G1bGb4M;1@xHN50abAAzC7Jz@?!2@?*)jyOGYSXh_A4$NlqW(?O1R(J zuNUzOtrz)X)&&+be_H%^+m9C)WfWyliR``^`BpI`fxcK)kz?}3Si{A?09I@Nypx`l zTZH6hk)l(w5vb)Qf9eJt|9+tyLP|*emK+-lIMUIfv1)JM+Ge%;hREB8_~MS5<2zv8Ui+>46xlF}3lsU^1W_?RO(|*_*oQ$~f)Kb0~eyTV8JmGO1 z_H&MO^&wx1ud`J019Y7HTO782{lw{au2XtZL1Auoz_2EvpT6emL%vjWz=^=OwV&Qo zS0`h@pyC|9tyYYM!|Rb*Nm9lu`_#0b$d{f8oCBmPU*5_|yCf4|Tgc-?y9R`#GgRPyHd491CMg*CVoc{Q>s|Weg24Eau_ffthGAZr` zQHKI6CYKOpkS~`ep+Amt^&nr0zp->4Fj@JrAtPsCT24B>k%JEwG%v}J&pxgm zW?-b1PiF7MX*p?Gg95qJXvAir#$MFuC2a3!l zh5sixy5!3S1EoN*^)qs_qT|p7$*?2ebM(oV)dHh{N;^*VyARki4Yi4(m$*W1esbjS zWLFRJWs`uJK(q4Ulk~K_w7!{HnT44dUA^8C(O0K9`sB+N0xN*|w*Rwo?c6yj{eP;X zOTO$^z%9TpEdRxB_7io$L@hhBpg;y8_AEL4Pj&SmUxrOz_7JdE_0sxi^44$!>O`L; zK_8sv>O;QlPr&oQW6GBgvNF;{MT*~97^SY0QIFGIJ;;~+19$^?QTg&_TDp2#b}~Tc z6b#JF(}g4Aft_4uYhO>D;p#)a?0sMh@V3_HZB@_&-mILY7qOznB1vvmX1bl_C#9dT z8LBtQmov{__BpWK%8fsrMrMofj1ge<1Or{B<2$grp*`SOc_%YbavEAQr}vrwLvotKqC)YmOxSuZ&WeEG4f2l;aB{&MX8@}F6~@6Qv8 ziPy2V5SYRwp&s~qDj(#_>wwWfrPXgO*6Ve_Ew?Biuic+JB%waUpR_*Y%O?Y~fC*M! z`xoU{<(8k(KO>(>UNYhg=Q{f2%NGNyfCWnb6W0-eh3_P^|0j+<`EvY$<@f{3uT?#@ z-Hr|M0FprWJV%#&`CY(+z*?2Z57YWxNI+CpbfcphNg1E#yLyl>|0D1$@Tlc~UnT*8 z!H^t%iH=hFBVURSxb&C6l7#uaJ{*6Z=J1j)r*!$dz-!i@$;l|xrKUVtNzBEo$!DQL z%wRJ5nb?`Ok9_%NU^}qUjjzD^L{Xkt#f014zCD`Z=##I&Us%xt`d?W6+pj1OUj?%2 zJ`ov_?Lz8FC7~Y7FO(1D*D&8$aR_jb^5G-ti~?3L*~{UAGdlhPeoCwJNI!#1@d{32 zl`EL%ulSm-8^6>)6U#yyb8%ns>@hNz=I9ACZ0oG~(w&6%qD!@20yhEXYV> zhm5~1%Wh1R-b#x8=KeYL-z@KpmtXWJN;Rkqr46=;}ef0(-IIm%uV>uha4}E@Owt0Qqhv6Pm8w zx5qfq_RDy=8CVP4=*A6pGO~7;B>rFM=##H_0C*I*NBRFwR_1_#g*g)C&bW-&L8f?W z#f1YivXfy?E^_rCU-2}s4tP@ezcV|xA397zMoHj5>ypZU@)fTDZvroA`#)%ZqgWE^ zk?rb1zT$mg3-GSW!RD6wC@Fl%arDVoiaq}f*ly`F^aw$)$ZiqXV*@JM=*mICm+%J>9!!Z|2!q%MunPSvQ zNvIEXP`*fAu=6Xi^D9eizxini z?Egw@|3A=u^l3$f?C~cuYqy*wZ60%ps|Wc?VgxG}0#j|jxh+;M5-MleOkS;9o3wtr z)YXT4Nwkw zm!DCfwz*$MdRAtR>|#wT$nBKB+ETwq{MSLQ9^@+@0iFaNvi4H;O|W$%vPZG=`^MX^ z$K|db+ue|$}{q1y~_ozBhii|jC1si_KWBne210q0k5mw+$3f~9%s-U zyev%TT$BX*KXvrUSAGoa1U6ay+iE`?a-wm+WXR{0t{&v8_5t>%9(!zjSm&jerezk| z{pH0xbRu(9mV;Tgr>l~pe}CrcL%!+=02{vQ5UtPaZS4E@hqen8B%z;*U46(`9S;!0 zUv-QfH_`h9(=v6lfNGK?)Z^!_9^|X=B~}riTXm+^toCeKL_)k&V68S3gozG^fu5opwY`N;K4 zWEnXbdL-oNldr-bScN~ZYP!{@1%q;Oa|UJO#c9{@2wM{RW0<2)z6$%l3j4px*?)hX zc(0EbCTrXdcl9D)^&8-B;8x2Q)vwN3O2_smCEkkIZV_=-C7Jg(|*jaLCr zLVd9R+8^YrWlYrqBUCOnM&hx3bF-5D+%|Nz9zuUCFd1mldc4zOKY`OT@*037@T1Pv zgM9T|U+wNuc1~t-I?oK`WJGWGO~!bwcl97&jbE@DzhLz$E2o4+GvrzJ;sN=& zMf%`>68JFE(I;Px{a=m!Uv2IG$9ZXlYQo#HlBBO19DVZDzX$#ZJZRTPiZYAyvWg^_ zmV|aUI=bYmvHPpB`>UU^{xS2&zC0qq^CE8HoiQp~Ta)S^H@W(duYLn~2Y5~8;1ltK z`Z=|&>LD5Y80F}bug31L-T{25{CFdJ9vK}k!Rs%F#-~cpdNPldtIuVAI!J zpnBrdbT<6j{Rl~*+wAC)uR%ww`4{jP>))v#q3@dDO(!Ch|AqY!M*L&m?;-gb=F)5M z)7O+}KWx?dB-xKJj76m{V-g#_27R%nTKnNMyPldHJ7Kyxy5wu70JDK+tFQk*=FMgw zS0C~<_zr7U0}HLb)@RJzQ!&ZXOQyS{Prl|R0NcIhx`12~j8u7WK~XW|19D`KUXuEU zIhx7^`I>tH=JIRqQhsc6)1PqEJ{j{Kv!A0+zUFE6Y{~feqvZ!nsyq*iJ%=YeTc4T3 zNR|D}Hkz;ecqFm?7q)k4kDY%;cCcTRnT6}0Cf6CHi>HQQM;7aO_N`qBQ&Pu!L^R{L}P_a1eY-!0ew+g;BwJ)B&SU$Z}O zD6pT_Z$o%~E{wu@%erY_UApc1elqwkIzGs+`6hr3zvf7-$9pa2JxN`^Fuhzo$gepW zz?NTgqRPuAU7rmGPYRO22l_zyAbs%@pdavK%Lk=TuuEcGxw=0H$D4QQB}HEx;Oaqs zO)hW=aG|v)`56Ov;(;CH|Hs~YhuK+G4f`|6i&zjrQLxZK5fB6c6+t{Rb22$(X3j7r zAqXCNktRwL6e-d{rH2qQEtw>fHt916DU(ckrlrmVLK4z@h0x@8@3q%++9ZD87qZ?z zeiw6H_qzmr-nGu|d+oK?&LKc4^~g^{(tM&5m&D=-uQl zS)Zn%NVrA~>^W5JLH1{l+@E!L|J!_=YQjaAyDSm z8G3G#6o_M>|5??K?2m7t|C=z<#|5X2TN1S-b50JqV+v)<8qUixns@%8b|L#W!dz&O za@iU#=H8SKQuaGUi~ZO?RX?&n`-1-L3;MVD_Tl15B=49HYD_v_GpL_`sU67v8-Trg z|Mx^sYfd2>lBhdzjky1$L1iq3vfPfITUGH$lb{J1*!P^;hwT4xMrIlNhW;N&Ic@3{ z&f06X7K`zor*3>dLY6V+m$6PM`?9aE{3s_X?xZQ@N~9ax49epLwF6mpG@JxJ{%>uF z`)O24Ow;(bc0`s z9mF5`xTs=Z3a&ylah^eWysUO0%Q!12>jinfJfc2kO_Dyv2=t>f5t3vyuDzmmAj?<> zl(7ydyF%;;&fl`TN4WSObZ2o&8k9#LwF6o9N5C&xcAMC-Ca9NA=k^Bc#SG?MX&=Zk z_84VP!rx?^-w|J`24QIy{iLtzN0u>$mAUfpc?93jqdkU;x^vsyp!{D`y~r}={W9kL zvi`pO_jWJVuaph!z^@_Yk1S*UFJt~M^Yj1G!0$*-Ny#jmSPi9T05-7eb+rpwHUpZV z!LQ%N?-8Hme6&4BDS`8Yj%#2KXE#z#$g;(-3>HW`-7fYd;?!*Pm#Kba*;?2Ft3>}c zcl*ahY$rx?gWq4S`jO?C=>7OFm-YGB7ewF6lm1^fZ!dD4G&M!F@h z#f;|tYSoV{zZ!0W%Y*oEjl=eXyi3g~@!|=eu3)w znH=BfO39?%4pw`R<&OgU;_`?5I!%TMKisFRj!f)eK9+urEN9JF&OB89ykDmUaY*ci zC7)Z&ZHi0tLMC?9s2#|1*LH?Om7jN9{D8akk;pi2&~JvSeq{N0cnije{v9dzPOakR zhN*sJ`Alersj?1OCH^S-41WJYpQDNykn5)fIfnN=DSv4ft{&O}k5c(Uzi#vKgznrS zS98?|GqORwj8Hp}iRM&s8g)sL(=22O_WO1-R1jkAap z^d$d}yHKW1ESvFkwAzELU>#7wI-tVm|Ji;?X_OmwNy|oyb}>fvBP)IlVfd9FzY=~l zcY@~z5QFwGR`nw*nD;A~_bYn%c9~7CpAe^}DUZEajbrSsWZXbjTnRV8<=&3?R>oZy z;M~$>$;!6sAB^E*2eRT0xEF5Ke(LgnWc$3Fa#kZbA&mOT1hoTM@d!Kx5BPo(kGshW z_0U{H$-y@^?W9iaK~}r~_ya2b<;RVzZ~+%6xQ`VN5i@9~^{O9P!J55-`M#oD^zY2; zm5r0vAH4XLpn?83R6nx9wNd;46+ZvpyTN)ip0idaljKl!1AG3h_8==}Koj`=|MFnn zm3|L4m~BnQ5z0gQjVl-S{}t^2EByX{n=b#722z9aVBID9kriuU3k3Ur{K|5{KGuyU z>JoGs=%1+ikrjI~GAr=`RP2&*BPriQ!b9X&Vf$^z|MmHQ#w4{1S@~5s91fO#N{soUuLlPdl}Ldk;ot$1!Bqw#f$+J&tA37i9` z`tgi6g9wLk{s&D{X;Cf>svlX&zQ2-vf93gpd=K_dI9Gjsh?EJ~s63{sJ;+M@|CPPK z`~TOnE+tW>>?V9SiVr0F-G28OuaYrM?Lbyu1^E9fz5jnr^8Px=$6$8u+^BXSEB^%d z!EI7Mt5~OoL-}rWbvLtvT~<8#ug&~BUF|_uJ__vnD}DUmDm{k~LtKzq>e+}_PU}USveTkS5;Pee~}wX-0|*z_q7_?HB0S6Rn;k(KxXD)9qUu9b4wOz$PwipU~KESTixwWyDIY6r6Nqm0a| zOynN%_wVs`7~R)rT`2toS;hQc#r$98=l`8Lj3;HXF{uA$)sL+DE*u9(`nYwMuQG?o zu4t}--WJu1tU3kGgdh6zm0&k*((mYJQr^g_^C1N1`gtSBlH*?HBu0nJ65`%SYIp|a z(5Chvt1gC1AlLW5cpjnn#?3(geASPvx*V>7UcNl!ogVI)IiI9^ESNwcl0V8*rG6V{ z(GM4>J;xS})h_rLwu}Cq z5+>!A6ziI%Uk3Edq>APwNa=>YDHvCY^VTEs} z1d_{+DSn$WUJ54tmlBe4K@PYOa^M$!9_*GEzLdyEmt`=1kuKTGZDJ4WaIptDARkKL zV&9H=zpprtwVAw(dSKgeqMfW%{m21V!VPeljQ8!bA>jgo#8Bhxr(D$YpO)UrVm^LP z?LrRt1Kb0*`tgOXEm?C-*XxXFQZL8>55nW{SJA(vN4U3t{)#)UMJ3s#B^L39t5rX8 zz;nW%4!|cjfIa+xi85ZS)cb^f)gBDq@u9GG!wkt@87EWkps^I=J=KVIp$rVlf4ka&9M}tf2PIPe@q9xG54nMU{Cd(akpr)X zTj5$M|4;Iw1>B)@e+GJYs$S&4d*N^JCqGW7`C0w-&iGSxM)t5Lk#ax|d=mZzk4k%3 z8=Nb#wsaZjlOkIT%4N6OfgJcMl*7x~9wJ1V1N|SUe&oP6fjNBOcz^Ec`=va7AnAR0?3UZ|{(+I?UTV@__o!XS zf%wD+GM5jWCH1l`K7Yk`W(MW*q3TBtWDh-%b@sq^(Z4kjZ}hqMqx)W0ex&-51KnKZ z`iX!4cYS`Sh=)1kI6|XIBn7q2xPjk5+9$F)6B}4Z4E#vSVV94S?8ft^>PG1NEsvs}BR_@ajYSxZxL8@}#8XT`u6U0$(x)?SpcVazR!f2h8QwM@zYEiRUZG ziLlCZ7X%FS|3~#BtIvX8z)z$c+`X^-LNe9q<%FadYXdtzQ#+8=Sr7rA|9^vwABof6 z;1MR1c1p@gsShV#$4Bt`Z^7sPUzX~3Opn)$kstHGmrED=ifbQERx{66GtXCF<=5Y7 z^Q}BDBR&iw)7-}0Vm$5AMeRXWGyhjJ|5xk$-=iSfD=(ab`+`@^HBc{U(lx2CE?w0g zWHs}DHS>S9pa0hfc@x|+oY|M4@W54TP*4A(b|9yhr(zWBzA0y=l7SD8Ey^9wL!HQtOvS$N$o&Z{~H>h&dxekkMDyE37~y*hdsKl$MY3wyq% z_8<2ayUfwA_pA}C&Bl8drX{@`&MaE5ByfC2ltza4H(3pebA{= z59Ftf=dTFz+NEWPH)t1!sy)a-A?OYlh&?OZ?NOpsd^%KjAtH66v#FnNs6EKRw9!HM z6$WQY{Up8f==zBJ^W%D_cQJwo3irR=E)UMNGFg+l`f_s6wQw_B>BsS`yij%z_nrXV zmr=a9G(Wy>-rsfcKKBoqhpQdPL3hIaaEFx37Cry$UQ$vRbGPEdMF+l}WPVfiBL_VS z&w#)Gw?1vXVS1jG`7N~rIj9em!SjB9o7y~Gkfc0Y>H=z0)3@(`yV!UAFn&opapPDG zjDmsEk5;+&tK$c3X%AUzJ3jF3<=bixa?qPF6()#1%R2QJ|JIn>fNJ(-gZA?swFfz9 z9xQ-a(vLQ{!7kc6%p0t%6yrX0>E8#wT-aYqJs}6N9vH-WU{Ht5JA33EV~+nU#{JBr zR4;N6^Zy{`|3QBK-x^PV6Yn_&<r zM&e>HL0;oc-fmgckB+-tkb{2@cfj>hKkM}!-o1p%8nDD{GI2dAHT=Y)esmn}f*jl*20~xokDY%)`f}Q; z+oW7{Jnn)VJOajn=KmLeWBjtXQUCp(pAWhq2Tz1X@bCZZ@*ZHh{Nuw6Eb4)A+|5T_ z+<4v!OJI)7M;&`Vr|A63oJqa>KfW^FKd11yvFx;!4S749jA{iRtFOf3(JTjfjb z!X8!12|0Kdd<@%sdrjW2x|1z=638_di~2f7?LgKs&JMv3T36!FnFDX0h2BhUr%n!G zt{LLwVY2Vp;p1_Vhl~S1j%I2*b#e&4f+45DalZVE!rk#xl?>|xXB8Lozu`on_|2orchhG|eP?4`sW z2o8aLzyIg<|C#}$pShQDxb3}I! z$t|TI8HY{3Ia}>P*3`lT80N>1gkM(f>n3?*4cf=g)DC0~F#MX7! zKL@8=gRmG+&QW`iHS?hZntiz>@;~cw7sE@Gg`>&1cCOlitXU14V7Zjbd-1q1H@fLN zHa?HMrqQz~7ks|bkC8R+!>6#rk8k)FOG|u;he96jB+xc!x(4lqJ*e1$9C|Pu3O@dS z-CpAVHR9I54(2+s13465=TP>cLyz$5dGRB0kE_VwJ%P+$s$S$!)@nl;=ZBss^{^)W zU4ulvScBhxzS@Bt>TLN9oFnb?-A?Cxx&w~8TP@n>uhbso&>m0(-Ml@%K9cf2b&5SU zD4z?|9^_Eg14CI4482s^#|Ps3E+M6kMLArkdXYnKg*)K}@k_k3m-#;kP1Bf4O+#Q| z7k(q@FUX;+1BS8=7Ni4sC(OFh|CT)k$$s-MLq%nS-gCZc$$x7X2be?LiJ*3G3k?(saOd?^5j->amRVGD0Bb&10TnctM(y>9RJvAcy5c33Qioc`xqY3j)Ob1AvLJ1&exOO(Nxj9QHf74leWKulNVF zaH8!0x|PUdLpJr3r*&JJ|0J_x}Hl z@z;#-*QG3bEXw1zY6o)oP4EY}LH5}nl26B71Gnj)m#bdn@cZFmxZAI{()vem!t0-@ zal@8HIb5OkAcsE-?E8oN_`hYT>rnNY`N&}nL@?;DtofvUAcyyZD)8t3AIQGSy%%Ru z4l&h>96l6A!;rvF8RX$I_`O%EUgYpMVJg(gys@FMhK- ze*gY`-!r;F?Lm(CIs6*V7JJ^6@k^amlG>wF$gF`qH>y3z5%^+8u#X$zQ#;39tD1Chp%(TwE+H&Eg_wcZ2qEo7#aKF&xIiU@4c? zxp~nnmjyoJZ;^I>KEa|~XrIzwTsxfzjqrw)3wfHvN7>oWZD9xNVX*@_Vji#_7%@lY zn>~U5)@0tjL-is@F#nHO4Lbi{QW`D|$BGy=eBIlT@NdLd zsdnXYm)e0Gc|5SEA9;-TZ>0N&e`e7y?pFQCkw1g;;S3osRxpkx-YxQXcEhPlRfG0% zkJ^JAnFZ|aNB&0o>8G5R+SLPdn2Zm|k@$K>vVR;ImEX4@el;qwYl(>y&~;n)j;2d! z;!b;9iZ!c#^JldWIg+*5NXGY(*GPNa;Pw%z&e9;mi$VR|r*4neMUET-wJ^Z1dlK(7CoUAarsYFP)=9_r`cly>9tu2|I5-&H@d_5}Db93$njK7Jn9 zJz83nl2FZ{ejZgjkhQD>YFP)=o+);0j27{Ll_bG)eb}8AbCPZ~&v70s{TNvrhCKL< z-@l~AZ3WwXH_-aw&7yuDS9_4PtP5&c7t|I>xwyOoDes&S`I$>53pW1-^}}2z<$|oe z5!g@FUgOIp5xj62A^2ht)TukXqHs$lQ+J&s`2UYN@_mA*?O4L2%%l#PA zCAvw#pj;>mDHm5JBVjxYk#gzSOFU=}{X0^ivD}FjgMnSos$Iz1NiZGW^yR|%k9#6o zlz6DcK>t5fKeDz77Q$Rvw|(G-crrJIds*}s)~Qk-$lB$w7MA+{D^Y!J*zkK^=3<_i zE{Fs{p*HRFUuqAsb{l*Eo24GMxm|Clpm)-dr9nMBr}~kjSPzV1Jy83pj34nhhf>ls zg>quN4(r}Bc7FzTJg;^jM|~5%3x|pwYc)M|A~lg*8+I!c13MVEqe>S;rAC`#%KW6)mMb4q(bj=Bl{0N43;yYILC4D9Hmb|6RH3+%r} z-L3mza^6OY+#!I0-d9yGaujQ#QH-mj9`*A`+-v7r1+gI67V~Rg)sGzIY$%79d^<>u z>kke=jM^h-4bl#fqiSFjREr&)bIYci;OHLSUlorgH>eNRIARBKR6R_F34UJnd3VVe zV=->Nu6mK9W4ela&v5aR%w3=6rkbrbvcmT&by z?f;j@&-W|TKICZT`_bQpL;O9dz`l5#xWB;7=9{C;Aho*d#un|kQtd*HJ_$~PWBt6_ z>0VtTfr?mTVh{TjsYm2!)&Zkg2aG;T>Ty%}Qg*&RGX%RBDIPn&_W-p6IU0Y!X#4@A zvwZ({JW-dE_NuW- zzZjx+AV;$X9L>Bl`bC-N_7pqU7>{n7=w)t~{)imy>S6>``Fcn?zjbG~@z;h->=>$c zAV=fxA3X)e%J{i7(H@FRapX##YR&PJx*WC`KZmJZ$kB744b=bdhbR~BkljO$?1E=^ zEbJJrb|6Q;1FK+(jN>cz)lS*(OZHlm`l6jkyK(JhGwgy5GJXVkypxU&4f-v1Vzb-I)ba?J5?3LNdnvtD8MY#G<(wBfoyE`Jrrz>d*s2Xf5W z@Jl#D>{t_=R~3ar__>qAg$(Q%qjn(2WI+Tj^7CwPT~7nZZQ8|H)sGxg43|Mv%3(vA z{ut}%l2WVl?Qv=cat!nR80PyiSNe5eT7DL{I(1G%x4-k#u0=Z?ul69vF#nHX{vYG# z{|)JRCxX*mlm0S6?Ldxs4DcV1c|_XBHrDMqrP+zsP)+pLsea@b=KV3u`(s`Z{hAll z4O>OLh;B4)v8R^t0y&1Y=osd?F;(8r;!Y4^EC!2u8}v)&c+ra-S`q}Y z{FJPla*7cP4z?}Y;lI@m?i(whemvUHt zshnAKCv?t@m>A&`UfYaQl)u!6tA};46;_EI8xwJBSy?`)6J3(x!7-e_N^a( zm(&Y#?DydWI8y3mllt%F;rm|UtfT?kzz){qVh3{UPv9IlMdpv?De-)owKp#s?U8sO z&A^@pwFf!&BIpL^`}s^F3CO}q+!E7RQ8-V|AKldkbthPiBU9BLZMWbK#siw@ZFES)!X6U z2aUzkeIq>l}jOEf^kz*f$r{Do;AMgI3{HG@Vju~nXax7c?6s##;{tBHCqF5=!k}K7)gI)yqv0etO6*zY zqO-`EnCBv5-4sIxRzKs#BP|Tic_$!NuKMD?EY}#q7>PL>d z5OUyruRqE0u3=WqJe*Xfs13B(ixD$Tw`)ATSpqf0(K>tG3j~w>^JPP;uaZ29>(uI!C)*#Km zq8%(!JCNi40WZPRQVv`3E4g<7NVra%x_fThLO**(87GnB$^jq#xYu-CC@v=QEW}E< zxJM)}FP0K_ELnIB>V>&X>_Ltj1$8i7>P7NFF?Z>@++6{3Wn$D%+SLx^IQ9tRSZ|D* z==(|X6A{jsNNxdRW(jKzgYxK5JCNgCpLNpb|5>B&XoYffNf?GNmf>6PfE(CB41v@O za@;D|2tNPM`T`m#tMZa4E*GCnEx7n@V8`2P2Xfp__z1RZJV)?;#(}Gcb!_ziZ_fXh z$ItQKQTveN+3%101bLA3rRo{;0e3&+8?rQP!G zTJr3UyO<1f;as-_+i$)5_B*g16+4jQPXm1T<9{gSuv+#jkphx5YbKmTAClf|Vh<%G z_8`Zf4A! zT4HdB<0G-`%KtsJ138}gemwL2_#1tDNb&y^_r_nEZy!Iw7$)rjIsUKkceu~ji^ONS z!eJ9>RxhhnKXN?t{&?p7@lQ#;Z1N+7-xQedW7nu1$nj-R4X=qE_|da_FxSQNWyQAx z7URWQwF5c67C28C@ALm}W(`ynaX0qPPFP@8FZiydT_DF#2K+7K-}37*^4{i_x&nz; zia~#6&n)_p=JXkHiPot ztoo4?jsSf46TTtsVU^^z$&QBn<8t{pXhW_w$TP2I{bP&TgPd>@Ft<-QUdm%fsI(~L zeAK4z>u|0l?EyLA9QYNSCHl9?y2AP%E&eRgkDQPLJs{-UgXT9(vcRA{Y*+or3B_<3 zTq5h3|3rdk7cItT`kwr5>=x7vZ6@Cx*Y=Ve@2 zA^iYnuiKQyIINHtFq6ECChP0>)gI)88es1}VSxCf-wyKFaF-jC+@?KN9Lft9KKVIC|1pZ{;Y z%%?cTDI@!QCd{MKkB}4Ct4>%29ljqWwqp`LVbhP;w~Kz{1UHwscDzCR5wUHq3X1r@ z?v>8@{|@~5BYp!ZA7tI(a1{9a|Jz-> zW_~EK3N`7^pQ?Uj-HC8293%baJ?BRti>;Q5KUR{Lx!hY2R`v8BwFg;uE?fY5|8F1n z-EH5=_)P6V*5yJ0`1^mWS(gUsO@cy74#J{@4*a;%CBxg}WOWJr7NSyLE7SZw>>6_9 z5^o}v)qdN9HwC?<*>POby2)BdJ|FT;agfvmd+9)P=K zee?q3cZL7k{h``{ta}&m|I~HJc(FRMo{w+ls3Ezu>CLgQ=SOM}vW~q~9qYBaO|l+X z7oUgaMND@{9Vz6R7iD8mKc}c2$a==M`Y&ULzyH79tJkRO;#jxRf}l(c?D(YK^N8m(w~s^wBh>G;drU1^@(=lqbp<4LS5P$ln;If zu>)DpdZ3>5K>gW%A0Fi_s(VbM8wn<`$amI--!1yx@6Q4J0QFfi&%E#Bu}T>14Sx4e zR4=l=6fTELr2N;W?PtV;EnZ}cesYG|fvmp{ZUKM)Z#zCH$#-1HCXWMbn|c0B)sL*d z8~zGD{(pUNZXUk}5Dx`2sE?nj9mx8};92nT|2y*C6jH)t(>lwVj8|u=eq?^M*D zK-P0+P|uuRzedVooA`+n%U~1#LYJSbe&j?qkK<>kf8Wnjdw(C;m4uAnN$34yZ_+=z zHsk(?3P^eXZ`)xR8C^dVGGAmSc=1ZO3!VUa<%@rZiO>owU}#3>ONYQQzzFuzMZga7 zrK{kN{P!D?RWJ@3VIiyrylXGBB6<0Ha2i|)eE0J2;C6Trp5uS_F!bd=^UceA^UA^S zUErHnm?>Y$19ph7+zfw#XW%s$2H5!ut@ah{d<8FSAN2J(5?Gn_p)~tM;4fmLbW z^PvY^0est+Z~MLogMgmhcNTQO2KYE5^R=(TvA{_DS_m$ItKm+d{9ohS*ZB6e2`~ee z04?*ik1{g*eFKgMMy-BXPz2Wkb=Z$lz27UqxBd9G-*n*He(Qj5U;i5X08R(W_H}H2 z{ax6~Z{oMSdJ6ms`1gJIt`9o<;B|ZTs~MU7p90Fg|4^XZ`!@mK_NOe${s;KJjIt=B z+{?N{Z}>gj4^Km1;M+33Eo%XKdl@~goN_GZ+j71w=i73=Ex#0Q2I{Q*A5aD(VG^{$ zO4yZ=S#c2XZN-m(Z!2w*tKt=&kGu-vabj((^0PTZzq; z*j!0Ft3+>Qe;5S~FdwM4yZ-e{xvy9Avhrx01Q@98Ufi^qvc6bP$he{X? zjj#~tTLbA^)s%Jhcj3oyKJ=jOX|u223jF5R`OUBMn_sVm$BYgBAgL2kp+t9C8T!0Dc0$0c;*}4crBf!pkra#=}f# zhYj!%FQp#}{N5VMxh4d(_Zq&f;oBO%t>N36!B7u#fU>ID0+iLz!{Au>DP%zj@a@pM zfp3TM?a*qN05br+LpK6_bQt|?*zxc)$bp`41KbNw0QEa;2%vWudWWHR72_WP|+*d=E~A3xN6^8G}E-gYX=b18rmER9FD3;R7Gl zjZqEI2CHBfH`%`od^?)9F`92jqj&W0;5PUh{0qvU7O;6VHjiEd?{iy@Z^wKW_`PF( z1^nJImjmC9;oC9)1il?J0wzH-EQjqx*ms3*!AWo)bcajfCb$otfqpO?CPEXefE`52 zb%7(`hrqYv=ojNk;d;0m9*0+e_A%}apnZ&c8)zTnGvRPJ0nUMJD28i+Z^u6dd^>(H z(6+|Uf~Bw#KE~t!H8>h5uL&1IKJc3-+zRx=3I71Bk4dci@Nc3%EEVb1-dnFt!Xn11`Xj}EzT#t@=bkt*W zJ-@e}_ECQuP{;MuaeW1hf+^4nD}j2NNc)(06r2L*1MOoXWi|0;_zOG@ufb4w6XwA( z*bJX#WKKE^j)k)z1k}@{>)>v96!?9UsHaKviAmJcq;}YtkvTaN4u|96Y{&w>olG51 zX55Gcp^yz!7jVptms> zdIJ5a@ou0`G`HV^)!=unmGW*!38~37~h@C2%$T5zss91*n8EFb(L7v#6(8 zyD~CoQ`WPOf>Ypph`{AQ9nXFM=o7QcpcW=WE4&AMJEtog0VlyZ5C+P6&W-SApq}PX zPjiODM3@I}1LZY`-#qv0K%ba8JSIA1-@;fT{lr)O$ETWP3UcU7|`2P1(bEu zbXW|ObrWUXjNWGYL^E~VjLps1+)RIJrkPEnXQyn>(PMTR=#cJ+g8e|^$&o}tuFw2ThZG( z4Hg1r)%syZW*hCJ4V&B0+eTTn@q62T2YlQ1H=wNA%7C(Jn*yz{0=8#l&hG->gp=TB zkOQS~J=_hCK_3_lb%5RTspI*ZGcp%s!r^c{oCVoX1lPfx@OO9#ssXzfP+kituLan> zfbv>M+g$iPI2C>g7sGGi7WfPN11exNOo29_Z7$rEk-3O(7kwA_cG0gOANb9SZik0} z@>+!6MdM)xP{)g?<3*I$;;#bVE2|9xQ_`8JSBmf$~~% zB2ZpS_{~dt!3}U9JOllJZkhu{_!gWD=Rr5<4L1RLJJ8#K%^kx5y&dT7KySxZ_)kXW(r>`Aa0bx6meRhK z(!Q4d38<%~FMYB9|6>3D#s2?`{r?yH|1b9c?DL<4a$xTLV*k%xp1Jpn{XhGA)>mKb z|G(J(f3g2(U(Xu)i~T=)efAt*?El%vv#_qEU;QvJw@l`sU#ME}l| zca^QmoxUgKj+{6K-hh!lj;lDD?H=X}(pJT9<(rI8c(26{#pgRs4gAmiOkm;E@+QkP}w{Cs`9$`tg9F zh<5`DOx~mGf;V6EA}78NpTc&TCsyb@;j6&kS4bV6E$Smz?LkgD7!HN5QXd=io}9CX zu+LI?70#zhFlZN?%t*N)Cw&Kwh9jgtK8a8v(mgGHKl7sKMNT>e&V&9@#9Wl#-$eY=o)(A&L|W5nm`l8k?0lJS_-2mM6sas6c^a2h>n zm|tfUmS%A)-Y2N?1!7PhMXDb;X)?@!H+{QIddEoKEDUZdnv?@;d?^Ryq!!>be$qTC zhwYMyoU4h_J>_bkK{=GDe&nQ;upZu#cCk9_UJ2y?NX|n|44IN<*<$?S)L+U2IcX<+ z1Y7<5da+)>i@BsD?v3Pv5YMh1(0=>>od2&&Pqi00886qQPmn(U-wLv+MoUS_5zl8O z?=rZTpIp{%XZU{CXJQ{ugoTtBa`I7dEPPwq&lVQS`GqOTN%mXczSpOhs($3;AHz@K zWM5x75iaAAwzGFEH|ieLE-hg*Z}cun7a~5S9FUXoX-sDSH2FMV4&5ZbgmWb1g)f!6 zSqA06K3()9C$kQi%(ynWo0P-4#63yLmlOABe2)6xcYP2gBz7PtJFW(w|8G5Muz3@t z7Yp^2hWL5f;lAx)?ICs`C*J~pf*Ykgcps!^I7s-HvYp-k{;+R5u24IWlOKRb;ma;54=POgOs;Pd}&NNn&!McLgoztn*p=M&@S zRcZ%vas$kQx1@cnOv*RsE}^>|D6&*zKF0NSKB*ma(k3 zRGt^I=r8OSL_c!!N?<)O+2{Y;8HvV{AGfk;m)EL(^JCil?(0=Aa>}>hdvK^O_rQn^scw#7n zc6+V{N3MXEa+9iN#ZkY32q4JN}?{Ag4@(MtDQ)2=eN8XG<9^Vj-AE z^KfHrw8+2?`iHa&*H4;Z5zGnfNUSjmBiTKCI|=2LTFi5QR6CGUmceRx+s|`Z(WrYd z$7UR5A0WRUIb{p%hK;^o1oL~Ma~hQYovI(%@FjGAjLekZopkTN(?6%(|M%-d$uAM) zX2x5_7>Bne+2Ot4_9xbZcd5O|hHqmp=N}D+OMBT&!Wl+YzZ&&Vc6e{u=a~Nzdhb@f z$c7W)R5(uRX=}V~#w%*Sf9JmUZTF~tWW%|@I-tSl|Kt5YO*zbr;@nakin3)Oy%?{6 z`rP^k_S~!XAR9P~Yrx;%p!t7fT`v1b1HFG%y~qZ9bPeq38!qwvB`4f7Ca-6 z_o;ql18edI=J|%Jd^@1!6*E%M0)rIL2Kt%9WxPN(xIXKo=KuBk<%o0Zn7zl+6K?wixz5h~UPmi#R53^HgZe^Yyq4fQY?#!EeI&xvN2 zN^a!%L63p{2US0^VJ^&v=~7P}ng>aqc~A#JFn}fH4mT>7htw`)!`tv4v`e{c>707l zpj=pgOaDbSY=&L1Ugob&Q8^(mEr>8~o440T)DC3Bf4FUZ5b`6jV`DtupwE{@;G1E5 z4`Yaw2XgA6z??qyYf>NEG>v&uSs2vEqpBY{^%yuAzVF*Z@;fBH%Npo^O!XtDo(bo{ zX}%uZyM%@A-C6JE@GeNJ@#}H513C3KkP8=hJ361+=J zCODrV)xZwsb?KMLsf?9VU41;@`-S-5)B&8s&alK{KlY63M^1eX`oKR#|JGn%B>N3{ z@Ymq?KdbtYQ>&l``pbO2EcM+JR}hIeLusA)krD%Y{-O3Dr;dexL#_1B^`v5raVj4B zU&;6QPqhO%bvn$0DZX4>Ir!O2XZRBGw1;&?Xm!r`FSQ3bbulc1`BE;MgL4y&=WsbW zWz;a~x3p2|FRrbwhi$M*%H=)IO?Z{Yxlu~Og`AvRj4vgY749DD8Ho~1Vl$55UlV(f z)9~9*{TSXCdsghlZ%ptLuimm!#u@1BNnd}b|8x5Oe}CgVm&fD(Ur>9I(+ti>eod=3Jg);cvud06Jv^#+Hz_i=tcYomCS;*p<=p2jR-B*L~di6ZqiVh-y$Sud7|iY2)E77%la)(QoTxpZgveN?I) z$i}b1H{naN{#dT7LwRA{Jy#|{rAeLHq+VFVOZz}J{s2ydqkOqYRAP}k24yT|k%qU! zZaf*Fb|4$s?>DmFZ~U>0CrcAU$KL(;F~j$Tx-hm$`5+sA4Pm%I=9!Ojq68pY#VJ;+ zUSwlFlt2$ZzY*&dW85g}ZP8B$sa|B`6>u$FCjE4Wx@S>eh`+)05QA}IuRy$?xAO`?VZi zIWc_SzROV6k8EUaZ*=2AUuk!rxbinEch(Q`yOE85_N**^r>X~$*IA4aG>$i^06FW)%VkI%W$XfD$x-7!5-#lVh{Y6r4$ z1u%y%geAHN%0t z9`&jpIsKpTGWhuawW<3Rw?T;Mn#914H`ET~boNfuS(i=kC-t&AG44kTvZB0@=Q>N= z*X4SQfj$3Ldyv!JSnBF$gw)HnRKHWCn~DB6RX=k26qpGUeY?y7$dXW& zD-fIUVXEp!&Nvq?0Db?DIAXTVQSKQAGpRv6OjG^H8M#mZ{{7!&D36rr^Xr^^$y<1d zx8R%;!@!o3`}NL$ zdAIuW?hDe-D--*KS!xe*#_KQuUX^*p=U)i?AunF=raHp45;*xy)5NkTdWD%vcP1 z|38o05qYtE{MXTZ^6S{t%RJSOoI$IZu@>Hu{=&T`7lGuDIwkDHq8^%5KXL~1{S4;& z8JqolODtHi1hY~hT)0fS(WKqQ!k%We2RZW~I0Q1&-~aRbxRiFw6qLh;*FQpU&`xL@ zGOi$JvJRNZI$-8ErJlCxy~LQ?KNN@$(LjHz>POD}5u5=hNIk7|FBJEw?Ue5cF70T`r?B-0y z*9B@1a^`R0YUt_v(SJE-af3a72KBR0?Lp3DeK3>t!OR=Q-@J!;IPBaXCVCgCUgXUC z;bHLi|JEnoThA&j;ho;Zof(7Q&p0ma6FKu~cpm)yzuo#;cKme9q#QUC7X8SXuR$gB z@#A`TvT(3lkbO*VvT~T{Xa6etku!(E7#J+$=BB-$ff}{L4z&Y0lRfQB*2^>N{kWC9 zCf#dV42yoTRP8~|baRYrr~dxm+C+RsdSs(P`+QsNK+a^|pUJ#G^KGf0_5M7nH`#T_ z!j#=T$U12=PQ0UbAZKoeJ+N8q*eIb^?)*Mllp89DTqeGB*Gw$xWtrN6oYfV+iXH#) z?L^N9alYVl@eciz(|Z$pi06?0gPg^DKa2T()?s4LDrX2CxU{&ta|p$4V%{xv$wF+( zhc+ViAZMKfr@;yS+*;a;Rb284)r*{UE?fX-N&8rnQ|f;_NpW$2=w)gN8ZhWDE7cC< ztnLtnEFZ^^oDWpb(&g%|PZ*qZtZvb6-&4DgvwFjoQ0m87+3%`B$x-|!?RAyfft+;{ z`~j}_>#^d}qMqS|bH=89u2%iXS?v2~vG1RCx0J)${dUry8dY6o%_K89KBQ)bPScCdxXBa+wMCF2U*V+QrH zQS~EdF~`qxWwrcX=^;qqj68 zqsvy+kDPrh{1ANp|6QV=NiClg>wcixZ++?In9#pX^&@AW1-}5F|9@rtKBgF=r_}Kf z3ZrpjyV`@C{Ts-IUrRgv(1m8@hX|jw7$@itGF~HR7sF+c-+5gj_lA=f7s1dW6=YC9 zJJl}a>}%m>xKhTCP08mS4CG{c4my&79lO*H?I2hd6Vo)CMs~yPMF9SaP*)Pbrwv)|3 z;@*{2yZAu$BWDkS5l|)Nu)&|N&>Gy>p+VRFpw^%q*e6QALC&54?Cocd_48}s50w{G zB&O9s|A(p{Ih(Vd+3e+KPm^-k9KMv3o``s^@nB0jN2v{y_VAI~ft=j|?2~3MlzrlR zVNMP5Vxb(Dr$S;VQV;KK+9&g@)C+Pp^Zjf$uC0}F+31J!LUOPc=9T7>SJ)++wrZ!J zs2#}Jl+7IGz1e$`_N(r0qDB8?9+%&bobxsKCLAokf0IA|ll$E9m7i}I2JQ1dY6o)8 z_u&LMO8UpvAka1*7iUoppQ(Q2oYUZJI7RetbMb+4A;n$R;eg4aUv$mz`kkC}0c683 zeE-yGRMKm^lfCW{b(bRl>gc*fWi6y}uX z7asWb(6x)&ft(YA>)|pPCzkJJ9t~Vxa`4&FiP6VI+y-ECvf{E?T$?B__Er8 zoHGsPK!eODdx8)O6TM$iy~sK9fjNFotLXj6H%B*v7_@`0s$S%rm9QR``~6U;ptt(4 z4D>Q*O8ZC7VeK%7_0=37|F>1c^3D8yK>$y`jK-P6Xs&a+|K9!?w-K5 z^z%fMdic89gPi*vI2sQ3;}h3*db$_Evh$*)9KHwVH1W~F#GXUd9^~8~!cX8tzpn84 z*wo)0DPOB!4=#kCiT>^Br)DO<|1i~$oZAhU)8}S;{jPl`9mv@9OMFGr zK9O^K!SA40#=}iPK9bG}ZVl>zb*hO4%dnu8@q)Q!?Iqz&r5Xuw%QJKZc-k&3&AUEEfRJI|t>eoyT{&fN;{!$v=T1##rwiRa&c zGOHi<#L_O2^Vk#3V|_LE6X`E0c{PKFA84jMN(fy3Zf4gH)Gp*a#@2b%*Sv4| zcB|Wu;PA|*-Lk%razV~J2~LA!rQNRVy#5atl%{wx491UR)E?x#bKqBSmY;7KxFU?P z&Z}h>=hyXE)sLK)13e%l`nLw}bID=9)QZ9HKTh={=kNQ)7`Gh@)lm~KNJxqpiGM@zRc6Sfw6*9rfP-W-O`jOg!oHrX< zVY;8!lF!S68Q*OFI7RJ1&RYsAVX@e;0snJ;Bz}dD`pM?hOpd?}`pb{i4&*$}{^xOy zIB%WUu{pnou85t_MtAaN<#DRofo#GD+w^7Z_)zBgchky4-NK1~8{9IWA04Rk|9zf^ zcV(WHc8qLd-fv>wZ#vYMmwS(^n7i!6xCN=KeQ{azr_IiS`KF+>_~ghT4N{3PT?F_kXs?e%HGkxi@vnpg)k6-m9UPrV-=&3NzXI7N7nUcsvp_Z7b@UoDTj6YCbf%%eq8f1{czqoHNUyT+l0aIQ{tloAbf@|F>v-cXl+7i=ZrRa}Dyucm1{MM>byy zoaHwcOTDbn{hxouLc=Cgjzuln>qTl0vibLL2l)5@R>se#bYJM3F1vMJSu5#n)PH`X z_8^<_5i~yn_elA?*E!yzIC@DQ18;F@p37Qc(w{?W53>1bcpjbTb^jMKWf5m4f z{T12#CQOBTzb=#apG(4_e9kI4l(DIQ_6njO**p(82WXz<$MblcvpC>&Ky_wV^i#$v zvBQm7@4zbPkaF0PG=Az!Vg~h)tNM}6TVOYAkaAdC+#`~g=Z@*PkwMx+JQTSF{y{GT zJG!eK$QJwoE%*bPKNdT-yG*#;cub4gl=`sW|3}m=WDEQM7WV%we*eEdeVrPA?#-f| zT=TTTM}5iQ>Tze?vf7wSWhbKu%basyb{(?jh+wlMFvFz>dU<=3lwd8a@dQQ)~T zXg}=xr5_<%Xv-}HknQ_3>-R(+lb+-lblI=1`ZMbeu>;w{I-rGhKud|(vBtmKBMXqU z=j{#3gWoT9xN>0rZ(;s#@$>)cR6k92sGw)4*gB6~*QnZqY`GsE27mv5Ln2-$`Q=Qb z@wQOyK(;&!FTxYjZkH!(-|Mhv(T^@sdyp;tVIcIC_OdyV4o|G>MhSG<`PBHi)dvDtjTdX#tiJ}sdgY+cEQK6 z&5v*KbrT0pC0rtOu9HY17cLCmBk9^p?LfBv4}1+WW!<#Z<*_J<#x6}bu?)(Av0cVj zWa|;|eK_2&+q_>wXTd_Z`!>+uTlFJb@dLEt2WUNB>S3+;0od)jx3b+KJng~tRNi

    Tp&r=?{9s@kDDp$Q+3AYL_&GdT!ZqsO6@?lvj1;o|KFBxg=^)9#^X!$ku;D1JwKY!+5?O3%%Ecab4DfdBiqZv`2oov3Btd0HGz_&5yO0r3{1AKCUY zybeD8Z+qfiE$gpBmkZoL{~uI8vTZPo1RwvmD!4S7l#?uV+iYPE{w668WLq6ff^oh+ zWF44rC)$BE`98U;Sgfgmt=hposvkN3`)~q$N5aUK*6gy=o6~{;6;l zoZ`o4>6ZmGPK)t?y`a02$HOqu zzs31giA3Wu-(dDMXpax6e&qZqz}!9mO{tIf67L@+W%9B1r#-CpAm`7A4rmJ6hkHB2 zM_S=-EzM`U!RcPHkKr(CACIU#$oZ>aBP^G3V|}N2l>trM7Z&}7ek%Re_1E{|Q`qk7 z$>j$QJdNE;PId(1PId( zA3|`hw2u|C&Is$nJPAJ|!Fh5;%4S@9Qtd%5h(ICasy`_&8ZwJB!{;pR0J#9)zykb^ z3wrwdtdRn41mtk>JAOc+SAUW&4EhFYP(M$rUC0IaE*7v)T5yvuk5ExjNWuUu#*JrG zFLD8Ep9PGo3+|P6xz)!TB{qg8eggagQXj|#&W0D@2^l{(aZZ*~n$6h+3D)y^$4ZL{ z2rw)Ef2bYE1+T*Z@bCZN$IFSZ_9%(PJ&Cc>B1y<*&<R^41+OHG- zFV%}&@Fq+JAOE*o@-rCc=j+Njko<1sf_bn2eEi?0ME+Z!z})Rj&Dz29Y6o%w=Ku>< zgTMd3$*;fN49Z0AGFiqCs0`Wx{XojY^@lC68#em+O6o&RV35v_WgF;!QS~Die3p^9 z@JmP^|JQk46Hl;YV8=^p2Xf)zz}&si=l^{#Z9l-Qk&~8qz`!2%BT_HOg~tPP`NCuT zJf3ncW7SVzQT@n;KZT#e88SY+pC8M^Rgp(`G5FnmR4;NNYlns1;X=PZPQ=AZta7vn zcbfN^7})Wu+JRhH1ihiaueW{Ne5Am=v&1J>U?9^z#isq>7U4juC20XU--PN@0NBlgLPdY?gUQN-L*3AgD}%u z_1pex7joecsD**Pz4#83FB#h;a4f!uHYgv;L(0dMOC3yt@iKmVsCi{<+DWvgx?dELF&U31r+*Ij$u^*7zd zfA9YNP1pF}neZF14wv?dTyz*535SS%8{_#Ae3D$Bm%x9&zk2tbcVM8}fn0PvFz+uq z+S^eQE#+9Zb5=c*@fQE1lm~Lr+3-s^L+scf`*`{e50=^cy#}cr$VEBO11|FZgtU6` z({dti#p4}) z<>HRJwi9!&>Y3h8sZl$Si|&QL!JoW8Fz((+i@!AR2PXRQP_+lS2;a*h_IZmQ6?<0g z^W3dR*tPIe`2#xTDZ@+$g$u0_q(;e#u{b;1xfn3xC3t^6w!9Po!py&xB}9$3tJ zVDX`{e%%wimuaGxekgj8i;smL!qHxDa1d#tcbw`)Ezr=a*c%RyO{T z-0mfb*Mm*!gFTb91LWeX;70hJ?}yy>Bm)OSK|HaYL3z}xe&k~I`-|D{FTTysquu%W z9Hj9ax(ihHx5twf88-d#4Ydck`0wyEJSgLWdmldOy`M;-&-LI2D1&nOx7vYRjL&j0 z{*cAbNxdZ9+a>}vx0LmrO4os2q-;wb9xHYele*74sAGw&d!s54~Rmx$l zgIAny@={5A^}X4#r^@SpG1AI zt{45tCFes3e(w8gke@VutYe{ny6Q(RDS%S&_p927h|hK}{jii&$1w|QR+U*U@XQ}9 zB(+_m`kA5jA(#9Pu7ltD@+mIOrz`c=Kz<|rGgUuw$sNERe#y-~P9bf-EWRGM5OZ4) zc~QVU`5}J>?FQeiv>W7-M}WQjk_Tk{v2ri@(bH}e8rU;i?LjVi0s6wfq@K11@7uW` zQh!uypr3h8$^*HCd4EX_l#BkInhV|Z{oJl|RX=hG^Zyd&|0RC@U&8^IWQysWu+^X( z=BXXXC2mY{_Dqp+b-n7(ixl*5tK+04sev8%3Zy=eOIQaiVI8of&DTf#K31Mw#;1oE z=xdgZ};>6`m}SGP?o#fnC%vd26nWm9msa(|90m8c0d1bjL-i; zMHNPi&EnAJs~yPp)8S|EBfqcBCZt0Wz_{I0jMZ~-v>+auXf>`cP>Wc%OXF}UBa*HhPr@ki=y`fIz|fo%T= zyadn4zWRM#9daMRV4Ubsy~y@*;GC=dHR+$L?mB zb|3%0I#f!!VsVjTVF@#9a_U#H=zx{ezW4v^Jf;00JH85s!$E$&WA75?C`C?De3)t4 z_ReB_TcP$KJAMEs!jWRnsvsW4zZXcEY1#t4yg`W_u<}am$5*O7$c~@DIq+i{Z`Y*y zQGFhN{vB6I4D5JM?Lc;12sv=R^sgO0MSO7A$Tb`T{q!kmC&-RM=mi%`|7zcdzyE(H zzJRs7*oEx45^jJiq+GU#v-3icqF8P?Di7G%l*<~`kLD&!fawD3>SX);bCw8b_F!=nxYjj^NVaS?xEx!;Kp-JA*57Z9i(r4fW@b~}Ly8A5uYyOTsY6o&@ zKd6FNWxUwt{4U<_6&&6gw9^k&KXT~^7zacA{wSqckoqmB6jypKs~Ki>vwNW*sXfT0 zlVCdhTgH)1d0~IiiVaAzGvB72eynyNm*P`jx(Md_b(LTEC%>F+P%q4z(oc{}*{v;Q z-MjQ{KcB_pXf?r^>HDVa=fw`>Qa7i${^H~Rc4u?TDbh_=cy18m&!8OsqxzAn4nj9} ztolFZ|8uq+^u3IXgPDyoGT(q@neN|x@%Kdud{F{ll)x7y@I?vyf9#zJTwTT4|Ia;y zECk5rzDA8&TWhMVTCG(HkOV_QWKmOXk-$xY5{N*IwrXSDsLLemkzt1ys?mdtYFE^b3`}%%3pU>~kJ?Gvt&oj?FGxN+d+n5B# zBrqm{F$s)GU`zsI5*U-fm;^q)5@7g$K)Cn9_NkGygx|GpTXz${3s?u;x~Bnj>lkIMgXj9m zU_bC_a1vMu3ITNMzYcB$w*lzZ{{^fAHK4-@H6(x;U=}zQWP*GU25Z1I;0NFy@Hlt@ zyaigF&;|!g1qXp+KpMycC4hG~@a_iQ-EbG+-3|W)Z-Zth)EENO0Pi;PZX@qD@@^yV zHm(L&f$xL6!5_gtz&oG?3^<{tDd0db8}M$^>41D{ss!Xy)6IZL3$gAl!upS`m zW@O#GFE|o>0U)ntz$fIM!6ZX0>rhJLic za~rzVMta+d0qJdnZre?O^tO@Sw!Z^BlWldN#|gEQ-geU4j()U%5s=>YF9UdPN4MH< z1n5Wm0|32je;IrTHaejW7fc5S1NiQM?~XIU3a|!z6Z{C=10Dn9QwMq6K^}LK=FX|$ zAaFF81K_(8zB@^C=hff`0R8BE1d!&=*FinN^SyB**b96Dd>+gPXM*M6V(?AyV{k8c z0=x*`1?^6#i+8*B1iahDyIome2{;dY6tj7eZj0%H>RpOk>t@Aty7@&B>$|FQ9Z#`VX> z|Nl3P|GT?4|4-JAW3W7pd=S<$JHPgFu*U4G!Un1tuoB&-JP0|AxAX~XSs76KU2u)k zZ`F;5>_(vZnTyysF93a*VCfUqvMQnW7vKk)4~=v4*%F=Pvu$8TVSdiy!fYxKb}tO1 z-eA>)mJh;ORz}paBBb^%BL{P2P1cumXJI{@F#tJCvh)dS{|uf6kLvzZ|0Vs={cOFB zZ0%ulc29p>l?A|8lI4rA_Fv#NV9x*R+`b|Wfc|7lpRkq{F172yTP9y@ePOr8l0)|b zpr35%6V|dqrnVb2Dg92_OEQBp>g`4qh+d{x`h@Fg)7DEl*`n>pdYgW8OtIA998nW^ zy_stHAzVKVuu5rtiYc$MKUZ{*&0zPZ9mh%|Ew6;@4+XUI>krWUe|f>8oHMgCGdO-% zc9!D=AC8$|Ydg+Xkj)m65a+TC-g-Fzy zOCHSyc)r)q(R^ys<1+IK=A5R-8lhWzr~5DVVF4{%9MC?n z<5+R1bP3ll11rH&)4oT}Mb1uJzyVJxhrsL|Y+>btaQzx^8K_b|>ZH76XPu$vpyg(z z`>enK^kH|)2jTi}g71JUm5&YPJlXur#fv$$$edfPyOIV{pY37!AY9LC!1cF+TTFeL zxdZcNsYp%#koKeW1Qn`ciNH5j+JRHu}Kc^m&Ce zDTVA$YiteA^b0^A_O^Twu73f%1fEeo8s!*w=@DeGS#Z7_VW~A{K>4wc<%4kj+u%d+ zy0&lcn==z_k2Nn7!I+)T&H0IP!fya_q2H?cL%6;fuo8Iv2BV+kPhsX+?1afa(m8s- zZvgc7v-An;=sVV7kFM`kJMi`4&cn{j%%&!nvg@5>9_jbQx`V(czyV5sqxd=4yR{&CB1!=H#0qImKVjX`;Pc=p zrQc!qZOxmXlbfGjAPrmq^k-W7gmtX6uFC=^Yx!-C+F*k=7Y>FGWUq3NJjey~>FaV# zKIneqzEh|Jk;B23K4Bdz&Fjtwg~rd~ogX3XEJdSWv9E=dQV|G0hgg0H>uB%mXz%MT zF#8N^TQ6r?!N=n4oF%%ya0W+$uo3y0^J#L$D-{%9vn*ePb=QI$!Ief%^e=tq1DkU# zvZTkoAk!RU9)$j4v#Z_^*8LdV4!*DYTTl7rd`T-9dcI~)RjG0VC`X4`J_zgR_t(+y zulu#(!+#!%b~2;&>vL4BuPiUCSXxvzGknpiveM$x>ZhQ{Nd3E@raPjKuaLLSN zrRDrC&r6FB*&#Rt%ILHryD>s9)QO(}J)H6Zp?GctA!n*fB9eB&gWlljJojQDl^K%Mv^Tb%; zh}NL^_@w27u&y2SfM(^RDJ?xcr$A1Xn2*!Y9y>19Ng(yhrz{_Y^)8qMA6rfSAPOEl%Bgp&)hCtkja7Uo|P0x{v2ibAguo^I1wCe&KqD$`OJB069rI@&9-z2 z>odRtaH`Qy>nE}vL;R_l2Lb8BXDlCt^=ANf+o?a@v@@Q6-y9}v&Y~%lLof=m(}bHq z@&nsU^^>q3KR`Wxfcj!%pUAP29PYeOTrq+9KaR2V3G3Mfr~XnXQxB*?Hs!z@5!RM6ODgHO>3jWtFC5QIdcfS);*AHs&qz*XRDT0Xnx$ixJDlDkpJ0O+HCT3?ACVmmb40^CL{EXw2D$GrJ-a%4<4YRm*v zUu0Uo2pjMjH2e|#&eRuXKsH;{MNfmV&f;MBm}~hUZ1@X!4m_#lb#q2edV!SIK=Ngt zrAyfGGI#_0%cMUtpU4*2wA|p%+Z{LG@$Uj!(1v5N?V`v=56&qabS`D#oPtFeW?(#k{8(uD zAl!gWyn*(1!*N<}x13&(8Qi?YMV2n%2GNDnL8firtRGAK6xrEX^YEKw4mP|3kVB5; zhj7E$U@16L^P|bD!VAyL%Aa3odkLx;0r0Wd@SfTaE8^cr_hONxA=)1^x zU_j%M^1;`q zdP2D274Rllr|nCtnQ!EGjt4;hOiQ0|!-t>|)F}N-+z8J?ce#^}q7Tyf6*37A-Ew*Xex5 zCADkyZj}C)EPcX8?0`n>fX3a8o-oBXE1j9&3@e#2gS-Ipi8e;{l(3QZzmfL8(X{_f zcD!PKX7>Mw`2+NEl@G#3+W$t{|3=gP_vT|TXXXdgp5TvHx`d6i|BbXOjkf)_12yxr znEjKRK7UDJZl)Qp$(x_Gc-QiOc>m8=EI)*ek|(tPji&u?)Kl6EbrwO?HL3$^0q8}c z<%6)X3{-&?T94M#&iKa1^U@YFyCr84r>+Lk-kxjuAZ)w@TmddN^%ylc^Cb&qF1YPd z1|WwbOP{du+u&w!t;(UrH?Ie?Fgl79NV|p}sGf>G+y;IPeyr{7>x0J?y?VV+hBKH0 zH|yAU|l^w0saY;WKNZ z-`$j{@-XwCnM-PXh5?n2m6kqX6ED)z(_;_6wU3<4n<6y(v9rW>4 z4unmjo2$Swl|#GsYtLFJKIF8#f?Qnt0pvr4rBB%ORd6}D(Apbmx%gd{Fd}Xjt3;}- z0Qex?DhEmb_24FOjq=fyQDD0EnWp;oEes8Sj|(gxgiSvIzW_fp;EDdCiAb zSr;qQG{nTn*tPNL;maj{H^3j+^Te2iCE6>Ua@4oR; z22!6>hpXNaHXj2{0G~1b{H#S8nP-`N8U1|tnx#wF%ou6&0&t4j7athEm)Dps%$bvg z5gzeZ3qt|q2YptR17Y(S06#;sng92G#E&kfCJt*^Kg$S%&jJpBpGz%2gw5E%&9t}8 z#YR4P1z6rJ?#ADg=I=VG-ytYJ13r9}4`H+9**Cyy?bp6d`Hrshj`|A=7vYccdv62D zx362i2%EnR==V2&)5wWYxrGIbq|(Wsk8xO-n^Ta_x=DETwh##*-_}}w2%CQn?f^g5 za@`{B(4w?6vgVn-rPMQ~dI>_GvCA~S2%CQo{s4ZXeALM-5M~W&OcE6C2*MMnY1 z13ghbL|>i)&w?kEkA^(jLlzFs%gt2N-8WZ}9 z{*{(KVe|W-0lZ`C`@#D((79q+K)O!M34jmA;WR%8n>)Z}(5iCi@~>MoiWva?t1W%P zmIROl{cT!aYt^}6oTpM$Wrh$_w{o-QP;3L^=NiioVask{UtsqCsn>RxMdpQhi&)`0 zpVI5OU;>cKH!UB8E%f(W=Mlm<3ey&6o`sh?k8-Pm34ot# zEkA@U$AK?`&#Iny{fhJ)*}5Vq`qx?dge~*HB9N}-B{HvWG2V4_CZlk14nw)(i3> z^ewf#5Vo8J@Uyq%oB9jC94av{x6llH1Y3W7%kn|kvK-L=ZwZ_EQr^1JK+;c}s_7?e z!B%adU2CaUy<9(deV12n=|(fAxCW6QH&}iMTSOM$16Lb6B$oX%3}XT4$#*PYge|oD zEwuYBKQeX*vmJADSeUrDAa6cJH!|-)6sAB2r~=^UM#~Rj3+;ak?SG4D|C@4iu%~6c zK4Yd7pR7f=GSzGhBEPxGRa|&s6qRYL4ppTub^a)$KK|g3S z<%k|m*1Y-otW5MAn`#@e#(?TBGe1r4cCj3deEk0w%P(OoHbd()V8;K~>-dbdW*Ofr z$Q6^{+#5E7kl*($KZLFOfP=uEnt!be)AG~jdkZRqva5e!=@Yho3eb0NJ>1xn(aFU5 zx)ofsp$4;?2ETBhYnXB-DXdlgUgQ}Sw09`vq2un()?&g3hY<2 zFv}Zb45U2&*wQC#JqHwnB}%`I{xK?wtq>{F0p!C^EPcY(^FbvjwezX*yqS^r0Ou7c>@G>9(Ind^7 zeM;CWJp2m$$jD*vcpYw=d~au(0Qk7o@y{N4vNKO+T0SFGg^SacWap%11R#goEgyuf{{pW8v;SY0oi9|7hxcq3 z+p*!t1AbxY6Slqw>VR4Q-zdh0I(Nk@?kg36A&9d#pc57ZL_; z_fRghoDjCTU=sXnQ~hYlnw!hY9J8ee6*h~U3vzYa%pmj>`&{`TY{Qml+Y3z5`m&dK zQhC`q(z6agFYmN;3EK_NKV|k+#p6AAmoHg-k&QpZ4!6phwgB?&Zp#;8 z+m}EQC{Q`QC;Rd-$1I)g0Ax2SYd%MPS9wA3bC2bRu&op@4&Jt0^|wc+lEFuQAoJ>f zW9bsM;SXrTAJBH8wlAID{2()5Nov*r^5I@fpRny(K>xPwYGY@mWn>iMB#Vwf1VNuR zRqGAHHf*gn>i4$qs~&t9-6x6ZF<8B_MWXhc?5g-c*(Fram3Aj_yqQg_(2G z(icSBxIyU0{gxlXws$}+cvI!E(a!(OPMedN9hkp`{MY;tJ!l2ppi$e`X7Lk>k3Da3 z8pD_LN@OZ0hK2%{SV22hS4vGfVsGr$6nrt~}26l8T$dSr%Q0Q4WV^aM1B5*rBB$7udSW_eY@HJr%h*qWV2&8 z-PrU6(wPh({eQCb3EQzf+iB<8e`VS?*^*IePiCi|$=V7A1X=oI=N6a~2Lj-SKE37# zVY}!mKK=GTm~tZdA;!3_gw_sR0Q8@<^asu}=4&sly5 zI|{)vaJE-ZS{J$ud4C+s`{oC=Or`Pb>bKRUZw#Bcmcg*uNjfb#Mm%LifSe2@d? znsJ-?}lwT&HrW_x3yY_PvQZ4+4U zZ@g{!Ang1dco^Jk#);0-jnD4PJ|HZfs7B*f~ouoJKMk} z(4_j;963i!Ce8(Yj@bK_55mp?C$w=qVZYS_*|?8Ms0$aS*#i&)$cGOseZq}Xz#bsk z&^PT?o|z63RJ)B$r};p*@j!4G*iY$qM(crjIf3=VYAt=jjo1tuj{`@V^bcCj7F7Dt zdrd####6vtaFWt*qkWL6c@dXkAmyOW(kI-w2o!*9t^YPr`^xqnxtVhV(7Sp|mvG}( zKp32@>28;GU>Tfqku$Gw9t&NV0UiMT21}oC<0`NQoUiTj`V70jDkoZJ+9Rcdw_i6{ zeh4>y9b64A)qL3OtrHJK4)mu~{|GmJ7yJ->OXcvv5Pz+4PBExLx!@QQDG&kVOOxe? zaN{q*J>cicPtD-{fwtcrFc5y4EkA@C9|Vtq`&3W8^T51rU@-D%vGfTy;#1v-pJwAz z+D^6j&V>nHKU*yygd4FHHexSrd`bDJ^X)5#ch|o)PyqTtTdn#^xKZj3;pYRRuhI1_ zo<}o_d4zt^1i(+b<%h5<1TTG{OUEVu<2!-_CcIH|P75 z0T-)2yf)nV-vx`dKLK1?{Xq13qUDdU8$Uodet_<88$Ggi4~H9bHZ08@y(+^-5ao-p zOU*aJ?%Tkx!Oyi^_uzKG_mG1xG=OrHWa$!i-wz%Izt!|NM*Wc11!7kl1(FYwEgyv4 ze+AD2GyY$3bN#&OMjgfK>pw>(EK6Xv?n+K%rNyuS^;@Ohmnb{Oyn{n zI3@)F@G;HuLAdE~a1@wj^fY1@vfL;`83=&>bW5Lb(+S{I@HykJ)P9QRE-l=_Hs(Rp zV>2v2gquzSr-QkgFB?3sn77}XEy7490J-dD`5@eMHdqSG{{QtmTE}Us)ByO{-SR=W zX(gxzD~ufwIcMC?NA<6a3rt_Jm9^XuZn_Ly1-@#^jc{*U7aB8uKAmlIxJ)p5vX|w9a1-tQCffT=KQ;Pl=Pj9Dopr($E|iiSfS&Aa z`5@eMKX??F_MdsWgZBemoSm~|bkE=0w$2%6vwHM`(5Cv)i|l_grqEUIEIV{F`B7uJ z2x7`p zM-`VQ*S!r=;byamy zb$DgCygGbQxOjDSxMb$?vWlfeW%3^F@s@NsB2uD3PaXQFHXlMg*p@xh^@q@=Z5r}G z$eapfuS*vk1~i^c<>56p0otB*FArB|gsX}xOP7ZEk6bbHRpZcK-PCQ~avvbXpVfnH z*ORL8_|n@m-qP=_SXEtGQC=llNnv_Me)LT9au4VnlHw-GWkMo_Z(v= zg?exwI9GuiK?2Zxk#U)>%5ZT-Wr-+NRtZ0F4Vyn}ozPXkaNOh1a@->?ah#)XcS3W+ zPH6sZd~fDE-rf0s)F=Y^h*>`*U418&mX}ta>}SNMzvyvKDdR;y=XY$r9uWsus7H1{ z{x!HCNF_E6Y$tCm7sX{2J2t>kJ*ruFSjFuy}-f5FTzs2S;v0it>|aUe&rEpIOft=04Q(+eoCyUM}uqj$inmXuyc7leE}z zc00{+KD*xVJn#j_O}fW%_iHyqeC5jOiQA77{+qW{K2i}qY5ocm_ToNPeuA+ldPv#- zg-h*;UPRnzQ)BFjf5mK1%qJR5gue9wUWlvWd7a4}{%>e~fqcI6j1#)?CMWb=wEbJ> zJE3p>*$G`+j(nsd4)`+d(&i#16WV;6341G%&A*TpxwUznJR4L`qxGiTncnQoVa-o@ z4?XH+K6o=feA)Q0cxmYzE9+Ratr=J_!0F(y!m#X@9-;5on+SH3CqUT{O;g)YoAn>2tj_=`@Zl6tBY_N$^CP? zz;CGci}0H6IQ8d6NQZijjTm{b<1c1^o9xo6>XUX_S$Umyt>6DrT(NR?RZ&^EYFR~P zad>vos?yoZimIw-OFXk?m6@1^sm^B265a6C3r_uD{YKw$lo{s^2-wB;IxW_{Q*hZ8aj2<3_)G%^;tn`i-60TMV?P?Bg@k`(>MNTSuVZ!r$i7 zs`S-W)fFoxpT!fPMJdg$Snltp+JIc!W zG832D^G^`vjo>DEHb~Cb$vs52RxI@t`lHKxM6OTBCC>xxdQyvVDZQUU?@Q)B)JLNl!lnvc$^$WvBlP_Jo*HQfJiQT}agO4iep(;B z$G+#|;3v`0SAKp*9M_rqP#?xa=w|Rc9;5>0r-pp5E3LAl9nsuhShQ+YX}Os<8OwM? zH2-Zouk?Qo{U3Yue+uoV!HYbY;?dW3zO-r~W@;E=#gSgIzKAtarti{w2;XDA5UIVm z*Yf7~=f$eu?LtEl>bsqIqUp8%R_*t_0@;g%tYqq6<%?W?`uA~f3V*2Yv-~LoyLw~ucbcDs2I|ci|(_f^cc~0W{-T?1{ zXSF`Fr56m-Ky=Cs=fS`0V;R z_!pdRp*O$fATPEN@E1)t^^B$)dvOc?|1JB1-AuYy+R{9Ncz2kuTclrtUTOM17&}YT6&3!+_M6&S z^pUsd*rnu^+U+my#BR4fh{dJF=a=D?$Skj}yg2G!ws!WG65?C|E&*4lctTqqGGbCY zTbk4zUYhUC*3KS8#Qfd=`|KV4zE*od>bn&mF1}pnS!NB~K>hsf2X;tuR3Do1WB8Yd zjorHCC?yiwa*hq(rwq(QHdg^{-~Ih`(XNrzYrb(uZP)zzDP=G80Ca9q+I;x|U$7+{ zacf9pAF*RMV?XMA3FvFP&V6>#(lCZs%=|>@Q|{$b`VT_(d*(j0^CMjI|B)C$#Nz@Pfs#Z9k>svq#jv+oFD6<-_}kS>Boso#?Btns#05AIhP& z`$t227NBkKpU&?*R)n_nks15*bU*MZeLePiW_Y^DT=PNlfVB4?4`v%X*4h)k+}Uv5MC{99S~ z)4vv6CC~iry5#Q2^lfOn?$?j~t|oe^V{TO1e8D%sz=Gq5e?Tg~J%B0izIlZ;)IiO& z>**C(ZWU#W*DlxTGgbUq{vT_-r|rD*W7~NxbGO5W*WUI^JO4CT2c)Wxw0G^LRc2yB zQJE1nbfq1{kCYK!6)rEq4b1=Lii012`~M60xlJSDi?sjJ7WDwJJ0k7Bzuq5OuZ&zC zrp}M*gqT`fp?+%!kSKfcH0JaPUt*tm_E=Q@)_55IZDvGaymD!{GTNaY&~dA+ zj7D$G1!sUStAIjVHyJ@`fBNgg2~FEQZ`^7y5q-t~JMA7i8DYZwE_&x*kD=>uw(g}r zhPKYNA>*^#&W5)_P$JL#?VjZB$npnjddzLfT5 zBlTy-(p+YTlwxA=?-B5&^{r=D%bVJ-rOa==T<)Y2xRMVFVl?Z6Wzm*5zbh(lF)2mfUL9n{gn7{6vBax-alf4%9IGC-3k`+njX%G|gyd4Y>pw_O z)LV>@Z8PMHTz>j|_a14u7P)3(N8OIB@pp**C3-n<8o8S0xQX}5zk<7rzahGAEM|SI zktBNcvDU?uv~4rNq2K_Gw`Z9&B&(!S)BDYpkt#Q4I%@Ak?T!JV>rQ+biBOFx-D!@S zoCQtBTep2m^{IPVI85I`hM`UEP8LYH_4zwIiR$xBB}=26nO|b&FDeJm{+a|IX@C;6 z?PzURyQ-LI#VS@6hevsYbao^MBY(zAyt-x^_QAG1VD|s*m!Xnfq%%BS>SJ#$!nPu4 zQp;}pqTiplZ7=jWnWra!`QS`&-YBJic)qBA)!+14sI3C4LAfdSK0jN`<$kc<1Y`GZ z6BqdZfy=XdxBbi}#;nVFId;3(vv`fYyG`uL--8FhA2rU__^MQqOg&eIo13b=e1hjh!!TSCtQG?S$+H zHnd)W(6)DYx;r?4AH=>r6ewMvovrW4^H|H7+Be%6@833njBT4r1fc=y(}BNx@eLO$ zo%Q~C)@sp4Ix${HOvh8Mc0$)IbVA2s+Z@O2f_-SYQb}#=lHp<>z2`cv`h0Bjy9cMh zH?P~r&LI6`K+D*nnt%TOz$3_&Q7pMa1NZ|&p93dxH>f`#{ScX^mba>?*tQ$`3Li1& zV^n`^e?avZkI}%vCa%!HENJHf5x4XQB6{qfKNqXsMCs8U$))rtqXX6!4hVS1^Z=Zg@-#1phtC1+Z`r6xvWZ-hhP`eCVX5{L# zTP1(HtsNLO%VN)8%_m=cL+_*fAQdSC4r6@-H-k&SceQ@*k!e#^g9^7k?=I0zNg|B} zFUOn@QM%MON|&DE!0q5paD!=A)$mpEZzq>nA-GPgEavi|OFmM;Z3o~H60HT6=#Vl99em_ipMCDAqqUk-J*#8M$ z0xuZ3{x7v}o!0xk^nbiVwQup~wA#6_NPZpVdcEJy+|laNXsV^=mAgnNc8`l0<+8_! zyR{GW>%U#+>*g)7b3?`!GYnbTxb43L!%`VUa+hv~@XHd3kKkAQ%2*z_v{%1iq2ShDU*EyRsS{@)c%%$@DuiCvkRRU!TBY5CG(*MLq z*q@P@c9cCDlQBl&N$pP`Z$5j}b&lqDvCoWrt#(P><^Gvx%gt-9BPLcOknvbCUerEQ ze@)ab;jv!YUWxyHVYqU6xI}c@Jdd>pW_{5ShIsUTN?B{$9EFujgIsBz+yP-}xxZ1=oRQ$EiHnagM8Zobppam6P;`LMQ3* zL!6{P)7csAEAI7jro2CkRQ?HMDxkSs=XLMv&O+6*_qOZj4rz2wc61%_-#((8n`XJg~bv%?F5q;fON**QLb$({#8lq(l?G31>y-VdV(sj)y z{}YMn2l zE6JwZ@jRaW7o;Bbje`u5-}i`D+Bw6Ygi@Aiso3t$4HbcO-+mEp=oFshDLbRbkFTBa z$G`~2k z(Q91lO8+gsN9wCT?ufpW!#-`Vs=S{iH0|;5?Z%*eUfj^{&AXlr9Qr$SpV4?EJ-fQk zi;16dtM=P;;>K$idP(E=m#aVX^aaC7O!k|}FIV4iLs(c`Zs-ph@})%7@{hhWy$yc*$yWk|ucyd|f5v7v`QG%*CDR`H*cep5 zV(k&TG#}AW`y;B4v~%umb}Sd&bZN2Wa@{2J#k^!AFztlTep<&5Bi)xJVp*v^J_#xM z)$U$G&d;}tjji-XV!udv>5}!>(mO7VEC~0NKffI_K)UNpGF|t`9i=yF$LL;Clq5Iw z8r+Jc@SM2Efcf5w@GJ5dsU2hVTA7&UM!zzU=9RjYL#g~Y4%nRJOJeO)7ST|8p$rC^!*8+`lb>hHTkPwOxD8sh#5_`Q=fQ-*=eHQ}Z+%=(4I zQt#2wQ0uQoCheCqpCoNn=}~NWP*HhiY4r-TlQsUmgmqtZ5}yB-lkolboP=M0!AZEc z)=Bu~TTa3)e;XRxcJ~Pl&p8RN&TtZ5tacJ^JKRb5%VH({}&g?!i$0 zX77N%f!&;ho+(a3>z|y2^(PMEcf0t8JQ$a9w=*tbg_FPv>4f&rI|&V>>s9!C@meS0 zXORLrdmI8{II3ba=(w~s?&IJouv-7`*B@WImN08n^e_QQjHe@`@O_nUGs4ti1!g#O#$5%{@R$2p|rPvpr`Z~=G_ zU}3l~d$B~rn9HNsB~)8r{14uYz8{ReFFEvo;SziQ@Po0*J=4IAnJ=~fln*HdTw)u9XnzupxAzGP`0`_LE0D%s+g0t4 zMD1%H>lHIyYBOj^d7xcS%{2B-=x;o;R@AsuNxvBRPXKWt;Si2oaog`TQm?4J%Q{q@ zx5)g>gi^2y6dU>KxqeDZ>m~DlS<~_i59!y8!&V-b1WZ3S9zV!%_26^VkMYD8?|V^s zFl$27HyJr#A0*rWu2OkyEy&Hbl8;;NJFT$%Nvbd#a?eSmi`;bx`VA326K{{GtV zbeS2dbW@;*zcArm@Jo~bi|6MoLM6EZNH6O$m2N8Z9s;!O2@fdU-Z?or9Qm~<7`myJ z?iA=rIeP*8#mM=zyc{7K4BaV~?o{Zp6K?_@^@MdMy=jY<<<0Uf)l~fS`LCZ4>BtM-EI2ut&E!k80#N* zs-c^aQ!po6E4l#EyN9K_C-hDSXMr50yE(mpT~imOFB!#hA5HI`mhN8AI~ObmUoq*G z6BLir(bxde%W4Cy*BQ|ohtFW#g0=ZE!QVUg`F7GIM(7qI{`m;1Wz` zc{@s^ebN8F$T>28VR-+O^59<|f_!9sq^y&qG{_1OSwpF7DN|1wj;qmoZpP`x-KjAO zWx3o$?8@=jd7MG)ChjJW{C<4V_L%#JTK?HAv=H5-LB+Xv~SMxwBiHP3$=hfAS-@)pyn|PJJ>n8q(XK#U5oUFP!CH8E2t3Y%RPYI4+GV2$GJqU2J*@{5Y2OoX0^$ZTmz(%g?%(llhYOX? z2ZP2t?E$1Hq^a&tmUngB^O+dOJ%`4?=%>~*J|+g$JM{C+xSz^@y!o5VyX4qOH}MX0 z?C(Xx97rPtaRI?v#3ek~KC^0yb|i(G#C_i=A3PdAYsL*n7!I4~E` z4^CVIeh%=KB#LA1Bd(a`HPqgd`~K>prFOPM{PDn`Czo=PTBAu9nebG~GV^ZT#0>!7 zL}Hz`51XrOZbuWR&v$j5iYfop->Q4~4->_%*aAM(eBUhT4Oh$F#zqf(>uqAz1LWo# zU(tAc>uw~gB~_6yDi7*)mB$IR;fX-_+Zwmrqw!L2YP|G!$BRaFfleLIk&-cyyK?Xz zXyqR$=6HN9T!a74k?f!3AdfNqNe$V!HzqbI!|GVGbkNhrr=C|{8{mJ-a4G-*; zB9}YiTK1s$D!g3+E|*9C_D*tlWO_Z+&i3htJN|nTKXksOAzyBAm?I5tx_rrWK>E4mOp^QW<4s(v- z$m|VY48za2T1y|5e(U$x%dYo8z-mNR?YT}Gc#@H)dg?i2u?>@gU3s6Gl>94rs-s3pv2g>XP}t`HY#q+O6ZIM@-v3zB3Ysdl~naFN@p{^F`^rzau>o zrXp%&);T;qGChjM5K$vjeto=X`SJH#qw@6kzn&s(Tg_|k1Y{_a5M3HR%|p#csZadz ztYuv_La+Ldlk`ByNjM=1eBgwrVM0^xbKJ`|JMPteKzr{#hDPaY%=s5hufN~*7t;HR zm)?U&>%KtrMr`$n-irRvy~r$Iy)viL&P$ShXdlmgeQ${;4t_+uTw0F)N?rVEbMH<# z6<$sOGG0C%MEH^Z@4||urDfp=^?|j{#HaQG=Yk)DKRRyfH=WRD?jgp2WN-L1pK+uc zJ4Y@}H-4T8+2-Dz@Do+deVmCepYAwoPG-+>`W&CVQK^K=e&-|{G{s4JB7@(Oor&AnKVx@fc;aNo zIeISde%DD{+T*zAKkg(wgimY_?8s9y$d7O8`|;$nSf^Z?-oKOH^US?F;Zo9i8IT51 zvMQ3#qIY>_t0mdSLjF%ahi+sfVlPIS_r~9`?`+O-{{iLn4$^luvC^VXMu8`P2|3_M zNWLD59rEVrTyf;{L_=BA{WKg>#N=`({F0Affcv=H9ca4cMvMTwe&eqIc!b9P6VS6k zkKGAa-4ilFG57|!3p@m*lspYfVp=k{2p071OCZ_J%Gw9)_z>H{) zQqxW71=uPRHW@#I-KWEM%8+@!5~HXT`@_e_I{1oV-(J7ylz(2+Fe(S^H09?M`WBNw zD*S9zIr#Un7@D3~N`NiE)2$ETG+)n8&kg!4Cj&Uj87U&b$2I;9Y>0ed7wrfx*{ydZ%(y{wdzdKegyY zs85^&PEdQfrMRg4!lEk9Bq}Q{<~-?&a&aN)H41XWlu^3W?h~^Ct=Po*O1G}8boq+v za`t_|05+#)E?r$-QpV|Aqd*r^Lg`+Kw7|r3z?mBFhY`AK!b`U!ZPG3Fp3e_v#bN5J z-e?)xH9oZ*V<#w|>F|foV4`S3nJKUM^THUR6&%5985jk6w9iUUwCqa9c^NP4%a096 zJ1jLf?eK&e(8jOm>_oKwWhPO+{4{u#`xW3qfNoB_*)p|*AZ9+J<(PI*+o;LJ%y_}X zo1pmTnBy6~e!vgu`5-3#n0RjmKh$#4S8SXM@EWdF3aoE6GU(d`&ISzaB<_~>>q$oObf zj@VmrX+lPG87Dfr{XpDZx?1%2sPXH{jDb0W{OqGHpp_U092Rk8RXx}jYh{3IIs zDi6Fbla_n@(BT&c^mug35hstzL+A=W^NT#fsxWcT_4`v^fbNAJ-HW05B6x=fM}deO z)trknyt7!<)e-F)Ol8wZUpl3n={ZA-%T`wwmC65O&gW?UrO10$zVyB(QN_vSPO5_@ZN`NE za(65kB;V|c;-WIoix(GN8A{>O^sa+kr@410bwRTgbo1ai5RtFnUmB}?r9NuizI^CD zDTd&nPyTKC{azTA(-i%qn`GqWPUx5%l0B$P(icrQ z=@t!143nWI76UqAOd@fdPXX=sZ7i)SU|YemF#SJ!5`E0_islDZpF6J6hqedHko~^yL!llSPX4?rE>jHl^J<6Bv z564)JUOv8Tou+#-kB1#pP%by=A$VE?#Nav!h~caCg^nBL=++XEeq*fsM9abMM8~D| z#cv_^l-}~?Z_xZHxQho;iTUe`?e<3*Io&-B9i{s_$o<=+`!Y121pnZH)YE>t>6PKZ z_0-7e?&+h;84bOq9^H4L`2lF;!6_cyk;lK6FaG;Tmqf?qCbclFn9i&?Lt`M5W)aj87-hg_r`rtwTdmy@I&P6H9TdS0c!wTX-FK0?*f#pg14 zqPce`W4I;J&Ln+>2XlbZ)&8@dlUW(Y=Nv9cD=(Q}TEek6`dS?6-q+C6bmJ|bY~}Ax z<_9WShl8+mxsyK$%^!hZahC!7^49HN zqs?qQboUo3mM$X>lf@L|awpSPB|Q$F-5#(%8Pd`y$1>vOZO4TSzE-Nd?vOGKZu?=^MF6SdEuhU;uTTC zapdnzqU6&2eU$Pf%@miLbQClX0iWTHv@6|h(k{*dr{c}2!N{Zi!LQ{`Vw7&uB5*Fi z%RlKda0B=ipmw05b0TS?O=yT8jnPm?+?r2-D=pz&fSdt@EE(MLO>uQ<4S3 zS4)xSG{-TE(>&_N8;M?ca!G(LU3xBe@_V2byko|ReCI#JY6lFJzuNngTZvOj>?Wn- zeYle`gLi&udK+x#$#=$zp0R@??IVAeddYYB?e)oTh+akXW1P*8x%i*=1pC1+ZVq#a z>dUuCxK`H>%1*00I(N~&6RC zfPAe3wr~~hL8WwYW(fs6m zuFbdcKIK1|);T#0&M|sr=h2kd1!LwoY$X*louT>{rJH2akqW()pc0&~a_=+sz7QG( zI@m@kcly*dOR5`Dfy@1W^K<#^SmPIFSJ+s#`#PW=+p01E9V8!znhWmZxY^N^eEC! zt%I4toqwpEQ8B_rK^gY zp0xis9i){{ZlK&n^$9VU>VKUYrFZ8IC*WIw`?HEA{ZDTfzDo*&K|^%&6q;{ zmy%)1NmP4AfzIBR4mN2@KA=uYIo;?f=NMF(QG86{(UKqjER`R#?^BAvGEivJwNei6 zQK!Nvqzm_y(%GB%%Rv<|>)$r5tXyq%a1`j^r&2nMqosTetOXaF^ptwyi@&@@^&G#H z(qSHM3U)vWc0kJ2CZ9^HO8t{C$f;3C7iHKRyGi*Ww0;I|Hg?C5`efP=@N0r=7{x{!W1uy#jPLuDX$0nXR{6zHa z+{u0X11Tkc3Va^W(@w^(l)M~NgUi8<;C8?Xgxd}$Tm%}xW>PU8Na;Ql;7>|96-X-2 z1}ng7Afr~qkwP3PzXKnD4n_#6d;cdc)hq8@yP^GM-0OqtiCF%(lm0X5^|vnvSv^34 zDUEF$S{b0LtP~uH~@fdBjOOpPB=Vf7VTvVLC2d-+ra}zWt|`gZd%s+oME` zAItt8S>NveUGjgs_3f$n1h`zgbCsL=kmF9FolB*bOZ~F^xb0& zoKfPYt`IuH#QA*Q2^g=X)8U(+Bj+p556hZ|=(sIgPFK?(jBngl`4Fp~i?vR2&Ze8X z%-*M7#}~5=(vc?!^&U5bXFePYhbMt`V6P-9#!MGSNzQh&A{`Xx{7s*4>)f1 z!`{Dw3uDd?+B7(m@`>MAE|vewJX>S#-BcOsXat>L5||3K9hP*TSz1y}PU(F->&~L| zWi)|H>AwPf$#O0?^)503dCM7$(fzwrZ=r8j@Wzo|{IYUsK8p;#Z|_qdgVv$o(>%c0 zWAb?&UqtyP^3Os*UZ#Er+zNgRo&+!QyS?Jz2R|rRw9Ng`MCGPFW4<6{dvPCg{L;?a zekwfL`5Kzv<8Ay5W4rG`SJYY>yHsNgapR|_^7fs#6sz4;qfy%WU-H(GI_^Wz0Nyux zQynQhdOvFG`n>Y2bQeQUET~Q3J++_vR+!2|5^k^9<%)2&^D}$pNOVg4pSYIXDT&Z) z)q1*{rGip9`Nma7kuK#&>Edsgf*)WCet;>HjeOUbLJF~6OP~6&JbxMe{N1rNrtC$S zZ0PvL$E3W7MoW2l3t+jWV*5^+;DpML_EH@UFyE`OR-1h%`r*zeDW~Q&VX|&{jvDRbSPAMPO zKG1fGzT%Y2G$Ouy10L=Jf9Ju;V5-FL(G|O-vZAakT&aII{TKL2FDfe**KfFFu5kkE z&++i(Z@*uIotsQd?i3of32%Z{9-IP{FYy!aY#oXG-YopdN>comstAkhE(&qU&9?6o zrDmYLo$@u0zXzx#$g_zD@ZeOiKfr!+!+3CxTknJ_Dha8z7u@SOXWZd9|2d8QJlh;+ z1C8{BmpDn6mN?Gi*}OE0SIl}La%w?N{v}IMG1>N3^~Ty8+E;sw^xt6Eb*DT>+K&Z` zc#sBEeh;6jAb_AlI)6#^H;BuwHErC*0-YHR+nSuH>$_R-q70bPjURk$i*N2@^RJJQOKu&A`TX~QP4gtP% zQbYZZ!%esOH>n(wJpQAF3!DT_o=W=TKOA@dCwV3n zT>zKXS8e3O;?m;t%Sx-NH6uncPBfUQIPy)p7+k71uOm*=*6`&tx*s#ZEPkB}R4=7| z6@IhI%Sy|`^TTDU^1~O=A4HD3{oZlDMyY%4OLXL}cS0wf>o`?)ja`|G7fDWr7yRd5T)Jmi?|zI?oAJeUf-?VV@>?!c%W> z#=mlpGk)FIoP=|p;{8W>{|v`D|9O31>F;-elXTAyoTPg%VMOW%C+Yf`PSV}9lFU&{ zx_eJ&;t6ZOD~|K-V(>2~VNNnwZQkG2&p70sWN50~nH|vothslmlB`K50;vn;fjH{} z=}K{FdBi53@{GNox|Fz=0K&+;zc~13yj(8jA203Ha&zxay@0qc0$1`N3q!2%FTr|dT^^gO2sze)MHI^=}*yV)7Pt^(9L<6l|~ZlzqyK+FJ5w(V}15=r?z6NcX+qMg=(MH`S;uN8iY*j*o#lr^<6Iv zw+=?$V}X%fO*H6DyTzW^ckDnYBlR+REuMB6b&?r_-e}Bltc}WZfB$6a{p3^BF7opE z9hw0~YNqxWg6`Bl^89EZO|RH$@<+{gsYh7+S_%qoCwCeZ zb5b5Sk3Zx9)o-zvWF2sBcp2tld2u+uh%r>m#c)}P@HKM1qiN-Gr->OZ;T{_D1?5Si z8BDs32aCbMK+`SjWTNydcpN)j)z4{%5k1z-v^nywUhe)A9ru9GdAGxbs-J_-ZT1aH zoeUpOA)gq}ZT7uswUhU$AK5EZq@nwVe)|;mSY?m9W6yCy$FU#UKF0bRj=f!euKMYV z#rRi-uD8?nhw4Z!)th(WSgIs0ciQRX8Fp@xm?V6U>dnsjD9z8qmdqT%hGe^j7+n{{B)W6$Fm9CZ(X@B!7idOmC-&o~L zM?yXGE_>Kgn@_9ep37HX?PZ>5zZ$>Dv~QbxciN5caxRd9SpfD2rkzrLbbZ?{)EA~r zF=zh>cP&KEMZ&jmZ!cfErTOL3c9I^I zYkX1s9eaR<0M6vc`SnbodKWAGs9xd^`mdXNciNlK#yCm-G!MQ6BI%ZM-B(vvEYewv=HGFo+q64|E~6>a=&8x& zPV0qc29UPrY~ZIGb)U(9N$*xd!|MAoD3N0(xUpHh^won+X^JntC=^ z4lV>&f?tCBK|2^A(-~Qi{br|~0hR&cmHk<%3*2dU0RB4-sZ3i37`>WKJu!VM?~0_z zd-C0#ehw%Dmw;~pc$$6>_#=1$z}NH!(Brr>b_bsW>ELv5E~o&Pfg1pGaAr^o%;3El zyf=gN>=rVT@_)vm_hL?QX+HlAZZgfiJDt9^OiW6Cmj{JF^I6+3Z(VC#!^?J$J?sxXsh%Oid%^HMzY4>hkU{b!(GW$xYSYoLvPAmuAOSPCNPZyK$2wQ8>& z=A-{C^sn&fUjyyc;5$4Jp+xA{LBF(W6}#ezw?eA;tnv)H8!L;-;*kI0KKj%))4%7@ z|30+u1o!hm`VdNA+BMdjW|kLMUc8D?3iIc9=O&=>EdoyVLK0=5ydx9!Q-P zp-a1xc@f_4@}e@c8$?|Cc7%_vlzK@XmplC-Xf}Z!?v?>RUE_B5TJgB(ep0AdJ;!T1 z{VBcW%hQgNiW4XGNFJc`hOXErAFzJf3`%{Ll%Ke{^ zf63zmd8eiW>C3M0_^|msud-tGs%Y}#$!|#>m(rybm|ml|eEATXT%Ao%CZAHVzeH^@FE-MJGS=gN~D z=b(1d&Yt`G*RfyfLwKNn#1w+r$lx9)wBSH|LqvS=3Mf@XQXl%%JSSmqtmNE1*^`U^ zZF$<6H0}^=f(=f>v0o?76Zt>=w97&~zn1!CvEyEoA9+6>z5a}OThsj#v46qbyE9HE z&6_wnV;m1wf=IgQ7f8AnS1?=KY(o(b-J^YU=?Ts_&7+$Q&3(b4JP`Mj(zW`vsI-hl zhh^b7@>iN+E=?!%v1UkDhs&LDHnhmDDbRH!DEb~Zh|tF#GW$T#=Uk@a(~*`!>ah!%$-3q$ z$K7(3lQ1jGNjU6LC*jC)C*jl5&;)$Nk^bWiOPc=wlKzLyy*uL(TxOHO?mQ5k)AZYN zl~+-zef&7+ecne;dJ=#0=wTO3rO})!in!WOZ?o)QR>~r|xa^PlH?^S3m z05mC%D7&W5jwfulZ`sKGCnx&oz6ISHbMMZmg(mgX)N6RK21N9#zO?Gh%F^m^Zuo-L zrIq0-#;maZa>M_RyYqmrs>tI1ym=2nL`9{APy#6^Ep!4&Km=5*tk_mvHIfL?Krjg) zYXKYfuIsw?uB&U`)wTED*6yk+c3nFt#m4`8&dh!9z7%p_NdEu7JD<<*-SXa>GiT<^ zIcLtyom*DklK$-UvRk9XdXp`%E|TmP_yI1-pj#4G4dSa&`CZ1JG?knZyXy@5c)1S^jsH=xl62n;a#_8NT#;Fq9&#c{{wzsOmk=*o z%~P_6@J_2+SUSbB7{<$kLYE~uME+fEL&|B%RuJye+RWU85pQ2~IPVWt!Nnl%0 z=;kfT-Dpm>9niM}FtXLr9OaEFcT$gGzEgCOMwtsB@Oiqtr1JF* zb7Fomsz@2jQd@&wCtrWd@)K*|x$LsW@#SPfU1&1 z!G19X7268@ZSLzWA9~w>?Z8Ck?|b2CUMM=yD)hGS^rRkl1?ZKoJF9%Inw5<1wE|yV zJe>jLPsFNg8Q4eZwA#K1Dj#$(wToMleKeJO^j{tR! z&Ric&X%#x%JstW_*WZ{t?L;|=g0YeRM{&0WT60W zr>mf^x?T#d0v9>?_WOw~kVW09rdr;gM31fBnVr04ZxNT5e1`md)&(fPgQ0&DxQ!={ za$2Dtv%S9GkUakh9sqY~J^qANmBl1dj`h;_D(A#e)lZUod=fkd9&`2R_s?n#y(IPc zb;|#n=a+kj>an-4$05*XJ@BuyIldO?&Qrw-> z7p1d`^?H6bjaHE1dvg4*^XU?~*jmT0whO(s3l^%&_CP$ggF!7=g4Mm3IIlFDM4nfLOelK>UTHz$pOVxa;-c4)72lqTTgf@Fl=s?#gJV+m--J z*$u1J4NKDP58x1RI5+{E11<+Q1IpCxDexNj5a5M%Pk>DUBgO7WQ+LYKo$_?w8&rV6 zNs)@Emm;@AO0N3*dM6UoP3m4sKiKu3vU;m?GU%_V{BwQ&!^sy;y3tbIiZuUk*muj# zQU~3sHS|HAr#AvR+k>6Kwkk&}Q9IsWk6cep%PT&n>dlelkEC?l7t9Fw()}PS%BvAv z*(kg<_$pxh_XN#NzvzZkcAE{#l&_yt56HFxUjw|qhqQGgHqZ^5-fgbqi}lO;aGNSr zbu3$f-j==|rN=yn`9(zRC^tEAlCZmmFPD^F)M`JW1~?cGlHbY`~BzL{!|26{SU z$p1osZSVFct-tSPGh3^+&oM<~wgO*+JiW2dxenX}u2y=>=hd5CY885f+*R(2pmQg{ zws-UU|M4V|u0B}b_h)K74)JpMd-8u6JOLim_F66D`&P3%Lp?v^$o~cK3V6=RMXT;- z$ZV|E+j#PS2fPp7a{a2Tk_fL~jp&?}R*(zydGIVoH++R|-+)iOTzKzA9Za<*Ev6TW zA7j75e&ulQms#kp0l$J(u3qK2e)n*1i|H<-^AO3Bd4yjX0gEjb+ey4iQ^+qH;p<(j zXa}${zkXpo=;CLpe2(<_mXK$6&He1o zEn-^0&0e>PUK{J_O@Pkt05-k*&aPhFzTx!I)Iif!YisaXu^O_pRA?DD%3Sis2S2}%AsSktB=3&q}c^H(`3hjrU3!aVX{zqsn1`Czm52?6O zur#H`^u#|~vm4Q%8r@T^ZT7e5{+w^_-}piIw-6o3QUy&heLvIf(f7BI*Jw`0p`BG- zvq;yx@hYtOGwbHpFbQ4D7U;n%ao6heO5N{+)}!DV@Gqrkd;HFk)_uB`y7PvgYoDTB z|5b0FuI7l7P56Jw{kx+4PvoeJvW1zzwGy1yy+!q3Htlw>By z_4n-v%bE1m*n7~ys!FomKjHHY@G)T0EA`xF_`QY_r;z8&+zX=S$#f|{jb5&&czVWa zIb>Ftq~%z~z4zUH^!S_@(G%~6X77O?EXVFY>X91^m|~S+5jU8ea{DE`#EA$+ z2Y&f)@C84_Q|W=X(<2*91~d5Hr^w~ee%ymGQxCECzXbm`wpTY$le})?MD6FN;pbw* zosswMJw!u38|}H+@IQkG57kbFuR@q*%8p{P%bKcOm~hp8vkif02#;L_-Sk%$rM*s=`|XU3G|iH$A{{15;z^qSAXND)VhX%?^d9PzEOGy zK!>PckBfnO-@uBx>UlGrkyIrX5N#bk(L+l2KWT1O`{GIcA zz`43kKzbIk)B_K)$1&hca4EPk#Hc@QaXo80r`oM;{JJcsV;dIxH+Dz;x(#W8k9@&n z`aaWp*Tb(%cjx?jSbMC5#?S1sgO89UrWEy-wb;>Af9^zg-tbe`IsLmif6ft=e}{kH zv>zAxeWU(cj|a3Qw#V1*m_v^yd5Vs}Ge-mlQOkV5zZ((`T=euc>Eat%^*(@e- z%>CebAf|dVp#8SK|0aHrcY+p8W-~EHWRc7Dl=yF2jvMyCt8~ku_XuE)KkK2^^>>sGZL0B2u?>vxv)%-^h5el@{G6=Iz~2CojjX3bjQZ0S z^DE<^4E7nFTwPVoO8;cY#l>5)i1TNC4VHs7S|r~n}n z`1_ZTVWVv(pRmwwBz0Zo5o{TbkE(MF7 z-k149H&GEeUu~cI>(#S_4)UgS4kmvze9!a1ZqAO*6fLVI2|ikZ9&)DiW4rfs`8`JDag>wy5AVzd@uiv;GnCFI4}B}7`oZ;pxRQ}NX*+t|h{189LW=ctt%{~}j z2-(MqxsrH|@+0!*7?J+^dQk_CxG*O6^OiiQI4Vw#?<=kiF=5LpG0lPwz2!!AG%Wh);|Ng zpZ$#IB&O>IUdYVui;Z{oHTx}E@Lljekd~!gd*$fSy^kyzf^zp#pQ@L?YQ(ZFG;}T zSZLytR3^-i zu$|{=f^1BfB-=~sOKkjeAZbq}KX2!IVKssjxjbq|m2TLM<0tl*__(SR#xjbrzf_|cQ=n!(;50nA-{9ib39JL z1BQb`+_*ON`+yU@|DC??+Z!G?a~+w#uzVAV?lsfp?CftKXUg}Xe0vmN{M+L`zE6&O zd$Hn@|Jh!l`G%3@lulG#2_gX#OyuDL(9Nv4{4{V*?>vcDI z5()4168Kc}w!KeuG;~~fYEzZw#v|VDH6TKl6hG)Q_kCew-=p`5D$C5StniUtYvfIU zu~p2aZQy0EDcY@Z-}%9=e3IW<$|GfwGU4HhHnY8MHRj1GW1iw&DyQGx8dRIk!@Xy$ z*RlEwrOcV_O+V}MS4#3Z&^hq1-52SO+P@mN`{Dl4t|JuNLuZXErR~K)CRPo^zn3q2 z0nJD3{Z+^Lkrvffw#WPXL-o7L*NB8OMyp~g_l6o!WgFe~2w_bA6 zk1{?E-sVOp&<$umkoP?8;I|fG14LH6%b=arkr|XXRZrgD>e_5+-X4oBh|yyyhAZ|>3*NJ^KnL+}0Fwe5Wn zG#3LI5=tE?T^$#;*1oz*UtBtp(*FG&`$Eb-uw3{-4048siQXY zUX|@#>Iy(5`^5EHbf{mHA^yAcE!&%wr}S6bdkokf@cd72youfmK$DS7mw8zK@p~VC z(Q-*xkEHRJ&&cU4xe{{c$cdzIxpdqWTCW*Z?v|z;^B@5=!ir1vFG&!+q{ zl{e|Q!YrXkc*Tl`1`6Gl(+kEqv9*V@7r|Ljahg!r2-gF4LB~lvqt&Mm z$mQ3Ut_NM}Q|lKw2yA|zA>=y(Y^Cj&+_$V1pUe6Trf5+h`xPYj4QreJ-{(}R!{2_= z{@;n(`h(}i%}3t1j&YiQ^sR7@xwZ4>$y0E=a)8Iab)UqkhtI6gMfSmLByy(upbzo< zKJ#grV>qgvOVwT1S)30|U8kR^KlZjKI&_^x^^a-4Uw0wh@0Xa^jCV|YJbU2|*v7=C z?qlLR4>a+8e`n$c*BEo$BgO=8UQI8VyBbkwVu$n~_V@GsM` zGix07<$d-04hA#8BGc}xYf^c(#aZNjm#Qaea+2=7#fYJgp98Xe8S}=dD_&w4nop0~ zUsCx?6_a#)`wjVvB$I64zT`~|BsPF6q0t%W`ck>*z%MTZkAnC4@djXXkjHnS)B=9n zkqdLlDi_Qv^c^JGiChc`@nN;G~bWg#!u*b za=`L$`xy8MeGl?{xcSSMBlrnCU%OlN!rH(iaQ;Bw!)UwX!HM7uV~bfUR3ytRNgBsJ z&7C*=bn%eDAMly;Gl_>v3{+yFjl^jiX4J}e(#lmBDwm7{Li+_cd*8Q2$=kk_?wGUK zU*o0sJzvh#MZrj`YhbIif2}0T89G`dZ6fpO4UW zR6V73x3BszJ0y?=9=R=&bU%2!`* zzvWM2*vUJGAdHJIt6a%llInZnt9`W}OJj&bFdI~ZNPbU*xNC@R;D6js_6s5RIY*Ms zkpfYz<`f{tQSDyff1r%KXz@)dx$!st$&{oh>X%}tp9kzny{zVIlFgC)Uj^?0aRD^WD($?wu9|H% z^vySFkHh*Z-0m-CP`(uZ_yalPynNuFKhTc#`deiAcI|io*^$(4Ft3Fx46EdFsCJ2SB)&)+cg@q}iNF-~ezqziTE%<-cwG(Hwg4|3XrK zbYp7#PR~tj?cMa_$D{b8vui49XIEF1Pvb2n@;*5>tO=Y`GIRcE&g10$4CoE|8oTQq z!0T=GPfu^E7PWmp3he&wjSzGHO#5Box_*bMwmE0$zif_}3c5o-Q7zK-UIlN-X;is# z`mVlz=;gxZd`G76X_u3)dJUpvJ|lk#*l!Ke{KHWELiOgC>*9m&IBKUk4y25xV`h0KN3Q znGaX*y5CID=u;aMW&-69`FyOIeP?_Qg$;8Ewx4nQhsxBTK2*wefK^^MNtD9(xMIca3?PxQ;<+^5KLm7*&m5^B4Cg)S@GZzLxV0^C&f%Wz$3A3mfI ztf0stD%Gzm2-BDLll1@%>qMJ4YWdnmpZ1HO@!{?N`=t7G6KZ~cUsShV>-h-!bjJKS zbINKK?I~NwH_)T~=8`8iyB~3{en+KOgX&SI*V4bxE2mF_E)^!?ew_AwVI$wyAHTdQ zdbD4W{@eC*zKiYmZ-2d*?~a%AaDS54jVfP_>(#J)Xg_34bU*2KB-`%_K1GoalPjS8 zQ2lY_eW$X6DypPB$bVSRE@7sU+SGU*eu(y$rN-tGImlBE$fyld$lJ%bUd@Wyk zeb}D>Y76MQai8-uv8Vl>BS(_$_X3~C0vVsmxGzaRJPwOG-bvMSf~-htzpWv0O(!MWjSP1QJ;qfo* zNaj*+a%>wrA`;{hy{S`*R!&hRZD{U$d&J4=St5 zY5MUsrw@Ogy2~Cr%fI-a%73{2RQ|sw-xBu=+aLGKC22%STxmO}^>^;CE}27236qB!P(_ax6lzkIrFCKZW zU7i7uHD)r?(P+O6vTm)T^8H?u4UjXhrg8y}w)k!M%>5@jx*BIebI9AD`yV3rw0?hq zKVL9+&09%=>t*oY?0l`}kL-*;k-y=S_dgiSmn_0@-Tnu0cdpA=`}ex?P05S*Q~RH) z|Fr#ga5>oiNi#|jH3>cSC)jJcl9$~F*FW+Gl(H)4hd#wGUujN$a}Jij=LEtd`RMqg z|G9ARXK;lp1E044Rmt;poH#j68-FxZY9h~>j6WLY5NZ6;e-U(2^(*qhdi`Xdzsa#- z``;Y!AJ=Gq*j1b}_gr_=a_DP1S(9EKuW?zcJU#*adw|-(uwU1os6oc^sD4=} zPMYE~u)FVKZCPL4e~BxD?Vk*`g!vS^+a7e_mm|SsfLGZ68t@2s4gBJAkWa0LH=3=7 z>IJ-kr?Q-WnJQO1a{2+!O2TsQaV{^9RZ_$^Sd}Yil2y)3>g@DW}srGK3_lPyHYzTm{z1owRl)n&H}+XTar4QU>~A z1NRS&qj$ny1?`;czaXlc_bbo8rqU~DF3$czjE7Hx?SD0{iph0%>3o<}CwCkQ2tC-|{- z=(ayq{qmp2#|2?#(|%WPe31S-@oRI{cjY)w$=E#a=jP(E<(?t;!um+0EV7={{#idx z8K>S_lI&NIaNhqm43C9zf@pF@UO6`i$cRadr?F#7s)n#vU zWq^%JGPuP!he2EsJ@Xyoc{k3}QN1`!ZoLHer&Q>xtMm)GpLuzNRT$2F#2>HIBRB5n z9zD=`S9HJ^j8R52 zKEY3r*g@`_jL^?>Ikn|y3*^Ju?UW7k-j&U3PeDHf{{>>x^MKZy?C&lS3ArY5NF77| zo5b95F9)|f{&QDS2Y3p3J>(xQwV=FG^(1W{8Am>(mt;%OL;7A!CNQP!+CEX`HP!xs zU-L7wN`pJnTVOo-$wy=M+jh)Wp39A2vq;{Ga<-DCdH!j|udE87)lC#gM zkMi~-&jUdnI3m5K)IOe-elK;E78e_uJ^&OVY2P(!X7NgOf|4D*`8#k!GJm z`i`$OMXrYwU2lhVtbo^^CuWyq^B&;yXmA1$WvqI38GQe@aes`T$au8l?dLE*G8`p! zx9NEDHu#>|CjRol;1Uym<*z3GsyI7slp^!Li~>kyGJh#!c(nmnr3&T75}AB?3fVizz>cG=K*~A zyeGjc+^?6S)<@gu{e0(V*DKR+?=sN)`5XDNJH7vG#^bZ(OzT>w_gNd2pAA^6k}v8d zlvMAZ9lDWrs(L->hxPQj{IG#uUE*{+E6`NmGm|Qwm5hJ_Et{5qYhSqeguIV6Uz?9h zM6&r8`(qL3rE(tD>mof-@+ZoFoDQ+{)cifc-g3v$)A*@ey6f=%KB8~e6&FwCkNprG zW#K%3cQ8})3&msdr*n5dB@;28ruFCTlIkbs_VN#t9Hjp0I7)UBqZ1{m^(XZede0KK zHR-rSv2x4$Vuue!==i|148v`AX3jR!M3P zM4sllYnv}ln%ILYLCfrc*0;9@n!nWd60#%Ne98B2@DSJlD1TxPWMI*OA4~-JaQTY> zk&OKF!F7O0YyMmOhSUOniAU$(<@*oo=<|df<*0^ovw`5%0^StLLy26MwLef4z0ag(V2$*uI8 zb?t8)#4rNY$bP96E}k)EzI&=zck&Gkp0juP$aBG1Pzt8FatEJk@9-QOPi|hRzTepd zQL>=);w~kRZR6h*c)i|unSVQX)xRMsod2mWb8PJr^$XNL5I;fuh0r*$%~?xp@1%dT zj`o&*8(#mRfKaQwDG`%%9iP%lmEms+xk-d^f&7hn|& z&IIN1Urn|^iq>pWd3-Z1?%Q<9Xk>k_+Ibj;X- zt2x2c=(^pcKcey$nh(!hzN86B>JJJ%Z3q0pf`7O#D4b7RhsUc0JM*JIfGThixFPsM z>KIk-+DM=OoGQt0`7F@q1@C(`P z?b~2JuOYFt->pOcyK!ZK`izuErUVep0lWHRoO5yQ()$ms997QT_^keXUO`AsRL?Jl z&K63OldhbM1ETBG^t`+WVCvj*;nwBbVm&YPeZ8xm{{^y}agSsN@Z-lPX^UnYL6>|MtPIka3PU^ssK$Jw9eGB~Q_0vB>KdkT8LVs)Sk?erU ze2N2kDM;!&8IOMN>`0Al>R-W^q!#e)^`83nLT;GL$qv|qlRLqEAZ=VGo_Ys<*%7cR zWWZKn9M~T00~YYTPc0~qut?JKpneC4StZ#4GC+SBNYGr0pzW{(AMSB{I+^E^2*g|T z7Id(bW8e^e)W)d={7F@k)Xs=}A0=19=wdmM6t*)WS7Co5qFrknJ2K!gSHR!;r`nOt zsdB$ofcMipL_KFR-<4ABA^S1l9`Ym-Ie?XO0~q%g-^)G{+P;1tiSwGOxwQGLy$BvcWhZkdMcpqw+0! zRKh4K-~Zt_5R?E>woS$*zi#L_MlP4eUj~SpAgK-!UOxw4$Q@Tt70y@%*FW-}EA~Us z@0Y<>vvEnyA3LS_KS$ooYYkYV{};Wy3cc*MFpyiCG)}mp+=mc?)g_dtIeJpht7_}Y zyprcCZT$Z&N-z#(LAw>~n~S#W{0w*te9bfU1z?;poAa+NIvLY-YhyOLhP`#41D_ky z9b`>0rYDlp^Ll=h$MIe8gE85gf@1JHPzg=~R{-QB`+IgPECkzwIqWH11~~S_W9iLr zdM`JoPd@lPdwJkN^c@X7YOL>Hz_s9h@E*Xk$w69jZUB$7=PqT=<(d^$CKpE|_dswY zpr__O4BiBcdh?jE$fK-zjCPqlHF=aR?=t8vGA5t@5s5Yu!OUL@xG#~ud<;iEd=+46 z3*fDwC!mZ4!$B#S26hL~EP!SKc^1%P3oZvY0fLlU{*9iD5N|aSS%&|C+#5{(g_O6; z$sDP>VJn$e9R%h9@)$7*kk5!;h{pKMVNn7zVG!ON^QLjxpPi=VbVw`mr%P z{25#g{sCSGp8(3fBYf{jxp&+OP^UZJ37!J40)CUn@25WmUIcWw-OdJ=0Ls66S1`bs zJvImZ88hDk9sti9b0FGuX3VSvKrUzH7;`9PIFvSK?>RGPKQJ2{&K?|(fUk_1mkp4yd3AugJ?u+kYR>`W zU;8M4_geU>h4(s)eqA3xz1Nih+PCf~a0a*(P~N&H0cBb+2f)LE+W~njSjDCs{lG9V z0aSr=!Ij1w&VLsPkg-Mg7;^;jdPH9Uog)th)YD?xX33tQ94s*AnB&2pz_&a%wLR;) zpncls#++VY%vm!5^>o%^WA1qzd<1Cwdp8EX!4Oaib^_GNy_EIdBf;t567V8^Y91Ydt)Aj)}yC_i;Q{V0B|Tcf^l*Md!OwEDANna z5!dd(xEY>aqrP8*hc|XGX4$@AAvn>P_umEZ@d0!{L>4}zjz2t_cUip%-UeS7^T}ke z2k*tmH|Cou#(d9r-}ArkzcFSdvb^#%K;5sJ51_f~8s10s9{@kAec?2#X5b`nJ9rWNXkuHw1l|E(n%GwF1O7L#8~bB$e=ubjS_d8j+%J6C z#D=l2{;(6kd4O^bUu|L|`7`d-xD#EzH-D9aI) z<;eTN)8KOxJN88Y&Esf;6R6J1>c(3(v3kbCPzv9ZJW4jH$@@MMQQVeIf>V3DySesAo^PmLWz9giIVrh&Zy`HrRDidYv@ z%y-DPop__MTb~G+r<*beP;XQAH+Cvd5lkiDsmvg4I}hAp>~;r%8e_Moowond*lE^$HJQLsOcyJ!L%EUXp2Y64`#v6ma zCf?;3a4C4)#JlEz>rK4-TocdQ(!_i6ea}+?>$`Y^Xgqr(u%n6hJrg_$7;EG}GiLy} z8QcS&Ht~M>fOl@O8b6-{DKEf{LkFK@KqDPn00Fxzh~l?RhalSZ<_eE zZ<+Y@6HNSu>rDJ6^7`8>6TkTmbT$0ldaa4yHrvE+=eKwK-Nf&F-NgTXv5DWs@ow_E z_rE57-%1mIpp%I|*ulgf`oY8>rYw&Q0zaAf6YT-{Jb8zSKlQ7LKeLI6KRe#UpDQ%+ z=X;v?3+z?=0(JD_eJ1|)2tZ!%QaA7IY2wQ`E_=?z-+#=+KX}N*KRnLFKl;GLKmMnQ ze^P7WpO%8}P5i6FO#B<_a>YCo|DHDf;Z74@d6|i?qD@xw-!;#e_>V7`_)pZy&y@R@ zMJE0$yso|0B+Th15qsJs>@t%`vve&{;f&uHp3)l9AgrDZeHS@ui{*jsQlU_4q0UqhrVhORiJvlNz6OSBo6zNNz@)`5_Qu}Vt#j%SWs*d3%4_g z!w)ctMezH_YLhqu9*(RriK8k^;^;Xhu^4(wI+?`r@N&YlCb4w6vAIs_Wsc(@!-xT@eq7Ga|m34oN_(U1Kej4Po7{BPf>?Y zXPd+`^x;$JN2k1H5-(hC5-(Pn#LHWl#4E3u#H;U`#2crW#G91;-?x~=+kZ8Q_jWRg zWsjN!K5~3I_5ERvNqn+{Nqkyh5?@n>Z)l@$ssH7)*9z+I`@>CQWv)rA+QuYSPcn%$ z+ndCX)ca5H_cQJC>*uB&3vAlOIND=OyLK;_b{lZsVFNbiuQ2U4nrhm0T4LI5Je_z! zz43oWaS`(dqZ&yXxA+%cK_{?@+zH2l25unN5Ly$8lQb8nc*_FLO8j<9wDC=#j(*XWX%XklJbQW9XJ3mLaxUb<0s`S98ZbP z*G7_`r?CO~k8;;`Aj28k1LSaHW5CeY(P_c@l(vc64rIjrzmPO;ix)Yt%yZ-R{e3aY zdQ~<%buqb6ymla7*1%e@034NGLptAge)_%CmCEhc$#px)%+u}{$_}fJXyftOfyJ7m z9Y|D!WCv~MuNPCEh!G=J~ zy|Nx3;p>R=5o=vPT}qZD?WeCm63=tsrEw&lQ{}xO%;t zV>KW&iL&zb8nxb3uWJ6%BqW`e#dFTt&tDIGiW6zX^MDje^^fqS^MlDM<(pKBEJrE& zQgo8GU3>U@)m__xZ*W5BOxMA*CzDO6KW_nDt!Lk+BBqaNMx1=k$$!9q z0Vd1sS1WQK*1J*ndva11WNOgrBcvA6TYZx2q|eJHM)|rm}8PsQqd4 z9PE&`zu1S>j)EQd6DPkS3SvOogQVSCL4GZ*A1Cib1tn>lyo&yyKM#_s@clM}{*!8F z%08&K=Yw`0w3+0`^`I{BFbtG%B^@EjhwP6ld<2_G^Ihb6RXzq0DU+mpFcKcr7htW0 z4?d)4(ei`vBvdbCyuMWXkML6D`Rc&As5z1yR7mc0rr2z*MCY|4U-&^Jr;qSc1`#zF zB-NMB7oJ1|{nwmcO0}2MNv`hTYv6~Hzwq@tc)AP_E^c)H*nvy=HF1f7_XEcM1K$DP z@kczkLHS^7$!FauYCE@$Uo+^Ob(ik9@@?SP3_3C>vCcbG{#@&5Qvf4mU- z-p+F;=+CrXRQYlJzW#cpQ2VE7s=XKazfpnYSvYQcJ?uwJ^He6>Gn zdBT1Gk+4D1{ZxJ3Cnu78an{P|XMBid$GaGGIk=s3Qq+2Bn|?Kz8Lo zF^I5T7io(s?~Ut$u)L~&Olu4ts5ChdgF75BPS>v1nWNI@7$lc(NDt7?vaVOwxQTs~ zzB#xb^C!gghh882tL=`F>qGU9@*mXo3@w!%yrV0f9lQ%CRUjCD4C7qKsj?5sl*$E_ zwQNu=57h_v#c!XCpF69%rqXW*7`Z%79`~iT%D|Rn>5?7%$KZ5bM_rHp@3i&kDWP;j zX(QIaiPh+9Y454bvu((nLysZGJiU(Vlrfqlm{BhH8({v&{>1=3^Qy;YGm-A!A;E0 zy+ST@pusom(Y+T*ZJWDJ|4h>xUay2jE$w@+SJJ+xJy^9SE1%^l7kRQ)p63mo+es(Z z23HOATFBlH#!Cyej~f@;!4GON?BKgxaqM80l9;!EC}J5G_X958DdXaq)$=NRr<40p z;{mRJJxMz}3z$tD-krZoyS%SQ*De>k^M;>V@5%Q7xegI7O4|3nUDCc6e<|$u(N5An z(oWJ|M6$#avuOT6VjC8s74M|=n_JV`MY@F4iwwWzC@rWbE9njW!Bnnfusjy%^Bf&G z>A)}1^MfaWBf+iUL-hVAPzFRvl2lKzJu z&JJHsxo>Z({m3UTuj-Jp1!aX*Wpih-ep%k`l$STt=bBv5oXXWdA+|1iMxPApVU2tF z7!v;QklBtsJLC}R7(*4ig&WevI|J44;W%Mb{hPAO(qtr!_u(ZDSs+(2P7aq7N#dkS zlGFO*&WQAWeMwEbX4h&TcF0Sume>E&jDqpq5OISfx#z(ijxZn8lrQLGC@y|7u29;*Jv5cF0XyAUl+hBgqbV1E|Lww$CDUk@c6xW$MR! z!g8zQyyKwrsnX;`<^#l*mq-ynvY*TIX^x@V2IIVl{m|)ir7zwz1cv(KkdO5m`l~sa z2V|flPT^3X{@(gLpY|=8gpyY$^~V20(RV{Pr3k+ye`<&N@o(}@qbI88-)Th8*B4pm zCYZIN=kIK>p0A&4>N(&g#ys;BYf$M?UoSQt&qbTYOHIc;4m0M(@x-q|2jr)%QktB8 zO}nX{*Yceb`}sNAkJoI&_K`E_m?x5H#fd;^f#iNCqss0hl>9y zgRy@AaWazhTWr^qU*|VFyC(ETlC{{ip?k@RBoRVMaw=^i#PORYHZtUEemEGQyN2$- z{dy^C|8E<+H}o&{it`)2RJ+G2(4ohA23%b8=@!_%G{p%;43oh$D|MC^6Vh~@jTzTge;9+1J1%B$#SAJ-smZHL|s-T~i$ zU-?sK&r||B1y}`9K_HM-L)<3&WRYypMeaPv^<&jkMOt-FL~(4WJR)t zw0CTC(37j=xGwYj!{a#WvrxLc*t^0>av}*)&?KiKr{Vd-CB!9rfLDku+&~PBm1NA} zNt~!r`=|M};z!i>Y8!i6cw8&8^8YZaz@8S$G>N3>>k3mIt(zZIJz97K;&U`O2Asr` zF~fL5M&*hpM^})4lYWTmiR8M%ROV^-L-y0@J8yT%*xAv-ZG{PFi)oPKm;QJP=V!`! z*p5moMwKI_*WkHtF9)^|+o|yo^gyBVDE;VS==BGKfhcoXW25=34Dl!ZDtsNaA1}i+ z+QPHRlB7Ba`&D=y&~*T=yjAYyh5SOVf39vvuOzKE^jo3E6r|oB;qLBWe-H;+Z(^51?@QperpWD=qAR5) zso!$~bzi}IA)~feioUQU6j&!|8M_w#$6edPWt@nR zUI4_nB>k?ie~>x7u-z1^_X1gyY~gY~rP-uG8?&3VzAeOV7BcG+JSSJUis$1t2O`v@ z$o2n_N{Z;scKo{|^f8Zd;a@B@$qo~NcnZi3F;1I+Akq43_Mu)vl}`9G2(#qMnCkIhuBuIFH`~DTLT-A*^)PAV=P3ja-k) z4=tcc`FRUk1z=0LmBvqwr;|y)Px0gZ1Es6FmUgYu`-CY3BQowT*oq z_D72LKakWuccaP=^vq;B-qk5g9W14dcZba*&pL28Se#x_YNszszn8j78_)Xr?GzE@ zP5Mi{@ow7pV(-G^NFDzU8?O}Xu-X3jyg%Yc3|lJaX>v{LM(!^{uYuhT%ZJ(lR)h}o zw$u(g7kc8fi~?dTQu56>CeZtuZ%fC&O5fW*9Y?(n{VO3wvcs<7Qx>sEP(X}DavUXg zAhm@G-%t-?7r){Dq^hdwg|)#_g6Q?5{awrB?V|Q~(eUaoNqPPbof;sWD$Op2#)+!W z!sCOe`Z+~EY!_MeFzhnOk?gRC`8*4VgOId~ndcw2gI&lLpG}e-_6naj1BoZ5*+IGJ zzzxSPudqT=J1F|~4!Oer8TOu>NTO*q$!SD>+eV)b_x46h z^&9>O^yzT?4^2*=J`*{9m|PO#)hX?Q$k<^YX>Q52FvBl(*Tb_|r_x8x!}?2VGirM} zf24l=F5DifzfOeCR!WnTL7WT)BSD(}lKq){eI)8U+yLU$V2 z8%U>C{rMRujU?4yx*l(R-an@0ar(;+-%ZKb;R75wJA7wO#E6JO6D1&yQUiU}z%J4A zmNoajPx8@m@9=$K`v5SOtX;Ch7Y3*6I;tFekhX5c4GvRAbAtR|*Tp~4)clkDpM?f~ zI2>NSq|NQt`I(nGFh}?lb4u;a26w)QeHm_SM;fbL&>NaAXzbhvOl*^`#vJt*V>Z6h zZ17K>(YLIb_eK{}_CeCjZ;OkLp2fx3J#F*BQRV{l^YJhZC`dGDb=2eQBq# z-C07+sf=z$}y{fY13-tP_*N&DU_fVA(`P7S|7 zv$ezDaK{k``fFw{hp&+Hw0=r!MwO=~?39xSJA$#W$~%7D2(=r?`v~a>C14jI%6mf) zj`yXNpFY9Ysqw$~y*^%;_PdCF(pnuy5C1{(^s$(KQzYUMBgEbI_F-OGP1&5`^{$8M zb#rlnRQ~Y0!GrwgGV&%qIHH&SU+keUP5f*Gs~AS0TP0~bt}8C*^oZ1}R3Ro_>lJ@? zIPnyBb0Ehf!5Ki5>pJT-qxu?=Lv|$P=W^&XUphiZBRU?kz$Dy=#iP62! z4wF62*vm}!E|WdWKIa)8{Lr>eEvOITgCkD&a*aPQ;#eu8wEyuzVZ-)O{DGE?JGFlX zwWW3cwq|cfoGHgNc|N)Me%Utmbi{`N%fIboU{6Q<)AQl%>2s0CUAtA(&abMg4MttG zhx*+ko<=O52k!&XsEEzh^Y!TFn`DZ-(WH9zi+c9d5z*hLeIMA<@b^ntFa99@=4`j_ zpBX1vy&)?CYag>Th=8Kuab2T&TnYxI8^ET+SWMQ2asJ28Im0->jJh1 zqQFI|i(yy)Lg;T>HnWc9f85d(xgOL`C|zf#?8qF=z>e(Ta4>8sq2+!FSN0JXiEg&jFA$ZK6krSn0P>mH?6+<5a=^y)oL zjW?TJ*X}x&Zrlj&2V#Gvo}IrKuGdL3YpQE& zGpx_usLMUT-t2nl+@d7<^0~w7?2K#YCltQxq ze+peE5>pSaV~??l^57Y3Sr0G!=Eml*@9QrYnvO@Yr|cZ|s2!gLzH&LYs$95wd7JDR&*|~Fv?Z}>_^>V2@ zZ}_S9A-Rsw)l0Gv{52BuVP?_Mn_dza%>n!x_5)+{RT$ zfLi9gSIG-I;yZpMnt<7D-xux3V>mwxJO)0cuX}6EzZy-E| z>1X`DV$GkPuR7&j@+LYxN*Auye}eK0|01gNNOou@Y5BgYshG#MXWLX)S5=hFbt}6)Upl_@=gHr%t35@& zzhxa%P*y)K3Y7yFuGdoXVyXx zXup+)8MgABwDNgBKCOJ~@Z*bd7DDaXNuvc)K0CS`94x1**H*fEmno5E>s#o_dS+d3 zkd{BbkoITBGo$AL?I=1<`hMp8nwpBaGZ#&+F0T-(@;~xfm!40_%O*bGW#oATI7%#=J6?kjvVeB z3~B(fH0m^P6JRtv>Tw`rpylL%^&FiKSYt8zK!Eg)UI>l>rviRE`elH(H2O2F2rJ;n zWPvN{~&;0uaAVW4oKe+^(bZDc0sCQHSi02~Oo0J9)%nfpuo}u{f z?DQc|hsz2aiHeH%AeJ}K!s&l#*(Q<>}c%&=;!3r#SLp4Y+}=_ z91Gt8o#)f&Y;If(>Ue0p4&F-ASus03*d+9$_m?evz9QQq;~ypST~5BcRm`leDW6WRnIWTFlKWgVMQlL zKa^M0&aA1_)gGSDX6q}Z54-vHT}qz4K~6H?6>ab6vq6JraQ_Ow_tj6FJ8joY$)kO}&UVS8el9~o|X`5W^J-_s7VK7M!(^Hs72g&6Ue>x?a_HFjbtzis2x zf_R)%HA%-roha?a?%Ixd0p70x;w-cSDCX#Kwp9H})lt1c%wf#UdJUmvU~_ zT;ST3`kj()LiE1OQ@Kg11i-lmN0q}R~R zfo3&W$_?pz1AywS&xQZSO%3uM>y^hG9U6A$63!_&?`@5p)|Wk0cQIzc>89hweAk+?0#UyP9u^F zXp(a2`ej<^x&?e`Jj&DU1zoJUBs=yX)DMG+cG52ygs150J}1c`t^Bwp_37k48QUH^ zS2Kd{VbG+LwEI0b&rnAax}7jCUU)hCbSfG>@0{J&N(Sm9$}fJ>j*yL7tZJ52p4GVz4+kjA8CDlKQrYb*1FP! z_Zc7_qOolGCe&_HEhL=_V*E6AfxEV2pMr;hppY9|$S*((>Pf1Ar20Yff7M;vv7eCl zRIn2_x&YM=IEA~P5ZFMo}22(!e8B7m_VP=G(UiQZdqpdjTzn?8D^B z;ddQqS$!1cq}7M8N>X{j3o0sd*Ou3On)Xtb5!|3|QvE}oV-DiYQPX)@kQ4K^zl_XRDng@$N}Qmxc-m*t{+#3S`KHwFDEOK`V3v6NyMe- zF1Ztq3l!ZF@EcxNfLyF=ekj$?M2BD*l`s79qDLfuu8SUnr>nuuT=fIWm)Kj069@5$ z%=o!ia`t0&EOZgG6-ED&TWS0}?fJ=My+Fv{lzE{d^3Z%!eC9wGQ=xo{|4*$+vSaDb z9XiZ3VYZ5~o_kMyDaUDmSyb=u+Ob4? z#$E`n2M+_DoX~gJ3+KeoiYSr1&%TJLYtb&?4`2>h49)_V13WgoI6DqH;|jra!0MZE zM6btP3GN5)0?IO;8HVwccRVw=;|~YtfLj5zJbpE^Rm`Rrj|9Yxit)*dj|0#sCdyd+ zHdqP2O{8Yym#KR0N6nmTTs`-uWN!S!34L?J!9c22Vll~n@}2m(_2LdoOngj*F(-^? z#=kOI2j+w_?wv?xg(h~+u}u`V6>dk?SK3c$9ZhPJKcsY9f>iv!CG)qb`s`0$lYM=n zgT{?PVaMTrZ1^A$_dXvak-nn0Y0`FO zj5=;6zzu+38K1Re9xBC89(f(*`N`oNmqwBuhr!fBP8fH(qix4wRyz&{lei&HbUprB7UyyN zdEZ3a>tkqM1TGc2Y5bj^;xCPu{7&RJn%yiQ@4tKgq>tVpbfo=mg11T_j@ydKSDt_R=%{<#FYLIF;QdpuiW`ix9RHc=lXo>Q7lVsK=NlkyM>?OB$@RZk z0iVfrwHe6gR^w9Vd$9dBq$MI9^YB%Nd7HZw~>i@s3v+yE;co-TEmr`;5n@N$Zm+*LY@Q z$Ct>haK9N(W2-#1Wc^C2eg~2F?!JD}5#zUWwC(sEsoU$o!`v7Gw0@;Oej@eT#5_hu z{f1W1q~jpG*ztP;%ziySr*kcI*Jqt&ir>M|nCJQ3l5@OKNp}1!cwGa22EOP_pQ%ftz0vJ*akCt_k|1kiSt{A4`o z`A)`vm+-t(M}Q^V8&38{i_E>z*eb4zFLz_$ftwq17asD@|1oB#iJYJ8D7D6ChV}lU zqp9-sIjk-R-^)GiFB!j=Ugy1tG!!!js__re1!~{9F1FMmL9LDXQunZ1XFX=72UaT| zE_P3?7h~^>J3Bu3^!`S1doMpNS-&0{H_F;y$xHK3>4_1@5BgR4MrRa@nj_ibe(=0C z*qN(QAj$WNr2J$aw^u)hNQ)#lS0H?&pNa>|Ep5L{){BSvJCIytKq&d7_>+hZuAK6R zju`F7c(!;vyd4c>P&67Se;KtO(IQPMhyR7nRIr`g3itnF`ihgw4AzsU%0G%cgZ81X z7w_h1+TuMZI|_bdQFIdYNVbpoZ7rQ&aP5Q3B1!$GQ=lm|J5%nY@r8%s{H7MH-%Rm0 zn!Nw$+eajHuF&DS_%L{TAAHBvSdipT{Op#_V>teBQ6wpUr$XvTuvqS-@wdS9*OGOw zDgMTg_xYYb`dTqQh9p~j8Z7k$C~s2)lt1w+RtbL@&X+j8j+2~`@hkY0esuv*yPw7v zhEV14$J*%6L52I7)EIe43iY$G(0$bNDShrb_X}HmBdqNS4&}x;pnQs5|3dg&&v_Zg z_vK2<%?SzLcLKHlDxY5m>&MyQrNUX?=It&yqWEQ>2YEI^*6>RT@rxfi`X$e=^wG!N zFKjUmz$Q35n>@e`bWBQaB@Phqo9Vod<5RMPq|P-7pZ@}{$}Q!yCF|tF?fMzH;V@`^ zDfwm0RQ!eKlfF8dF|#CF`~j@}%95B4TuIDY+ch)&`L^Wb=d6UEufR8QD@|TMm22c> zO$O_^Lww2eE5+oY`KI`irXi{B&fymUUnQ8`O|b`?;v?&RfMSr9et16-iX;E#;Eoab z{I zBm2YBFBvy1_k6yI#&RL23O`s!t3|D40W>MCc-@6}$E9Lp(5 z*P@B+UkEOeJ8ANEu3W?S>KYxNN{FUe`}hz`v~9_C;3jaJvC|kLk!;BwdUX5C+~Cd| zerh{@<{B{TXNuHW)>Hfj#x{gjSrFHsr%R!%)l+p91={aa0Qa)W)F28R%#1vL) zC)7?Gz{e#(`VX3QVBemuNknPF_!g=QO|1_!OsGIJ_G?B6ruP9g(M1^dsMe8pvC!emg*o znOd!1=4eW=_4?S#JCN9_c( zz=TKnZzy^Bdez<1ddB-GC3as*Y@x;VEcpffLUa!EcBSe+tqs>R9#*MF6-3UduXW7_ zikyb}t1E9K<>O~s?%>ydZ<)}++xI~JeLZlx*Y5g`;#xu`XYFj{gnCcu7y?~31d3Odl&&2wk z4xTfyqW^+bCN{1I$OYSgeWE{SCbnRui7hM!ADGxte>1V8_cO7@JAk{vwmkDW!o*hn0T8htwS*b0D%$c~ z+HfNv-V66s=g=R}`F6r!z`Y571uq#}n`P|bH?nr)U}M)1sa~@)c-_R~i%gtdO5$TC zfWLyrO`M0a;-jxN9e2IMbUbo7`@=3Z9gpb%x`4jm51Huuiv z-r0A8hrnvn@tpQxqUkt&5y#8HP2g?tvFUj33~+$yc+rWb<1Hdgt(a7P!uqo%_9N+; zsC-VMHnIN`PLg6a$iF4_-{nu=R(o=%gs3)P3q4L(x( ztrN7dT)L+_R&0W}-y}QXYP^HaAd4$89qZBGFOeL*-@Of4-wbY*JDK)(XLqnjDLWyy zkFm~#do{ms{YgK#Q|>~iIXfZWFV}I#Ve>0$b)Pc#Pxl$BFXnV7phdO5pgrL)?iY3f z>O`OSKAanyg7v5`Z*5inCPU+O@TSlSk5lO58Q0&hZ4$4ZSSV%t?I(>_<8w?Dk4{o- z?cK=5!;#-35e$hZ)z#Hh9yFf~FMa5Gt;UBYZb9BXzz{IXkqADwTEW@n!BzdEjt`eP zr!a`GH6(^S=)8shUA=L7s!;q6J28zleuMG**C!>yN~{CleDC`cZqJ zJMj=c7lI=}0*DW&dUaiTGvYj&)2~WjSS2Za;#m`=3P^V10zM_i{%6n*DE-Xym!iwR zrM`QS?ZJA|G%duXb7t)2#POZ69gnIq6i3?EtyFsGg&74I(sIW%uFT;o68%J7ZDT{ z<#j^^Swuud+z=2EM0N-&;%*d>eJAXY|L1$E`gY&RWTx+(ncx2n^*rZxb=~fBPMxYc z=hUg{?mc;ahuMpsc^W^@```H67GJT8M(`)|cu3k?q9ob6DV!gN*;jJMUBd4l09<2> z$L0FJJ^xAge9fw2`jPr^C7Y_Tr{TEk zbw=|XcY`uYs0K^QYCNak3!jnR2-(#Q#@`nIV|MibME*pmN}=y_k4;@}A=tl9{kWSA zpP!r4#N*HN=i}A9uPL8rFOa6`&y*do>vbK;u8)ry+db&5R6Cg+`E2CI%LOF4@r2_n zmaPe{lxwbEzdCGoMD){k9)_A$HrmuK92DHwF25%2t^UQ+$T=y#%1=@-ZT%3tcnpGxK> z#*r?N{W1GrxE=`h#_ZePksB|Uh2+M69^AVF`*NnZ_l|(so8s-Mjx@ z$&J4RT1NvFoQ(mD-W9nMH~uYLvJ$T{g2tsgPW-Cs zB(ujyLV1DCP}t*xBY;psqC6}9k+Hwy9~5s}elq)eVC2Tjm9u2)h<9e5*ZNn8=d7>V z1y$k3|J;z}-c?g}eB{dRq5M(cDgEc$uf4Oosj+kHW~XUfC%@~ps=Ap|bQkBQx6<;r z{=%M@@zU)iH{J}qvg!WP*MHObOUE>Kc64><%X5SEr+C9niauSlY;5SSM@4QtDniMX z`AI6-G<{odIKHuyAd+1cevIxvH!Fa#JP~rd&DYjrqFq_Af5x`y^+m~UDekj)OIaB;r~*Q- zf}ks_kJ%XLX!Y&)dkXf1O;O)dusg#}7OQ89fxLR}r+TXetpBS&v{*DIlA0`=<8O0i zLD6$@A9=oP{jXkTu(rbF`gA*F^&9+nm+L{Yxx@9~J_q=cO1yl# zn-qIdDqtK2KgZ-qbg%4N9)l~pz-RL1XnK;Hq8bQVc!2?T_W%QwNZ4-S**j?uonIa zz9s)O-<3ZJbyI*8UdwCmP$77~&P)pDy=)pH^R#T=}!~WmfvjX8{V|HcW`wP?w0Ah~ig_{wTfC@HIPoQ{v0-6+<-Hu~u0^7EjFJ70?A%UeW}^Kv<-mW+6y zZ~C+!|9WlY4*65$4rQm#Va#9oPN-t?n!o0}>40rS4u$#m-kcD^-THq*~eHOtcI)DDn_4{e?k5|Tv{^!{@2i9W?iw9iqdkfAV}xsT&TZq{HOhW z;eSt{S+R%DfIK9lOa7%|{e7bsC4IF5U!dY}-~i*luV4Ox`Ps9|YG+mroBwG2Kjpuz zm)~l9aWwnMv7!vvA2>Fx_bT?GiQ~a?4dt7m@@_FN**33NbR{u|}V|qIh`h%;u5n}SEJ_4Qd zMMr}Hb7Sw#B#2=lJ_X`!yuPGQB@WX%X-&foXhI((<&jjIlM*>D za%PO)IvS>s_3py!@7=qc&rn$z^D_}%ssP0)6=L2CuzsfR93)=8U7lG#ru+l>u$3RN z+tcGW_;Dtm_i_b04U}9Zam^Cut zyUI1t{50?d3e*RU?phdH#9lYF~VT;*ZZ?PA~uFpLXs8%H)?5i;_mi7B87T;+DadjKMiw41A}2arMK$pF_>UJ0xN zUXEPV+w*Jh^$Ay6G8u2+$}a$4R8iUws3Z`~vnNwLk%gBGz({z;=P{+H0 zzfrIaz+@-%XY@z0{dv9gB(=9>^?HGG>~W>UnP0C=RdqdN7?ZGmB|*Of*i(G534_g0nVwb!phy$Z44DLsG>;VQvlc$0SAhF(Vu!0KDU z6*2`RSNSME9^Mc*F;-&oCm^TOqs{2??-T?Wc^6CR#tU`N;dIR2lM9=Id02nq`R9O zE6EET$yH%^T^DdXXOf}GQGSWOS02YLvf2~Rzsx1c_G(tmBf zIu6-S3^no3iQJHVJ*%;K_3Vz-OZ}&YJ93YSgnbKDbHKe2XaYL&rDgM0P38Jc*1rGh zvkudj7=7Ye|fShUH@5!W+$6Ku5YV=DCovX4qJ!C)Q(Yq>~3VTL_ z>9b7<_TgxL;w$)NlUq;n*ZJR^|5)sIaxAV#wQ` z$?RSgWX!{0URm{^|AS5%66YJ&@gw4+xu6#~6}TF>4fs=hLvqYKp09$&Zwl6n;msFG zKyRb<`w1V4+yvGLt8N5dO}J6c^rFPrZ%XT<31!q*dMzD4<5V|FB07$Y{S)OkLo)k! z2yK8XYN=!+OCf9r%;=RapPa1*W$M`~5|y7HOFf%&89_BT8Bd1y2kPBNP4e*pL}kk~OgD?!+qI_s}%;?8;k{v@GOlajuaubLxM9qKDL&)*O$g; zT3<8cuDZ%!<0i=PpAN_XOUdQ*by{C)e5ddi(N11py9wUTy9o*dk=%q&@%szldO#|3 zKOi%HugAUw8b->5CT{h~P54oq9q8!$c|YsczVp&cj@0d=g85_` zSatFBJOk{um zM10bT^yi6(=ig<1&Bgg;$(iZlCpWcw8vm(h_T8bxFArk9>X4<_<q^c{Xm-5$Ln3=H*JsK&s7!vDmPJ^*<_PX0TO%6iE4-kNe%2 z+3r-GxVp8grL|>B>*~f9UX7ZY;QIZ)6VEri+KH^>s(p;YP5c9`x?DwB+cAurl-y0v zodceK3y;Rl^ZXtGNWp4w+qij}Oe$?M-&h;j8kk}P@~5ot{TWXGhHrUt>c$buX0E^1 zSNcgdp9y-2z2Ui}p{0}D(T_{X&tIiCEGxO{(RL)WEg22cPXba-?*}Zt_9*kUTztxUAz#S4KdXK5a>j43R&RcpTYYlXGvn+)M^C38Ij8xe z#v8AI->Zt2ZyK8kH|-BqBe0a5y`9vXz?EF}BG138ZX)v%{dqf%G93p2)?Xh(j`8>$T6Rq*+8X)FL|C@ZE}ujm!9Ec&Q?*_7 z{T!98*_z+efX@O_0*rO9Hy??Osz2reSo%NXc-y$1i&aVHUwdCktQ81x28C0BEGIIbdpqVj2d zr`F5bf4pAmyMG|v{-*DUhSz-3Xp;FKGK%%cfF}CR{~P}fP2U;)FpnStujFci2jFTH zyI2fpf~P_LUcllyDgT!uOIH58^c}Ouiq_7~RiQlVc=zpn5%gJqs5vE|6+b`94)X57Sd7N3W;79>f;ce8E$6HP?|* zg*0iFGBZ86KAfOmnV&jvxfB&i8x=m-&lXobiXSA60XYRVnw4u1Ssle9{=M-9h>E{J$n84KA@U;NvxY{J5Zq_`5j1egm-& z>2B`#dP979z2OcD@|-lyF5prH8rB0F0QqnG0J(X&XH73r$jOqwv-6eE5B{C`kBpte zZx9~Ig+M{cHo)6C>u>%#>1|xJr`5?#LgP)E2lVl%GWYX@A61oPdX(79q+NBU1`8&Q zN`^#vR{SHQHz)l>ylwd@r#HVD>f)cXygj>~3qvEP;k^GiiRa8F@r>UjW-ya}kuN9n zA1})>I2a+7!Q$4S>vcD?dx|52@%wg2?5htutEdiZ~# zbGy+bb0?Yi1BU@pJ~=)768f&Tv8h%5>yY%Y(f4}8`#m3k?5&U@xk-=nTMbMFq-2b~ z=Eb5PPlzd3+PF4y`?1n|Fe}Xmzrp@2)`btb3?#pc+>~qmH6!_(xgAVTSiQYI_s^$& z8BYJ~`E!#L2$%io0&@OdfA%kL{()RFJWuBJw$Ts%p6N~2qbH9J^e2xYa~kj&K*}s> z_rmwvr|1PeZF-Say-6>DT6%HvLCPql_2N3tMSL_@-r(C&&ty&34d(Iah9s%|+0W@F z+(fjSr~QaSYQ8RicoUtT+%Ib4RJMIvTzT=^2^qn>2 zj{#Vhz3m6lm}!jl(d&6m&hd=xAES~F|A&1_-hzU8Xeo0$m|nMf2fc23^@CJ5j)zSC zIjk%NP5?$muN(ceUjGpEZ}bvylW!t}D5Gytmu zMV|#O2d)Jy;^1$If3wRUBI`2ydljqNyoxZpv1jCXqlM!wWqR|kRd#?I-qKA$?y+-x(t6E6+XF@*^q<9~Y_(bMDE{88KHk!yjwQ z=tmQjPumr>Qs(hwetq9~b7*H*3qAAW>Y!uueTGi0i0=s;07waHeaY<8i(Y=}mz$ht zjU%ncRJdAA2S}z{U*;T%*Dg_s;Z6I)#($@ur0D7uScQGlt&g9$+V7LUB2|yL-Euu;(0cgx!V1=|15S)wGy9|J z*pJct`^dFS4DGd>X!Ms1f9}0bj5O;uIr65jTEGg&ZZ>nOC0{2}M$Bswwr=4Lkz24$ za)npOKp;9tN~x?|wv=i8>Iga2)Mx}Ll1btigy%3C?$bC`!^Sk%JKRD&d*!lFv~P@w~sz#EIrJ3E7if}#!hoIyVKCfF10u3ck1B&PQAs+gJt#ily z!CzejU5S!rHXEd2JU%XKzH-$dwCIC}8+XmPXkbnK5c5GB9#}lK{cmFCHefQ(&+hG#p#G{@_M?yPqNcj_i?LqyCq&>F-_v=Bv(-?iRU9ZCsxrcz4!MOt<8K>#j zG2&?5y!pS$|H*v$%ib1P{}+5Uto|F}2_Eajf}f`p{2nax8<;`Yy*JczI(fM#Bv;3H zDaG+EJ&-f?S*xe~l_A%o&f9LULz#!w?GK1dz8v@BT=a_Z3)h289s~Py%$LKDtJ@1; zFe;_SEnavXw%W$g46c6MU*YOdl%>r8I>cJAUM@CkSwhpVdss#TWP zUycj)EM^{-^jAFDDQARwG>~5_I-F1WBy~6sxQw%%0INq28O>_OQsZg>?|6zd%I*NI zF-01TdC8Pz0P&V7p97dVvZm)4g>DKy0pB3b*)Z=YV!ofq2cN7CQCK_AB!7aZa`O%nLS#)W|2Qf_$55z%{Brw zcHaTy>Sgn#xL)4tFH8^7(w3}V8o%cQ-&Rpxy}lOeRh(W@@47YAYc~1sdz!B9dg^ru zFrI>)fdT8aHgYeX%{MiF9hGi3oA;mY5tSUeoU-pmrMs6!(G56hzx+}(=F;wH%y(JS z_}(>9Gh&MsVU^_7YklZ1dGQFw z#X#}HWE|`aPHe8#XD<2YgrD;|jOHjh=cp?9({E7WTqc{K;g)e}n?wGQ|PXS)KqaWLe1p}Cd3Ppvv(73%j;QM$eA z=^WM%H?;L1ryQu=)cT58C<;s5MYxnwcKMx@evk{)Kj(AR+5QSw|9-*<)O{Jh7g5Mg37K%B$aDI;a1=T0lHI>5pm>l4!V(fWOM0yZVXnel$=)0S%j) z4-~%7q;L)_PwDp{`uu7G&+Co{gek;1WR=1wG zI;>w>+_?Ue;64LjHMRark(;_A5t^+Z2Ah?X#yPVK|BU1OnO^H5+C zprOw+DU7ea>i`4Pv#@dg4M=GCN$qp2XPvkHDrNKPeI4f(hwW|c>F!+}e;nSf8_W-T znyWN3R0V$s9p$;biJ#GwvyTH$5$`yZC$mryR${l^YyN< z&X@XsAbo0j$K)T+Q?KOCuR-A=kHOX7M@E$wQ!-LJ0#@&2e|4_vnfpOPSG9^|EuH!Y zJ14_j+1@$-JV!aCV*%vkPh>T}0o)1v4G0#s2>NDsQ!4`(Vd z&#A`&6Jp%{XzL_iFXaDWXVyRdvw8iT_kTZnd6RW<)5lZ&*mP6J84)*ib~skUU!C%4 zy`^3_ z$NuyeV5q!3?x%iP`7-}ws`oqmeEThsX5D-0AED&Ou^(4*#nR{5##w?NUG|n=f#L#i z6Y-n+FTHWw>0eX|ox#Sh`4J{RiRw2&ev8RJrTbO*EXR`p1)pT>&3}~N_EbOe z+FW^Ia(oanB&+AQVc}Kab(NStEJQyg_49s`?;lIRXI=yKo3<@@~LMIZM7g?goEpg)e*)bhm9jlMkf0^moIE}fr zIETzSWT(y4A+7hO)pI_`_#7E~I?d}#F|O#LPV3LUnobWqe9{99~a2O{ck%e#JDhU?J_ z{p@K|1kugu;$6X4MsDVHk!x6op13-XwP88&{%NQm82vuoY2L?m(>`rP+;sD?ksbDb z+9vj2y)pCn>ev2<{_Li$597NDIat8o>GmmKhRA68QrhK z7dU<%xEx6Q0sGS~n0^rXkgQ#YU#<^%^yVL2gcXFX>1JQ0zx7}4sQyy0zhLzzLO$)u z(4ShszmxEa(0&}%r^H0gU$B0eve!D#iwkm|MGlPTv(As)m|sNhZ5OjQtT`%qmG$4Z z{Rp_8{pJrur3ZWw!XuP2k3+L_)4gr;{_fU@<`Cd8u~wX)W^#}HB+Zvw!S@m2liYE0 zO8B!x3nKE9%umyJ%p%vUIsZk{&?v`$ znf4GDvJOA}g8)9-bXLZuckq8mndO}DqbiejKb;@;PE22-Gx5^`FSCH+S9CUB$orU${I}Rg(F0#C4|k_;WWMj3uW4pP@ibp2bT5Hs2TnEB6Br zswAa{hu~*S7yj7KAl5YfU%=Cb|6zVrS*+#szXOk`6uO!G43noscTbRKJNY+sKZP@7 z2)+bd2`F#+Ui9F^F4&J_NFyZI=RJD!GcJK8c52NqJCKs=A-bl3`btuGoYsGqg6}=L zU-jLKBZ7z&cqz!Q820`&!+f34pSFRu1A+I$R=PhGTJN-7XMfp@BZW`(#=zTqYu?9s zo?Rc#dYK)y{+71u-+=sX;)C{>!F0UjIG~cV{_HxVz)gRi3)%TK<4~X+XoyNCe8Lde zPiFm+@RPRd=-C_*Q2k4fItN}fnn~tYJQtN7^&NliW=O0T0Y3n8?IFKH-))|;x^eZIRpF_5 z`ejysM)#-UYMxg1`$xtvnen%nk1hLXe#wXFeLo8I$o^jaU=sc3i#LtLczh&bu!5L;5gf*D=l%W6|@4?DEjcqEV zg!l;Le4J&5Lh@2wKCEu|#S9{NMbe8ISsZ%|F71HxLVM zkV-Awo+bFGmH7qVq3W-J&unITpGgBkY1qb7&gLJOd?m_ff_#^QVXQC+)jk|g1HK0I z=MObZJhEm_O|FZ&obA(UzUBK}%vKl5i|7W=B zV}6FoTcRXcJmZ^?Rro^Z4PDTFC$KwbIXkC0^lRgR)zO$A zUlxtI=HHR4{7CM7+$B3=-hI{~v(gS95D0rtCU~wrjY+C}=fE z$<3s@>DcfH@T9Woc!^p$Yd3LS98eSG1>AlxEmH|?P4(RJI z%w!$G?ARj%)eF6l#b5AxUET=E^g7Sq%|yG+9HWwy9Xqto`5|^bSUe-aj~X{S`CV`$ z^O-x_{qn|CNvz&XfkhEQ{RZ7%YI2mwaIs8|-C)>TcqyE@AIH;yZvcs3kZ&*f%hK@5 zbLMUytJU{1SRwvD^DvdA=)NLJ4t@TrSfJ*zlg3n<{0^9$52{luBM#L}?U zH{ma~<5xo9Tktp5Q*tw>k$D8rK$3CW5y(7#68ynVn|&w;|3^SWaxh~Y{+2rZ1^5T>U_MoQF60OKWyzWKr^n*> zKwc&7BE{7-$Jbn+w~y(aXZG&1W6%KM>lX>K5y<87H?AN4Hd$|$y`Q<(SkVp;B{!=+ zoIk{Wk1L-yuGVv&HICMAd>}nOY@R{u&s11|5Gb`Q54S#8PC*%Jn{zxCvH; z@~m>Zo+*u+Mf_^kSVXcRpoOm`b-DZi8Ec;h^S;{=b7CXXCehq)`}l9o_}z{?4E~#c z)()xfmiT=kCdXi(%|2C74^34_ZWe3e(ItZHB$keYjD9&btgRW*{;zY1(2R^evJ9{&;e2Ot)VpS9?xAET?FYwwc2 z79Do1=VQ)cTr|R|i26yCB=a|TLUq>1btWmze0{nyAm+?FXZ=YvfO*38x+yLB~FDA3kKg=&n&dmPh-uD+PtoUoJ z^aITU;{S8@G4;RtNjhF=`v+!8RcR<+>5sE74d=I0rjeXyAJw{<`?Kh6G9M28!_5Y> z^>3nRvxr9d{;hGl4{!(|CEIV@Q*p58`>B7%e!tP?sk43udXjWV>5lNg{C^f9$S|H> zT*cFv^}Q{vy?%VX)|J};Z*m^M?@r-o$nJ5Sh=3b^W7Z3X-{N?DGP!kPZ(|ql*zE0C zeUj*^{RYCT){tgEukL|98#^^}2Yfqn2Yvv|PqEkay~3U(`0z$Z)L9MDH3zVJclPf7 znnCHAot}+sX1@d275n@WNBV8!KO@)li|~HRT@#A=Il~`+PwimsF7Btk@&Duc`M+;} zwR7H^5S~Ry$r*cS?MMuD_E=zVabkYTb85%jCw+~xEmwZ264PLW*H0o>x ztu6pQ>H;Uc)|B@&3{f`fI{Z@H@;7)AF^UCHlVKpYn^yJzx(pIBZ` zbAf843VgYMah%XsRYlJGJ8t&Dc22=mGOvJnTaGf$djbXNiPU=$y`N?B9|anc+4%{O z8E>a#TA;NT@IDH1euv3l@6E~YYU%G}&HlN^px?~=CG}7H9TQ=r$76G|ae-~$geDg` zzeD`!J&QB)yI>J?y+7b}iGyx%1KjLWp^Gb3!qMX8CU?=5e=fRSg&CWf>8|H;Nglm1 zmKoFme}f`(+O|I!n($nwwGV#$>~cE9Ym9<5T=}HG!p%Mhp8gk*G11uA9w>l*DR|HF zxNKar+hq3F0fqOxJ}&ruCdTh*a5M&fk0-y#({QsfekHd6f1yCZP~-QCkdbxx9arxM zu(Ch92AB#Jj_MTz}tZ^7E@R<$ZwZ zuk`$T_C29}3$eG!_#6XHw4C)vwaf#arkni`g+~LEDUgmb{%w4sFNz(X=10)tmaL!3 zPCg54P*GmJ9uMtSj6JgP9QaI+XSHXEft$0PDEh?c?`QsR{eK&HW2~BdP9p!Zzr)QL zO(8nWNwEl3;q6PWw`6kQeMob##dF@SA|KD-QKL1jcEzCmG-*%vDa<(_@Ov`(|1tz* z_N4Gz!1pK+uetWrd((>7d*~fTu9DZa#C_)+1RSiQbbHFzvU;Wc#KFd2Qm@cjl9j6l z|A&R2{2cYse*=$lrr__6K(XVf@JeM)+Fb&h00|A?ojN?Rdjc*S<#gX z0BpMK?WYQF zD*l<39~)mr-|HfG@NJNgHNKQ1$<2|zm;*Eea%RT@=AX+?i`%uf^?3Wvo%F8O)$k|t zzWJs|lP5%)>a_x`;1 zukmUQmit3;b0oO)0SRs^z}hKmy_0qj>m<{2tj5hb*PpvNead8ucZnKed(*x;oFFo+mG0mOfN&Uh475igWcc1`M^y#8=DKYvVCyyJVSyQx#`PS%%8($Op?+4=Vk>kwx_q_cqT2_F;uUcTj}pKe{mPi=K}LpX7zg=`~kH; z=QTg^`Cxulf*(6@)Tg*j_?fZIZ4-+0{?xfMC|&FkXY)&~y}aIbb3bNxy1ANGklfrg zK9esm)6=ah*EISs+~@Tl&3Dvae?M6N8QZ4UzK@L?4?5o8n0p#z&j3CjlO}&oEfArFjkKA4{Ia_2ff9%brD z<`dok?t6jzRO02^-9(qLRKPfVi@(F<$lQDGzr*?52Yd$PDSk~)E^S=3)ITy)0RQR< zXnIm&7oMSvc=+6>jQ`gv%NnXYQ9FN8=ZhO^rszFr@KDV77Qe4fsHv*;s?yUjlt#$( zaO!_g-B($8)!dHjttX3r>S5oi;5d)Ap2z%p?i0htpZwj|8mi_rh-#8(|5$#E2&2z& z-fqx-4S2=s^$KROylT4cvh!5Eismn&OI?kw>Wm*cZyHdY;tTy_|8tzTKfo@RdD|CF zw{N>8d=ODJIvnR64WM`C?YvRrd$fU@`v@g!9ik`m_5ltB#sb)>c}o6uBw<^UO#6<=n}U!x*X>%1-gN@ zKzHW!=~Z^ENd8%AT9Q zlc96-ehz;&KTP{YYSqkk$;MUR=kwG3!ffqD(7D-H!OikxrQ%N%TPlLCL`t&w!W8H}=+E7}m&h=|isa+S`OC?@?>sJVe+GPI*!SoC zH>Z;bynq)EJU-t(ZAv7f)IGD=jzlCtag z5%JN!|IGUb$0vZ-xnUd1`=qS=jEsJrFCX|#kYfEhzams7dz{;=xcZ*f-p1A4y?x@` z^YKXLGpC;S0>_?wL7AStGQTW2Gd-G%bLSJ$ReAphJsUG&|D%uejIo|I?q@%8LTH3? zUa!x8kD=EWRF&NPUxs5Z`4f~+>vi>}to_;hzkT(3x<8s;zZg2F8ci~%k?A+Cp5FJ_ zSFdM`KYIOQ^wWB^9hL2`>^1H~~udMX#R`l~&vpmA2g(m3#!vxPXUk` zl!gTj^KS;idy68+)}Csa%Fv#tkUvFysql1;GJ=-_GETYur>S*wiY;Ys*R1}4uXku= ztM}!w^f}-QBAAkEHaRBs4R+r8@2TKBU-(qti#gs7JOs!%T7A_%13mYu`ef%1{u{x~+^S@6&fWs-2-v(z zC+N8_{@j9d$rA-x@H5~R{!69I<0q*vanl9t4X}3kB>B6APVI6}j2BT`;(QbTD{K9I zzY5&ic-_s=y9IyKF;8Ezi)FBJ^u~z9-4;spZ-Qk0!}!Q8RL`-r@hV#IR~gpLtF-pU zN^T3EC2Q%>_sQbvnavTsf3T3)_QKtPJ%Rlrw|E)w7v9u;Vt8)goiW|MN9&*ei1$Hl zo><;>;|91+^Par83PZ;&SZ{RQ!X3i#R(R`x*8>3a5!3xmt?tLoVC%G@|8KI+pYAs{ zj!uKlQNHeO;W0kL%^`8V$v9FyieBe8`V85HOTsw*AM!`W^e6X6UvaS^uk$Y~^Qdh+ zzYChPfH^9&`VD!V-|%C9ZJl3zt^sH^{15XhMT|9F$gFYU0+m8{FuQJg&*bIpkz06@ z-RKrp+YwZ~KC@|irJrL^d%coc_b+zc#{BJtr$ClHdkf9R27WG#*%;_({_~&m*7-L- zSdOJinlD_NaovCOnBr{!UT>!u)ckY8XW0148dvqPKzrnB&cjz{MiF*Yq^=(RY~HwT zr@l#hv;Md6Dj?Pga<52k;SYSKpY|T=K7@sGZAdmg-VLd%fooNg$LCLUPP-Jc55e>W zas9A}k*a4LU-&y#oW0r${oYVA{}f>*NLf;L9Y1dcMsoq{k&HOEkT!#Jx9|qwK{O{L zFivV;?Mu*qjsK2Z^L;!!@>JxO?h?6WXU12J+_AX*4>sQMa~5vEqh1bokCE^3T)Ksi z$Lyx%QjlMRlq{Lgcq6!91YTBAUOPV%w{rpeA*`KK`x@ZU@W#iae+OG{`z2_Ng}ACp zZV^7EPwD#6j(ZWCFC&&z!PV?BQ9HY)?IYJB=XQisWK0c`n^{&%U50IaTkY{;U428qyfNWVd`h=)T*UhSqCJ5l zH@lBRd_FmGdKEiKrl(jfnor?-F<0+g>!tXUr4)Z07qNb|h<%TX#+ki*KFvq&R?8I4 zPa+qMJJIF1h+ek{JGbZ)DZZqa^*_f&3xH;zylA>=pLBmn_!t%Fa9qTmfJMgxHR<`) zqW4gO4qQ|P%mG>fZH`E#VdG1BH_YoY(Y1QTy?OZh^BW^Fk6QFdN@QDb*5*-V^nxFT zO8E7)n~R!9`S}wgfVb2+-fZi5yT9X0LXNKqI=i#%ug(v*^0{D40$ zdK&rQGvwQG_3q5}%f@Zr^}aAZ++wC?HeWm)nnsdtu=wrdw2wpcMom(-2E3h1?b|T> z(ZBo`y%E!FL4!>jwBZs}On)7f}ZMXq}K%TfXOO9TG> z!Tmm`NbOWk36Lk77#%}tu;XaFwZdh@GooQBzt z`S#yIAH2a;B)9l@eqRFQXww)zUaS73@1EygOX0gt=5dkG_3;UlnPWf3Vq13*-P7R` z9Z|9mG&R}V5ioh_y#W36DgMr`uM+yI5=m|5h`TI4$Dg~!=R%v{R>>p^G*vMAs<)oA z%hlTt(IV=tDv@mL>3H775V_qWNR7kMzQp>) zKJazDKX;2SfXnTGohcXtm>jMkBj$Ew#4;OS+zEUX!0%f8HGoyE#n%G214K#&OXl~l z%i#A_cC2XaT1D90Z>jR@#Y?;naffTj!0D1X;V9ein)2y5!Qu@;o~h?=?Rs5Dvg^Zf zWc+t=@McKnzn3H9*vBm?Y#gNJVEX@3+U^K18Mov^WcCNNH%rRe`knl}zWb9>>$XME z4}Hhp>&Q4-$& zxe%N`2Za0jd@s2GxpAu^w=ZiGyI+Al z+bO}bnVehnd-fi&zwZ6Nh}=YWNF7lfx%Z;Q_gEd3yq;Sy-^|?<=kYhLAO7sU4okG< zQA6kJ{@Ca_b4zZZ%;u#3+~C4=Ivc@*jR@0a6Vb;iwP#we)9*#)#;LO@c|V5XM{C)B45CAg#4Q`8YS730NF$=T8&3t!Rw?Dur-SZ?GKd8S zl3b%)M$25}Gx_pbk124C8~k5pvwlM#8VzU)Sp0gQ`5%ox2KQCK^&UUJuJMLket?YW zwfpn-WAu4rC7UovHjZx2xDTTb25r7D`=8OIr* z;u@dw8Hk1?eq^^4>7eH{HUs#B$WM4}e*-;CYvQ?7-2MaW-&=tR3u*fg9tS&mLCH1A z4X~8v%k)9AzbJi)^19THS?&7MTpjxx=f`p{U>`!#pJe4pCSP7724FJHCq zOR4<}S@~UWrrq1ooSkSQ8r{Tfv1u>sH?PgDDx2hB*1P6JL(@r6FJ|2a0{S2i^Q zi4Mg3;mFv;sg|G)=U2c{cPD_J&Mn`-LPi?Cq8Cv31~sW7BVe6M-A89a8-x zum8@js+t@+%m~PZ^%9c{$0laMOdUc-ool>`#x=EXyaEAl3lJY}Vs)Y0f#!*8xp9B?#G*sm&tOmNc9HwSk0STQw?*#Dxrtwlc=(Tl#Z}@LrFnnZ z>W}}@+>X#SPsJWI+r9|Sn}chWUw`SBAfmIwB46zyNmtYvH8;En+h?SkvQ6XwBYw6!kr}>e|uABJe%gbRg@>En{`fo3z?s< z2ZRbgH!0+F*Qola!=3G8KYAU)Bh2dKj1T591`d0dAjr~BV6M{xa}E)X1sy) zzV+hf={CNZw=|y+=IKw6U*p+v&1~QIDa}{*`K!Q$)khb0$tNtE*hxP~TvC^R2wtd1qgL(fVsyZLL)ZdgebGfADF31;-X*2rY*L zI}iK3uP;Ap$Ntvi6TZ+n#uvwy@xc3lz2Q4Ij#}^?TJ{Bw43*+gwB8;B?;9iH_qLpo zaK0ty%^%W1$705SV?vUTpCrAyLzv!A*5 z*`<(&i}L;-*U$g9&fMa|46fxwyUn%s_+!iG;O9%qr|p4SaWMZf_g+{V2YuI>LqBjW z%%aWT{48|7B{~|E-{!bCa4;YzOWU{n{I1Ww=MDYUhjEr+A0XojJ>2rYpoYj1JLs45 z?*nG{jowSme6_8$x1%x8PoEE_Z`XrSmJR!N1aQ=^!2F%awSJB=Qi?u$-(ta^=Zb59 z>+FB&i)TB!nmgCDw63aeTGra^*PREa8`lfbnO)xp>UV(mHcuD4kM_29>e241uGM^% zZc=wg*MyGN&X(N&1KE*8ZdiB2FOBp&;NBeH&*kA)G4+LRHoQp9@V*zEzXk5M``7WS zmEX~nAjg)U12+KpTP=Uq75QmUdbe16OCOot4gK(Ju$g(MAGWIbZUI=HFjvO0lvNY4pD#o;3>-c$RjhKi5$W{2aN^CytTCqvLx3^$i4)Xq;JCI?>Byoc9`1R zv7)i}BtNus!#ca168gbUH2SQ^w@x$iWE!CT8Q?q$Mg!Il)c>{bdwN>66wp2iU9G~A zj4ttj)+KgIrUjZf%q3d5)L6{*zlZwLO;lPDavx0(*$z1?4ubt_9T(F-6Wad-nrC zt>2_@Pe29R04DFO`o#11W$_Zm^cTSWUEp$+r2U!J3pp>=-X{Ha47h(2>LFS`7ah)9 z*_P)P0CE;J$Fh3J9zKSi80vWS^}Irqg5BH?lGx4GTUC-*&+9`ypX4hYeUwB2?X?ZK zpAPjrhx{KzNA-M&AGO&JIAZ|$dYWFKo_+Pg+9=u;EqnCg(U_ke7>)Vmo{@X$?@?*# zZc*uWckr>^MN#R8WSvJS71+=3^lV5cm14)3G+v}lySkr5L+4Jt&(ADmbz*7{c4;DV2&{&pC4(~&IF(Yl;Sw+@= zhT>Ny{HyDbO#d$e|5!UEvlqe_96-Sifa!nDFN%1-@yN_?+h%%RxAb3|-&P~?DRE6Q z@AvaNxpQAfVZ zZJoYOuC2>w{9pnd%l zJZc-K2SD=-;7pZSeTKZQV))Sow*QY9U)$-xxrRUGXSbb7>Diu>Z1%w!+4YNsd zZ6|vSuI(p2vuS$`^ggDwVEAg}Zu(i|9(Z?D+I$v^TfdGe5qfxu=7>zpa69eC@e~XUK*}6*Gjc|`=?qPmq?TUZchIhQjbr4qmubzF^_V>6R8iPulTR%;& zudJiI;Ps98Yt}Xn4us|-z+)np_KVu?5A+II-!OY+^$PPw+Xwe<@SiXI>bN1W4)TyF zO|M^QZJ3c{{S!{@{YmZ2PuqPI-LMq5eqnsEe$l=YqFxRncHp;t+YnNyxs#9S6hfo78&7U~!;Cu3`RZa@`&LOa+u&yXOCv()^pAE_Q#R z$qUrhH$~zQfIWQeexKZnWi$9ZPGwEqL|>m5Dy!mxqQ|%RP4D|k`FHIfLvHI83N^ks z8ebgS%Yho;p!E86`~H+19Yk^qc!yW?Y>BjY!z#&3oc`%Ueuhy*3>OW;>38y-K+@W*}{wyB-pJwe9{IvGbbYp)0L_n+7ozvGeU-6a2<#w}U*q2yt(ohW7(Q+(vv$-6>(r~RGv@{yL( zc1qSi-p~1t05;u=Ht$HEr_R!&x^H{F^Q?9z-yYBZm*(8vbh{MlSEcRLt8qUq;JcX# zpJ~5|QQCg5>LcaWuYH#X{8nHzSDpc|sDTQlJ}X zHU3|$ZkSTLn2&Uph4}9DstHy4@L!cLgrDK_->B4!`fg{SXa1Y6`VLFqpq!os7ye9R=qFB8-E=7YcWe>>G%X~kWT2nE(wq{0L z`Jw2Gp^qD4?Zzj^4y<1X)Gq zg{DpH$p1C|iX8{ZxZf$X1IG>|+=2e?xX}8+^X2vRwN?qs13Go~JG^0ZEl$|+L*?O-od`Oz^Uy7O0(c9sjf#dACroo-aXS2vWfu1r zv0X(#Nz5rJtNILEoY3e?630MKaYD4}vUeCwGJbKn4}JMNLtal^_8w2e;xGq8>M-B~ zDzo|xc|Fze)5^A<%38-VEWxtl41X$4x9lKFkMx{mi_@9BLY!{dOuN%9+s9*Y%Y0Co zGqshHvey5)ds{lX>_s`g{gU@j6s2*y#>q?Jy z$j!mIz6YaNm|ON!k3ql1#pg`^#0{2xKg8#rAz$mUx@8x|=+k@+vJR1ZPQl`1am3Ez zV@P7z4}l*Uzv>^c9{z4D=R(&tjsJ9fY%KV%jrrHYxTQ4z);`6qYZ^VqSk4~Y4!z$2 zw^~1WP4l8a(&)rfH0oEZUnV?#;});f&74wRHC>c^oX7Y=j~ido=YIzt0B$zBn7ZF{ zH;nwq9;EDR4!`-6#uww<_|kY+|N0B?2l&>=Clt@wjlds)N8-DOz~3NvN5;=wepJHw zmYg#`lR4+|y+SSgdq;20>}T2rd3!f@SaJ3K-g4~w@(mg@iYrynJ`hCV4S5JGxnqMEvGe3{Dyc*Obvvc@B z%b7thZ&ZoVOWP@{M`vSGtKZHys6S---SDHuch{QvuHYtSuv{}@A4hwpx3R0eb!HD= z3n=ei)77GKwbx^-y4UnJx8`2yZ5_sMu`7TsqO*6Fvof^21Hf7fKR-dQET2m$k&NZR zqwxPjf1u~4%wAjj$vTm&{k{&CGj*o+`z%K-rhf|%DQiEq*OPi~BEQO}e}~eJ2|wQN z^v@A}4>sx{O>)b%EGAdrYCulLj({H*@H3--QD^So34K+Sq`t&QRowE0{@g9cd`Ihm zKLL8k#^`7D6B7KvKe9I67yO?B70E5Xo!=+Dw~)LS)y6&hyEj+Ar@1Nk7oF_o(Y*J> z&qk&D{v;ZG&wrvZKN%N|`Pre-n5+LDjk$JiH0HWpqSAN2KZ@?Ii$?!0%)mr_xKa`F z4$mvu*di9Q{HvZ9xBMY$wma|v3bcePc2&RGe2-=qb|tJJ>c4y)b$corbMbjmbm)Om z)J~%;e>93#ERCX*F7ud%^S6llF^BG?g=~DC2glEOe%$g6)D6W|GL?eS!1jRGSG0Hd zVoYXwf71M7xu3s#J$NW|DeDaK^;8+Xny#4(ZpT#rS^i3(|7rpHG3nQ=!*tSIR!_Y4 zPFh0AbrRMr=>bmVOghBsX?jG@E%ebNS;v#<h>mAQL(@0@Ba~c z^P^|cYG(z4+23c7a{1&!d;hr;|FM&?)yXL7l(|hM^PjIu735{DU+3OukU}1=%KJa< zKga*eFHFtv{Qk+#R{Ps^p5u>QeoLY2#4qX82+!9uv})FV<^ABk{&eUUu9H1zrboX8 zoohq~f2>pU{JnvLfdT#L4gJ)=FufY;8PESaZ-u}=?5)w>7ER?Tbe4c~KnzNPi}PJN>* zd5Qm^^b>lB(CG0Vm(H63+zs&qy{EfZFU6I&N(DQt|C9>Aj~{7!!O;4h_X1B9ct7gX z`1=6&-VeNP_pjqu&Jfn9lXybsJ-|PK$AIVXiRdURw$+tB6~Hfkg3&ty48+P-$R+W1 z^Jzbi@mr0$sb~n9=+>L#eJ$@%eZtok| z@At7mm>h<`&F@L!*~IRe{Wd+LQAjd9b3Ssc(V4o>0*=oB*zo*$-*e2f{HV}68~=v> z(VxCq8pOE12(>&=*UVbEYnmle@l;=jX#|m86@zeR`4qL#!n;pGiMZ z6-mZV6I@e$CAWeOQ3CrVpXN*|*!Wq?nlgHL-aqhVKONaOOXTCP0J?t}xliEZpZ;j% zK25uCePO~1ZDyOEh0~iUKWx6V65hZv#v(KaM=>HZj5c zTR=ZZJnuG#(#75jlDA)$rA4t!8S3IA8 z-nBF5B;B7oX7vk`_G6#k3Vac>8yCRFcEZPb7xHohf88R^s`zgyWS1@;E&omsZIy?&ysp<1CGN&Js7QB?==Ku-bdjlfU_u2<%Y2y zdl-$Jj_ty?>mq!hdhjEQi~;V#!8f~Ih+q9M_Xa&Hzfd@oQhIh; zO{DNz;C2dB*Ia#{q1`I;?OW#l>)TCTlVt72-o~z}zzmgGzbM9kPuh>w;;xQRpNq(= z+mT$?5`LZq2xr;*9;`m{H(#PYg~ru(F49o|*IFs$k)$v^^)g?9WfB-L-e zqmsOOelygwpLyV*^OU5X%yqhM3HAIAI`cu%;e5p-)KPUMW*BKQWcBPJL!dMo%P75) zi-_3CU&LQ>E0{~jpIC7na2J5Dfo^wbMc1_l@DX4(uo5^MVBXQiyl^OSG(Rr~lO-F! z>|N`+4Y*T9dGh*AEUzNwiHW@42JZWVye=jGCr{gT{RLUw2dt++A~JbtJikc4DAdne zuQ)lz_J@P9gKulpbat?z+HXc$0dn$w`u_YlVlPBVE@93NdP< z6ytdZps}7+-@Y*-?_KSl1PgD1WN}JHNcY%K8Nc42AK|{j$rcf(k_`?x^Cd_3iJKPe$&en)nW!+(8Es z|3QCGd;nkgUCaxa|F7Ww6NqeoQUiOClvy68Pptm(8cC*4+Nk!a{@iu{FPR!Z0@38& z>aTcef8RHi{eBp^lr`%`!<&4$bmQ8nqgFbnA~x_%#^axP9s?`W{dLOw zB=4VFJF1CD){gDm^_V|*-B*#h6u1r$>O$;73cspKGW<*7X0bna-M5kX1MoLM6D`BP zj?8ESi&=G}PvGBm{|F$i(S0}YSHP@h0pmF7x1rYn)_1H62IBZxE$7 zL(2ILxMr5{8|ad*XB>dt?_mznO)P}udM>tOWOn~*pWpP?^w@)`MmxAqqlH^Gxvp>H z#@CrXPvMKp*G6u})jR{U4LV~?RPySA$i4F?QOViOQOQ|!{y~zPaR>J@x9C2KcUd#; zN4>;1&VLt`yabNVN?8n&yg$(6ZIkQS&n|a8f5VbiAS?WV9`6ri9S3Ho``Z6>KeP8e z?Fn9)JCf^Z;rExo9e@U_=9D=-A678@z7X_&Wyh+X&c>5!JGxrsHxy=Xj1ON|KZj-| zu19D{uIG4u?+2a&q;HH5Ti1l{jHTTt%)sV$b~ZKkt_pFHP@Y#Y_qoz=frvJ94#Q2f@*Za6LD|u*NVUB)vYe)Oi)kV-v+c`Y1o>N6tbiV`5nLrz73=2;;_6Kbq8Tv=s zACxjz%c9t|Zc_w5!OmI#+zTu}1{=xs{0yug2hQMZTOijj~-Z%z&3tfHle1fw$hUno!8g+My4cly>wsd`3>Sv z8gZh_=rg+Xv6cS?Yz@5I^!Br>P@bz2uik>vNGL}}>0Cm8A z>G{h_c7d#X2e3DA7$Ak+Cl$-b$oQQrgHGtf>EJvQU{<>F62t6P{?(4&Z$)kQpRC_Mmhv+X&JnR2Hu-;Cpa0kT zcoeg7y_M49Q+%~bUu0FhYQ&T2g$*hG14ZwruAFM8Zl#YzxRu`DcPlSNPT$vm>3NiT zSz-OYuiu*Pr{))EglU>jax2vc?*oq18DM^a^o8OR!|JyhALv&l<6|GlD;%Knm3Q*1 zpyoV4&Rotv(epIHU!vHOm+w&h7UM@%CYhb@feqXwCAaeL{PqAR0CMtje#K_|HDY$z z+sXVIqo4L$S3>q?NRiyiNBETi#D6U^4rBPef132QKZB0sdP76NbV!t%K9(oPI9d5a z;CkS9z`p@vlD)yp69%PC;tWqyD8yLP-g1xHu7iXf3-bGn|Ja{>jb8CRxOi1~gnm0^ zl+yfX#6L3jKsA0dB(n!|5wTQ)Qpv_E5b`fF+k>u_suhhLohkiS+1l2)rgQbG`1wV9 zez12ZkN&iK?dW=+3CD@hHXm?kdN17`7O(#ScxQW>u6Hh(qk-{&lz<=KWa9pdgYW&# z)c4#n_Aeg?HTq$gnSSYoewgIC-sO;*1vCRv0!Cl{r1m}f5L^Df$D};B0XegLOy3wk zsw&C&Sp`3>{@nGRMdl>nbo~n$Kbog&o;;zqdqr7GOK%G#YclJ<*tNZx@XLXX(DjMx}?|!*g^u0nB}>8N7>`8!Z;WA*LegAN1|E zGa!u}?ESK5!S#NP%vXSm04beq0kbpDQ~!$YuGOt4uC8gJQ00a91FwhuGo5dT?g<`~ z>%E-J^}z1{sn=Zq@87WAT+_9xwRd$x>k6Vpt6R&vThv18m;8i&T6p}(`a#gECI{?r zZ|o2B${%CS#S>-~OzXFs30eed1f&g|^$%UsP+~a2ObWqs;$TJw=fu9cRtuek1U%JW=`jtU{5*3YX{7?{>PrMcWZeU3IOk z7xR%->!e(%7ltyUA25bH8N6$~uIJ)MzybV#5m?p50DZS=Ca@e}zNPA3;3;5p#Hnrz z9Lw)hq-OGAvnfXTFprX%C#zO@P(8b?LWNy~yczXpd|rLHtv~v`TEvFrRR5H^Ujv9k zCso$^tA3?j-4?YSx_R}0E1I!Kkws#D-sJoC3EzwSryQ47pRT1i z)nzu{WOJ-_b-i52$v0j=;C`d=r^IooUruy9cr19VSKw4n2j2<6S%5e#Y7asgmnt3B zPg6RMgN~)3BstZhGV=ft0&yN0Nadi=^Cbe&?WpWPCP^w}P1+l~D`cikFs>X|jI z&x!2aYG2^bz&wBzc-yQ8KoPr~(%`T02fe;_ry;_rj){QL?k1kTfp5i9V(qJu8s48<+i8Qhmq(YikLoYbTWTa!OLA(~KvNgsLhfYTq3t91W>^ zqEC5#Kif+3dy~@Oi{CyD1Z|}$$*H*>+yj6?JlF?Nz68{}CT^vCH}=VlS+`OC3b*|G zDSHMW4wA%RWByRGbp+BLzIg;wMl z;yiRN@Aq8JpLUXd`@2Y_Ejj zr2P57VxY=@?r-e{Jh=qu2aE)!0!x9vO3h4a0Xk66N=GM3UIU;RYgcMJe{nfZ0A6>j z)-6(R?3D7CIi_0aKQ{yaQ2u^bZHxj{OSfL(#0hJ~bp9749gqDPe!p%jW9Ccm3^*S1 z4MW_pbYXclv!!0((5xG&z15We8kT|N)Gry{NoVeZu8nZF+S&SAGL$T z0qd+k?$puIA~JFNCLqpA%nr(V80z7&zL>;UULG5l?89TmOyjcNu#pALRIF4*UG{x0V8dnrfo<95lIB%?QX;@lho;HR|u zb=Sz=Ptb__{3DX_TSnfIQ~B{p>>)cN;;@cC)D)P%A~$Bec<O2G(!-Lp(Yy&qUwD?uEjBe`iPwNgd^{ylCQFjqgX-bgKz;t?Y zAnrLy`zq~FceJ^8>ePVBjdTu4av9X_iN+KO1715*>Ewq0dwA`5Mg6E7*=40VRtS*# zYcg03-g-`)Ih=hL?-7e;RK@xpneUT$Vp2cdEuy9J!1ZoaS=PE>=azw=dDS{%Fm>~Q zsb=1zk6C0=S5{eD&bB1C6Z7N1c#`@RuD;PeC0%J5uo^g4?fIA1PpXKuZ2I_8<9GeI zYVa~2Socq0vDW)Df4x<0#G0oC>fOrrsm|cL6Sxn!UHyu$t82A0whVvizuK;?DgO!J zY2dH^^}%%$dC~x^2k>s{9*9*lcCkzKZFTxL6og$-I`)pVI*Z+>XWa@sZTwWvpAW|$ z8feF~vFhxm7p^}v(52tRr~lP_e<-;hRQIwe_*K+8$r;GFX3!qw`$aNJb#xtA4peXY z`L1*NXuyH)czP{ zP{=6_K3Km>b)5s%hZqu_fq7i~K>rZ4DT1p0gVg&Q{HL5gaf(OcAEyq8WE@Bf-O)D^ z`TWPkk0|L5&I&*Jtw^hLU!{Q5DdWrEMk41E`^Y&2|Kx1Sxi-?Kb}fDW^hm3df6dym ztki#&Zvxj_{Vm@<*+l*8$%pmpF8VXYvnpob?+pdcz+Uj=NZ?rg!o-}6d{k6tnNviq zyi`;dS&bQ(J`X>7Sd#kT!{9_`bMFl72X2VTkT{9>H|mE6^(VaY{r=N8)bC=q{Cdjn z4Tw7=vakNM_)pRq+8DVOUvXe};4%OUHE`3N2#* z@<=TH-2D1lKS_0n$oT@d{A0zHErq9BwgT zj3nbXs{WI1O;W#+R(tgya);kI@OHV7l@ zl7Wm_2R;rwX!?ogKk0ostom;HjK3hi`@BUC3*RR`JrGHGzs|^!=SP@0ob{vn+Chz_RkFZ% z6YDSaY`aQyIV~@J$YC|^Dpp0TdLCLnRXY6soBaRl-d0=f0^USAC|2v?<{tmW-;=mx z4ZY?^(DXg9(ZBy-;5|I~4;H;YXJDSlui)e$JDQdhnIFyopL^<{R}u1_-PY< z1a0qx`iA2d4$3vP-Q7RcFZ>Jq&ayQze&GY@_=Q*1vTZyTAT#l?L5G`iUuB&y$r-dF z;tW25ya*r+fV^zsLwbeC5?l=|KibZT@iBk9sNQ5uHV9K`iocY65HJ}KV zLZa?feat-l$G!kyA@4AxVu9&W`>k}iep?Y}j)RU`a*{JhXjlSV4T#a(2T(mH>-v4D zWmADZ-{tl0N{{uI)L$768C9SqIfEwhc{d;~gcu#^(y9kPXI*Yqd|Z&PG^N20v3evO z%Sk^kGxyFQ)(u4714INV>x4Z4sYF%B3cT$u(iZ#w7}fDteLgQmdsZIn0&C1_H67Ulj1Ks~QGd1rn@@0>i3|+XBhOPJc+B!SM>?`Xb%;ci##T-L8oWx2PpeY>tt99#yDfdCqO@HiKj$#tLM!ST<$ zJAI$*%RZ%eitjoBsr+kuJ?q0q5SvG;IOR~!R+KXq<*Y?LY0fJ;l&dE6w%-Z8I_~oQ z#!_Ycv%$a8TW4@jo6ooT1o$XpfjB)VQmOc#FCR3ZvZ8lIO?3@>;QF#!wR}){?^+HG zYFEK^)um;<%iEbZ@sXEX zYrTCWCi3BjP|lkjA}0O6AjS0F$F?$NTy=l?de0qL8GSc|(b5q7q#=ychx{a-VZRdp z;{Nz&-W}2#KmHec`=(DIl8F|7SG(;0T{6Lu-|bl6Jff61gTFNSkQ$pGL_O3R`{hie zp?Us5;&{+6PihC4ryFvt;^g9ZE=~go!>OK;@qy{ziScJ&oH3|>qT>?9FJ2i*$6Z*C zA+p?nc{PG?Q)OnxA|j*T;a6^s^Ttk@inSBHtbn+3U<7MfN)R8R!@q zX?4-vk+!`yN7~N&DAKCaWBh+8|0|EQIs2y(r%OY`Y4ef!f8h4<_#rBtr2JsD*AS?e z&XCLb6hk2PN8$sqarrKfzf}&T zN+k77e-1hm6X9YAPgxkComS!jv3S1RwBZMb0Ve^(w`HzsNMB$i-}zD+e2^-Vbi8~U zB_1tzqFBbug(OiHlH@X=+=pZro>F>t`w!PH47tHprFr{=bZbOz+2H=QP4@|@pE2Zq zn(twNaruyE6^Ao)Z-Yzi!UL&TXxi6r2a+Lk<-qs5_9=e1Lpv~JilJ@D?UqKBJ!mEt zK7?Vu=wUwWcy*IRJc-vrbhDwZOC@>m`>0^z%`s|^vo#cGY0;3j8)K;tc&cPi0WB z0uW`T_Obc=HhR~I$(oJFI75F$nVLk$N#e#o-!bGhsQH+4-)Wqo?5m)D&d^ire{7aU zef@g(c1rxM6ouX$Dt?G2Lye(F#~VI>Bw+o+(ZfTl2i0fH3J#rRYUvDJ!^N?H=+!R*PJ_86J_GYb^_cR( z`uWNSytSb>89JPyH*?Vi=mz}n=yj#Xuh-$=&>1d0&vQ`;R0ErpI zp-qTl$oX@!*Io9Iscz)iu*I}V&xlihGVM~q`wod9O&&#@ek}-EAf?eBe!DUTO0PF$ zI78p!ViF*Nnx0)z{tD~FGPr&1e!b_x=jH;Y*~Goyu80f|y#|19Ltg>jgMU_fVt);& z=bMaI8^QUmU!Oz=4IpM(-Y2(z|0`<;2t|S;mV5H+w@X6V*YZ2;(lD7O(a8fM49_MF#;1KOeZrd5L^{ghK<98U6cIMvh{Km+z;^%(nJoh!Zz zpIz1-ev8;J$3Lt)&|k4S!^9kr)E+))uA6@9{HI@j+s9WjWqgTxOI*IX3|kQ;(uyu3 z$|PQ&+e4coYr!Wbo<3|}Ez%h#>K@%N%*@F;!|)G=)yX5j{S_$=+K-ZtYyAB{?GD;^ z7+P17Gi)rM;;#Nt?tt*dHA;uy{+$B)IiMst!{+l@43q-@JN8fM@!LPVgJH%m<6<3j z)B?kRAog$AEzM{r)u)QzZ-2&tb|&aZ&M=Af%mx+#>DeDG-`by;tgWIrk~8dI<^rN^ z;@)q6#D5w#30MsL6}ScXxBDlP2bN2(zJB|0Cnau>lEi*I?H28)=l`p5&F~Xk5_j)h z?MW#t|K8TaoR9WcPF-X%pvOQ=x6K=PB)to|ij}=sC$5Ze-sXE-FRt z+XFJ}iPQHYWr6!u((#sGPF3Fvo<9j5LE3@OUjygJ9T1+rS33Oq{x_h%0F)$Wxaj%< z;LpJSj=ooVq{<|XBaMd)F?%FucppBm0tNv=^!;#*L*RB&{ipc-`kv9x@I26woZ$ob zoDPT`Oi$ly`BvY@WbG1)BRRuIn+u3euJ2{6JiHTtPc)pd8TE69PjLTa@-*t}*Y|f( zqEu1z{cvmO;_3PSOW(g5U;Ewl&eiwB@31v!-ahy2a$cTN(W~62o}29N(s_m9PtdH- z051V=DlTVa)ZkS8|8Ob}n)M4l1gE4#szo&UefypKeuwi6!{-@Vhd*fY`b(I(Jc>GO z1UAVtzdt@4sR-N;lIv%mT&W(K2%gUrHy2-`ej0%5cyJ_efa0gm%KBqoFWX<<|0U!1 z&D>}9mTlF!<#pwivIM!Js$A4qaQdWnq7j{lvnSDy5o(Q0m(+4Vqq)&vLbuiDN;lr& zh&J*)1&m-Gp!Ea5v)r`?Eg0BqDTAH_RX*2?B2lq^YHrh_GHi<3JQ`l0v@&A zY*c3CD4r-@;m-%kFFpUesJ|Wn?ahWhoBqDBpVhUuP zDAWmk?V;^wfQ+$z3B>4=_oz0(Z;pshgFja9?vq89z5AIU~A4%Wy!(Hpc+UkDzfZ zPagKv@|+Q6Ht(r9i2g#^&j1^Fa4hh9KOQ@qo`D`G=(M!=3e4+rSSk>i1wyuJzETzUIozlwgB#ZKhxP%BGM zEg^yF2r7pjpY|5&pzk%h`>Bv=7WQ#*8?<%=^7-}zK>hpXm)}-ON3~7^#|(-!wvmfR zD7zdOz_-5wV(lR32+-(HD3tWG%UYHR{iWlh|A?AeSjCdZLFQ0j>ku_EBNEvQ`?ME! zG;%T^b=7)`9WcvCg14jU$&vd}ENl2j9?aX!uQhnbAw#3!wfcbxQ6&9^erWr>k<1S? zgcOzQt^-4l|93I}FX4Bo{Jz9-h9`gf8)~#2W>W_-Q6y(1?Y|e3@Oz=IG+r8OhmFFg z6ndb!??SkveSM``(v>jRI>viRyp zn+t@(Chkp~Ir;jIk$>QOuO6a)NLr7%urbfvJ0pvz!%~1g7WoYj!72Do(8 zvWgGo*GBr_X?{B5_|cS(H2LvU9~}+QG0LR_xoSh>w?W1tr@M4)pzU8t#gDkA(PGlz z%RvUew$B3SnPcvqk;FsVi~y$c;0!?JMEbSZ{jL@LDnu8j^}bm3+fjXz6z@Xtt}^$| z$aUc4rp?Vf_${D#W!&(g;O*b5qOv?XsHVJMb!^m-mONO$Sn)3c|BWvGe}emQ;29pA z>Eai?CF{+a>tA^N@nBQF?xkjj)5v?xy)*JzaBXJmV{0Cq1*qR3^?et7axShQJ8504<%;kh5PH z8npi3Q~ySD?~Ht#x*rNiTb~W=sQ%q9we@el9X`b1)AnX&W#kqY|L5TD0*GQd2Z)n5 z^B$#wvMP4bn594Zx4`w6c9ik3DaVZXWHjvBCs(fQ2$^4R7X-1~lOI?lN$Fn#{a>4V zryjxD8y&XyWFGtuQ2OhcWgto*amBIcvgU)C-pTzr19>1&9@*o=+ksC^31NH&=8spu z!wel-zoo2HImX;O^(Rob6#)HG$COFhCo#;Bj(uRLAxZHsgTLRKd#C;ka6bzChX>M? z6o2#O?+8<#mcN|(ooDWy`fSR64-kZZ1Y-4*I8(QZYV0qEv-K`7-~d0@#ZQC3M;d&J ze+BppT>QmsNx(R^h0hTg%*61E+$P|+>OLL*wzK$NW88Ea{FUxbaz>)_+WraX#2vZz z{~xw+aWrrqGQ1ftjL3>Te_vu{dL9(xS7(HbROt;PZUpWIh=k(fJ0m^>zM}BM0cN{L z(ho-V0Ei@v90Cv-87W$TvG~Z_03xR&--j#UspmhkPOAPKAP4BlcYh!k$M63rrP1EM zG^FbO0XS3d#{cVQx^)mGBZ+(UE7Lw7TJ1Tdh-~qi8>e36dkwJI_^S!$w|rFATY{&R z5G1R6s5m~f zwemF#Jj~FJ`aN*Ek*~fCekvIJcpW)7zLa{4A*lAN;o!*zusowOjovc-m{Uk_LK%s3 zqQjgpGzI&FNOToSj^a_cEm+K#o{qXucYZ^rsd^3DQ@ zY2$Bx|M{t$y=1kqQOe#5aP6o9tgO|91>M!JN)Zc&`fNPDM4Xo%>b2(UAq<+K?wA~qT zkGcc67q~_3{YMG*zGdwY!#%}20ep;}Mm+&Mr1kqs`jJ7Fwp@Ab$9P@wOr-o50BrrJ zXS9AF^w!DSGH>!WR>Ky+%Q#)-CKr6~0v`ZxDc(f6sk^i#<%aRK)^`&4wgKM)TeUuK zH|@v0bh0T{?ezOgqF-d(ac}%D?a^wVdl6auJmm|q%hC7(qp{DU_t19#vRCik)#Yp= z;9Q8HdLa?7hsXMN8F&Vx5013j?<%0bu20ya5r_XDv%d2_kb6HKT`}Xy~<)^MEzLd0g1|HXF#-pRp0@^FS z&&vCjRa6eBs_0);Q8QR;lrFv>LOF+H^e~styLYbZqt?OqQdqnyP0r}4=&J9@Cn!Ch-{JSu<5X5qc@9Z_Hyf_(?w=~ZW$^tLTNAUs@8%uIuP>G# zn>zJ9^RGe?akg^&Z*VjM?*S%i>x?fw*)wR#d$T7l(4&kHkoI@UKN&_!(F_On~sir&_bGo^p(l&9AelyHy z%|D3Wj@cVH7?6n#lE|g*$GnBOFq&QBvhw{nuE(*Ca(torU09!i>+g#zK%bqL*LJ{< zlcaIkd!Rm3?r@{V6v>4oKR?87_~WwFpEKg+d>J|GK=!4|-XK{o{=X8R4qSin>l|19 z)vumH6)yqGfs0LlNsJGg*oLxTSNvFm7kO8_*v2te0e=DdZTI2?&X^uNxlFLZa*_AX z`}p36W1k14BOE(9X04%OcmGs7*$Zwju{AM%-o4GVlW|LojI(F_s4;a~ZY(}Jws$1s zh~vTcH{b^O∾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

    pyF<4BLffwQ$ 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 z zE7|iQF?xwv2p?w6wf4@={Ec0|W*wrwUYEMbw=h?+QoQOt;4SOtIdO(g*}oo)U!{-T zUoF1C8yxL8?X>;t{`j@;y}^51jlZ$_)6o9N);p8T_;0*u(GD@~aEtrG_GVmZec4&O z`e*>1wfYFvOC7#{Js3|1poV3pwwgG>YSuzl@2~p=x>1V%x{7s|RUc5w`RdOA#{p+~ zU0%HgK)XqbEmu*yw1t~RLt_yBfMVPgwgclz#<+JO)XoKZdFH5j1<`TVhdRgaSjN5S=H;0fUGxh&#C{tdW~WnG;( zzok9heHEH_{A2zGg-((67}pMmd}9CB9EuMo{yOo|)$a=)@@vG0#kcfW|Is+XCppG$ zhh~XitO@4!#K>6AGHVV4G{*1t_ZlJ^DmMlD&A;O2PEN7gHS9NcKCq5{`_Qsz)?7tn z9|9anfylP@+h$IrH^i5D7I>Tb?rrP5<~)uOAAA?>A^WpsKaH#}%A7&2Tl+oQXc2fi zITg_!GL%U=AE9QerQ1nn%_!R9G~gU^GT&A?h&xW2Rb^OxV%F#!9+YVS8@gtk%I(g2 zK7b&!d^vt^JbI%--mnsXyr>;_<`o)8Su+C~bASzA*ROxpQs8%=<>%V{zFlOhnKx;i zP%3C{mLqyN+YtX}DJJM1cyCud~!R-f1L-=370Zbuciup=Um zSPOPq%PvRdjVQcCbONi=QKa+YvHYa#N2beDiIJ5l>#wW+!KAFQcG|3Aq^u#jyC$jj zac72C!{?%lE!X+w;Q??z3_OO067ykGwnfZ+5u*(nTJe|9eLN z7k=Dz&S*XyCt^?3rgQu|@GsyOv=>7W*o)j);HQA-BtNyYU0wp)hrlk++`Gfu*WmBm zhvs^Kc&5H@|AK%{^r-FP?u#E$*EiWvD~A8Fvg-Ou(Sssmt&D{zx(?4r`Rf_wFWL_g zx#=7~du{&?ujv01gn^&E_KQAw`<|7%!Na^e)(GKJDIhZN0M3lAn-ge z2pA?suAe5oUf4Kw=BetpxN@U@IsV$(YlIF;bZr^OG_U{==O(XTE_&*fRw~IovH1)6 zas6~6JZrB84auynR)#<8M~Xq!X(@KQH_N;L&NOM9en0XX zf$vCBj=ZtKu()}Fwy!@g(0KWJ@ZV}_nzg^-zghl`-JYQw z`||V?tk^4M8>U0yr8&e|BWmi{D} zbt{3l0Q`e>>YKWHPg*e}1*@dE4{R#%hSxBbaC0F6?V)6e5151oSJURpojzG>V``gfM4Y1R=G zC>aV|OF?(wAfYSmnlJ7Zw_ag?`gTU`>IUdm1$1#{O2z|IDcBFtcHPX0I5F6nb-jRL z06vMt*@z>Vbu3)FsR;QJD@IbgCsfARyjh3eR>Fct$+s!kAJBG)Ti<3KD!$&+?~VxW z+kra)`~1JN&Zh0VrMfJg3C4{5MoaAa=s0%bKbz>UnD&L|^0Uw5+vnRu`(oR|@Bi(g z-OVZA5|o#Xtgh_cIH;2A3vVZO#i`w8?!E45ugfdg{B`#Gx^KGe(z{VY3t9RacL?ZL zRut_Ig#E?1P(B`mK69CMtm3YFAa;GC{Se}n$c4D&qC(#Vb^w2MzX!AKN7VXBN*@QB z0dX)Rsc1fA{C-fEOlL-<&|lfqIre`2Wmy7y^oiPgWMKVqel<#V-AX&&9@B3tt4>tt zCm!|X5JT!SJfhA1;Z$Y1vNofCWCxnezj$k@;my>Bud|rB=sCVFS2FBmVyG)SzY(n; zx&C76Is`dot#7?Qj}2&Ryn&IOKk2&eUtB+^?aB+L=zTqjnzhwvdY{H0)~W9buNO)g zM|}46(qGpAx+dw`OOeXL#!u8Qa^+h6qOU?n=iLnI^=VkR0+=MM0D1kQ&B)KcVpb9y zvH4Z|s{FbB67z!fGKV6W^(**Y4y*yh2xskjzI8+7QTBYvI*-il#O|(V#bP7c`P=`0 z$YWgl5!M@jZT*j_C-p5!a6XMHlFa%W`MnLe9q0;lyuTJiNYr0D0Fp#f*8dDrIsV%E zA4s15FW6txes%pdkvj=Pkj(nu^ZQreIY3;cY`?bKUsJlSzeb#8z3*|E^^ZgA0~%Wd zE*l4N{I&HJT#d}oI=Ut*@sIWY%f(JALcXO7N$Rid3&tBX%gNL5@)_V53bONoxN_7i zb~zZ|N6rDok>ps8CTt)M8y@lY-Z;QtxA?l2?dAvSszZZg=lBB~PTdU)d(dB5f8Z^j=@N}c zx%TdmA_)Y z&*t`z+O;#G6U?(W=)_-%ijD*64P|fW;1lhK*x!fSFvOAyH_{V0(NIY+s~b;z19AbyQO>V>VVmBndT{2W>0ea zOXQ=|z7MzIddS`cVE_GOHi*e@GwJwzDf%9gU=W{g-}C!u{QZi-o&IY_>^OC}$Qie@ zX`-+_iTi923mJ_0JM3*{!=1tXuKa6zs{9Wb#s9@U2e(0e6l+WO!e`#_0PvuY%i;4b z$wR!z@309Kr=G4q@onfWveh#ip0X!g>?h$v{0VU`h@NaU9lpAP3B9iVBhU40SfU6ydC{Ka@)h5&kbZr}qEP?v zK=OFi8@5SVPCLIQd1>cDzk{aZac`f-zi@%R1OAU~-fXl-A?CEJ&~f(##;=d)X=~53 zvbqtUcjFcXg$)DQy`}qKo@L=d9h(15yatQA=pvz~W+o?glOM7nd^`m2l%dhrD$U(gzkJdli0hQ42puQ^4)-D|`EV!s$hk^^U z)_=av$@{Jbj0;<6civN+|2p+Q+%JWFu47HSxSwDEe`#D8-&0&a0DMbItoIwp^HBpf zLCgybP&e=T1F6mQ#+A`{mD?VQs~JBGSRx{baTG@{g9!opjmE1~|D6(Xt)$p;DZWuT z?3l(rTX`Jp7ulT5fT!8H7Ak^v8JCLdr$WABXPK{6zkUPzPX>HnXGdUf6(m80{UPmd z?!4V*PKxAI*uZ1cD0jWAQyK6Acaqfa@5k|G=wmsP)XwkteAD*(TCZ+gh;iFMzn;xN zsmp3eK%RhuZ$h?w&N>y$8>bZ-=vLah$#El41HQ7yX5e?&5#3u4rHUI3 zn8Ve?8L2(Hjvfy_@KAeq@SB1DNfVPaZnPIUziN-oz$4jt4SEmCEN&F^Go3eDhqOP0 z@M{B4wDn!mw+-J=lNSNSmOJ7Oang&;7zj%pn6LQx8eMISfiU z-y!zo(@5dDHnv=9$5jsBuBk0O9`^T=4ap1~M5iVg(OhiF;gH%n;hSn+BQ5`-eDNOx z8H=m`=*9ly!d3VZU}z4%=0|b#eJJ!Fj(wGObp1(O{`KNN1`ZWYzW)F#44ehckuyo{ zJVlP-leYiR^11$lxZA*GlE0L1C1tx1>cmkiC{eFX_7BRpIa!j_KM=neINBbYfjG_P zEW&7B&WR%+t=En0h!Z0YFz`-@6;RZUK4UddEUrJo<_b+2=$Gps_9jO^mShILfh_kx zep0L+szr5s$F=isIat6QBiT2N_bn?e?8Q6A ziVJ%a>5N^ji2tzTJe7lfq;hQV%pk@Z13zSIbR6u+VQUe7iU*LVYe{jxHobaDPnLjd zY&q)HR7m;hqRMw8{0@RR9CUz|_q`q^y^1^aFD>d+QC7~2U@kA|UEw4Uo^US<&MFb6S5H>jOw zUi-E3viul#s^73N)5IU)j+WP*Pw1QwNiT~2-#Yq#6;H5S=$QpKdS?Fpo|$)(XXf7S znb~)FW+Ws2nT&Kt{v_m=?Y#zm3wc=eB2VSYTpKB)veGh#J z^%46cw#U1GcDf$Iwh!7*_5G8=KD=3-;OZ5uml19E`$4Myk*S`9a$t9~UocBCh;jd* zTcC24hlWi_6O@ z`!vO_#%+(V9)L+I*VD)|1)2%j^?;vI4{duER#fnOVBCBgukXElKF^T(a(SFI z_!MOp_^B=rgU)_h?5xNmL=mp-rC>+oZMw#pVla)cOdvjqB5XetEA$ z21ewAna3F1!rFT&@8xAhe7!0*-^Td>ue5(WM>(sZT4>OYK1eAsfL8boYJ1?9oCT#} z)6F2!G)8HIh?ow-=MCa%ok8QE+0aTzYK~~$ppTIl?>`tMJ@^>t#}K}9@Rg91st;#-_Bi8*^Oyl~;vne>pv1xVL3b*@PXb&X)NWSz9qgA68$Fm&+~7x{zbQZQ%k9g$m-Oh* zNW&tYER^rNK0grX;A#kaGI+4+_g45_RMx9kS-))5;~_qudh(wHO^3#+{I5prfSAgP zlCsjy<%LBz*mp-~TF%_W1qW|WW%G8wa~c@xl{e4}OtkhWvnEDfSkKK|&bUYI3|# z`8I>axz-lsG2$N53Kk?Y$S=8Lgnkm3#;MVI^cU9JbwYP^%#6Kh!+ka zW;o=#5VMZ*KBgg^AdMbzv7a)~FE?KJ4RSoyW@Uyjz(_pDMtf%vFVymKr;eiv$@>j*x+_lGGm z%<`!nb?C?H`0E!FlE?UN+K|6_empI(3#uSU(g!Wm#n{kHLwSYTMOU=wj1&= z^iTJBx*^0shui`E4O#)oLW4+(t)E(t@o|G6qK?cb4*3)*zzRdY^h`BA!cB@7O58K< zzUo0|w$Pz$al-T%r~q@xwG1@$8*`2Y9pEI zd-;778U_jY(t4D3+jf0%g4^ zQTPP)2(GIB2PDNq5BLe{@d3^bl(U?#r#w4rpRgXKorpG8Z_pb}^#t8=Vlq1)NnVhE z#$#n)%JDJv=qjC@&#eCZNTt>vc&&OqR7ZB%u0P=u)E|Dn8q8F^M)|n)2hOQpDre!p ztNK&?RZWDpns{RME8d>ZovSytc&d%p^50YKI6D6%J(uD~^LO4mcyhEpg}?KE>*)WY z&yHVgpwD6ZHup?TJ|vJ{y2o8s98=9$GVfxjBPV1~eFUWK_*&nj_Pwg4qGy{5z82Pv zZ)?E!l-54iqc~v?&fJX-i(Qs~3#~M!raQ- z%`0=|^se)5te=Gay#+j$`}zR(sZsxrL9ZEsAh$w-d-jBKpbtK((E7Xqmdq2>Ox1EV zCikxTp=~G0H)wysoUfAaf<(TbN&9!{)2plymA5Ho`$)c0N9*-2Q-i;+SuOk8{<4|5D~Viy>`nD;&`4+#HE}p}4KxsXgPhw!RS-2ll<2`QtnILB z?)OvLc1gXe+(T4BdzQ?`gjE{QCB2C{}(bD-?!;HirIKuiUlVs*gjD8O#4Mmdwuje7mp@gmr6ff{1Vm&I;Z_pN_`G= zu5eQS;`IAn)^B6>C)9JP(K57D{3up`=%uzqW+=GVpw?zBC-#O^&t*Ix1OKM2zglj3 zg(lTcWE#r4fT6#VQ%%FYns1=D;;Z2{^!hO0O!Zdt4fIyp39LTU;(&T`_wDFVY{Ag$ zAO|(YYPZjddt==D7dt*a?RpK{c`qcWrR*}!5n0cW@+0KXKhf?#g$g*5KaYUY<`cC) zjp=b$Fd|Rbu6x7dHNRcOr>otRcExQs2ZS`A%k}#}8MSLY zS}a~lllIFBj@Ls^$f@k&UF8$>Q|6_Hu7zGwK2m><-BWRdf4p`P`K4|I??``Tu6(FO zHn^Xkpq~=u8TvFN=lm2a|NIhXJdnTG%P%Q~Zj>yny$=0{8?PNkG}mdzZ-4;4=eMKO z`4?6MGZY7&e+(oJU|&evQOf;JFz#&_fk?am+IIfb^3-;|2^r2uCV|Xx>sjs(+K-XL z&{^F7ZM|RG?~6W8gjUX`l`ri!>?pm-3}X&_SSx!!zka_R#)y9y$YB_$ZP+Dx<*wyc zd@$@J?l=WH!^?m3YOm$f^X=X8tMQA^!sFyU)sJ_>_B~nS5TVD9{%_+L&i_$7P{n!; z@F5X@@yKGWC4wQE8=#|P0kV8#`}4W}+kT{dwEs)H26%++u*;zi!a8j{651_kDR8&? zBXGyCt8G!tu-@qUQs@Ov2&9gs?^S%~zRqh_JjvUu<}fes!MR?un`e5>dZE2{z3=T& zc(3PmxW{tH#cyW)4b-nm``gXbL4W9Xaw@xaRrv({Qh3lehvD|&)1-c>`3C(GOfl?_ z&_6WadVYPoIt))c480z9zx-p=9Es2)Wk(WO zYm(iV^H#Z;R~66jzmRlZ^=+#7$)GelW>Ld2-(T#620Isa3*L}tbJ}6;_9pUv3(L3} z`dI%l!_n{BL;d&UiOWoxw0+(8yEkN}_eHOB=ihyy{Oi0ukY$`6m|-v4?eII1Wna#J z3~3D9>Qx5sb5nfn*kw6(-^(V)Upem;<4|N^W4GE5T)onMz&!G>0A~!BSg9ttNfHOU z>Icd1d(-^sQo~R1`x)`~VT58Onc)Z7o#cKd{XEtC-lYG`>pE5&uM!R;hbQT%hvj?EPxPFN5vRAs@f0T)$GecJZVB?%&b%Q4KrMd44|H?-#{iuhcLn zyKqVIvm={}r-z?PeTDTb?MQ4d(HD#DZD#oO!Tq+DoqBHSd)J0vYqM58B&I$b&o{hM z&LznSz)4##nT!-P_-A z!$so1LL+Pr@~iEf_IuaV4uHmo4@R$vdgPU|e~!)74A+SO&DJv|=ObGq+cQ~CGsc}TquCI9jE*bHB2cgWn4U+po^1N3ZL#_Q+29aX$d zZ7a_+5nYq#*kx@h^=fLDGo!X5$RKyyH0l#A(DKq$iN3NHY5xVSw)Uss@`CmS9Xcbf z9)EdJ0k5pml(qL|N&Pv`;nL25T(T8^D%$!o^g6UsaqEX|yL9T@v3=Keow~HS{GyIm zwk@DvkWVJ>Q;YH!zqGAm*Mcj%wkx>GmQ{Woxdiu$T;d7v@56~441ZDUXRDR#s)7q_ zeYxezR6ZH+zv+xKlMSRRmyFLuF1EGQS*`T+H?vkRVY|qfP57{_B_cl@3^x1&cb(?& zrJQ*ddI!RT*2-i_BxNj@*fHs$Qo4qGOs$Mqos=7#Ui)i@#csSC;Pl#y{X(Smz58TU zv~Sw6_1wE9)hFQIP96{PD3ew%zQJhFHy)b|MPw*AUo-=ptgt35( zcLdR(+U`(^oO1oJv|emGsrDhdUeaxU#nb1*r$YEh$Lq%y7vznCL{%k_ruN|rXMLpD znU9lekjvuBrFci>5OhFNpLi1N%k8nLy_=l{&=N>o|2HAKexUfq%EDecU%@F&vFjt` zi~XyeNM(zkXU?Yf4>l)LJA$1Tpn6Eg7W+e5e)s*P>NlP5mRH&LgULH!a+!lQ|NTuI=jB<62fg)cy{l-S|ej zVxHRP&PmIk7jS^-#sPEe7*G5@um|$DF)J zNS+Nc$YDl2Z|}_IZ|w5btEsSl#QIZk^9V5?UqaipzkFTNJ&;w8Kd-Ri5Kh|oUHH6A z;yTQV?6a}k`1o3Qi#%wr)O8-Va|HE00-RmD&Dst4hmRyF%h=_O;;gXzjEj{Ytu%s> z^@t;&y}(<7Ff7XWlruzGMu0X({6N{px08+YrGJU-@?Is^)~-(BX)#eo4}PAFIDqGkCq9j=T7(qTvh1<{{>A|9O;W9z<^*Y{hqQ zf0q0Dvd?XdI7K-n)}D@7kN3Kcax$km;uiVO^$*gT>Ghu|4srECaY!5Z+$DUdiV+eA zcnW$2693;Q4%y=15U!IHTQ0TJDu;_hehB*j4~%$({I)>bA;AL)f7RsYbCoYRWW*%f zm-ATTF(U8}BSumU_^3RIKT6qS;gIc2IS>QU`_mP6bFm| z1C00!G!U8vt$-rFHv|20alpRhSR2Swk1V%BqHwZ~Me8AcJ4#pa?W+2r9vr_9F}5G^ zuD08k_&pyj+jgu>d~+{$Ia2x|Qxc?SDn^%2{29Q$ceVV^=?5mZu9 z(%|`!xcV8@8{3X;;d3!W9Dh0{fYfph>!3%r_t)w7({m|)R4#Yjf|!0s#iIY~_}l$o zV%>PQJahsAeR6cO;{bk@ouo zVljvljUaM30xW=hW@JYw#Y{&N`xX9uB=b)rZ|7_79aI+iF(dEr+oONtTx3W2y6a4( zJrbW+4%H@lowiG=>vq;Yl>6(Pd?#QeuIPUuDK34Nb{p-NCQsv(X?)Kuc&&_$gN?-d zjhqM7K`XqLvmf?a&IAoe(l}TzyWj9v`=R^ZP=#o`62iYU`oE2nIsZrXK;vX1#YKu< zf|q1F>U3x-$E%?Aa>})H(yHn8izq&I^+NIK1@KWMAm)M~avr!P?_2N{e3lZQN;$TL zg^w+d;!@==)`_GTjWOQHXYH{W`3}5sgn2*YL=t{#GA>oV_=QneAQ@xkF&{bd&44dB zSmPF#aw37Bw4Ba7k{&zpvAA|J821O;dWlyB5j3rX1Ca|~F-odCsl7*0Q<>pZEid+7 zlE$lkLjK>j$7a;Al=rug7{LTSllW&UoLa@5L>)%o?U`}E_00H-JTu`=&rJLcYtrws zIp*>=1O0MwaxHc3uNgF>&Zf+NgC0fTeV`~#9=VaLX&+ig%RCDIG)h2}lQNJ;ydFt> zuMw=b%^sUk1;{c1n!$;Eq4aTb(4W<>_e9!G&@Z4XRBzn*E@|JazsDx%&&t09zQm|T zb%5-9U~~2!n?!%US?kh_qCbyfo$RP<)efh4ABwH>bnRyt&$Iqxl=OzXAllMNX4DYp zDCMr|&FiV~x&?EAn(6ywR;7p6Z4QmB%Ru4>9<$i}AtdK(g7WqsS@jZ(a#G5ht&^_* z8dXC5*DEp=e1d(__4!zoQKO*oP_2%$J_+8p)Vb`2;!+hQcE1xl?dpBV54)gxiWM6* z8(IMMcE5`?>Qc^tijmWds(~g#b_Of8SBZ z!pe%C?Mi!;`4LuYk47^WF#0>t3DBupLoMbXZfi>MZ12WuP3`1c;k>SXKPACL`YHX$ z`Csv@`#*MtucYX^=jC1VkDYJdJumN|e`rZ#T(fsx{hK@PRXjcFCFNj73w*@Fj3(kW zni;3j;Ofz5$tl+!iFT!@?@>JM>Zjsqtm^2t!UsG(TH=8BL61NJN>bu!@ynkGo^~pi zYh%l$xLW0Kadm6hw;>yn8C}fpcxVbFU_^0-@J)rQX;*n}R^|;QW;n8*42Wus`x)5p zP;Sm~%Anlf`q8&hPQmr%>|bd`G^1s~-zsPWgb~a^ym>S*T9V>;>4((b=sV?1lAbZs zkQt8Gc6D+5x#aI-4>KAp>&aC7*H8;6(XOd*eBAL$s824A9s%DQVL>vZhf>i8LWglA z^9NBJJ^CCjLT9KQ9XE`Ah%I4MH)YVyqPir-(cdITKLTtv@)~mR{e<624Z%%ZwZz0z#VwW$9S2UhDdL6u< zgr4>GI8%n>Hkr}S+cj zr4a)+6}_(4J@M0=l|JbGhkss&SaC4=KkoZaxZaE=$RJ7a$47j(4Y$S%zDsyvb8&Y$ zA6HLjA=kqA{&1ob*mm8r6rF9eoy8nW8awV0qX~qwPC+u4Wf@A^G_i<&T9L^JjeX zm!KXH%@{E+Br_&486&(UaaQe7lb?SXS@;T$-{t%Dw7%qSsh(PYTcKM{47NKB+bd_! z!;B#oFa~ciW`4k$eSe-kaVF)CJ}2>9syIuE&UhY0nneA~OE2D%BB#Vesp39IG8YGq z`3L;M{y`jg%v1FGpbxIJx0x}kgZmLp6UVAQpEvcnm@$iN)~cVshyOFsb8;?8&W%35 zboA5pdvI~e>Eg(d@O#|KV8*;_cevOoC%hHRGEX?>*AVuRdNW9F#_-g^n2)ej0`mNn z*>f?f@A>3JU(#_yUveI3vovG2B{Fy9+J*hGmXe~>OMD+GHR-tEAoy@@tm4I;Th#j@~BB85ekAUBC&|#{VN%1!L zye-eAwCh~Z{>p;31?{>PwCT{ML#L|>WMG!@a|R;6%O`rQI8^0CUhPwC$DRot3Z1U@ z-MQb^m9!W6z8lDU)s;xyrftXe{!=zhkXOdnDftOrRyk$dDt({r*!B=HoU!dxp7#QI zg8I9>-DL$pd+168IzZuJ&Z8^k_ zCG0|AH$qF6shnTuWPQrG?>APTyVrRguf9)o6da)`PwjvkFQHlFA2xP7iJkcw$1OTl z6joFwK6)VeYP@LN0m$%Ow3Vm(#vP@S>~U|sZtc33QoG;qSMk$JJ0D+LruN?G^{K|W zN!M#!eym;NVaCbw3Lw|GDrgLJ40NKLa&eJpN9;I|+M#G%-qkN1|6K&19}6Fx@3?c= zUI+Du1e~Uf%S(THGexk$FI;T-6z{7%zK$p+#CMH51J)!nt{uNJi2ElbAW?vv9gjBk zxiIAmz8KdHKE&qoD%ih>>`7+a)%=cyCPTT2kB<{bLeerH49o72#sQMr`&wy#>O1ZA z*jhd}KF*kU+>Mr}87BkSC!l&LyYX@5>yB$i!?z1;NM_vK{BDJ$!?%R?m;H_WNG0Qq z#{CdtK84!RH8tbG;BrkMB>8SJ~{$xCd$YAYPwYd|b;*b~=B419`K8 zU>v@E+#qeY?S0iO2|qplyf>d#w`<>Gmm?*fP`>mV<=YE>c;seD!r9WbCo(r!}<;Rk)7yWeoy85+o(^MQY?lrp||0`xmS3$U$ z@zUFq{TkYko_;p)YmPptU%MDSVqV0rjsFhYdWf)snwpe;O~(D3QusBuu-qS8PV3)9 zF4w=Eia7gmj%3Ck&3^|#2XmBUhf~cz$Bj#beDQDNiR7t&W8L@oBb6;XKZ0j#h;3+x zr5)Wkh#qIKuCrd^JmdX&IQ4Jfukq(Y7YKjXzl}dfj^UfWf0KH3{TpNL@$DslPLIEW zvf*@iFw~j%lyPU1=YPiuU)R5Z)yAJHT!k-SBJq5W45gy}Z9G1XwE|K*x?XgA7q-{y z&5553^vm^c-y+A;ZDwXX;5P3usD=}JLyDi`>QTKyLMg8l?T`MJ*y#8>q5j%#TZs?b z?+W?xqRIx7P{ES{vCAd;;KYY4jvxPLcru0`KS<>We$4nG!ER$)9p60_jeEE0*0+Lh z;8vvQ@AMc+YR6~AkALqZM~#82-rKBg{+ro|We@|^7k*)V%bAIKkr_XVeSG`)eu{gy zN&R*x>|Lz?>Q58vbtZYwgBE!$Z}sgI*|wa2tDR48J|^Upyr+EK=Rw*As?e#jcW>T^ z?_VChu61MANxQp#B&r8t{WSA&PjBR22eBStd@c27dnQpZ>eGy`ftEo}SwS+cr;so9 zM)6iDxw2MpJnN^%KWA~Cw2S@DMaFz)QT`KqsV}fmNaOQ+#1Ae>rHo%$VU-iq8 zXXmRY*gk8@L?!lJyFczwdcvg*-=bHqTSw(I)%|P4>r!vW7~YM;P%t)(YHU@5$zG?D|oh zrS;+4O~pE=A?>+V9y6hkoz9TN69lZN|CRpGWPGQ5!FLmGA!llV&;FVT*TRBiCfvxc zbnu%X0V|3_#GYmi-%aR2wj?d{A+V%1Cfp`xlJpG$GQ)RTJ{R8+6_{|ZfquLAl6dNbGAovuFo&HNp#MOL@k>m6nHzgQ z(Qi8|;qLnz*!u~u`(?<}=hYWviVr~HmzH%CkYMrjgwJS4u)#!Z$V3?qqtN#}Zh0v_ z5EGIzX?)<{JH-chNSx^*&We> z*m|xwGwSDDJyJi{4nBtpAN<@z+>^%0|ISuAN6L7D#L3@k=;wmM#+Fb0jLPHsnbQ&D zyRasii6`?r5*i1IT}s%)Ci@xXD>_2VRQ*gp_Ql1M%)}1-E`e4-(*I-m8SI~|RgoC4 zjDy8iPNX!GuEzE$k|3iTrr7mfFL4Yc)1-cmk^4lXocK#Q<@&jaoig=vTEDKJJD>c0 z-)bh7z~^mf8zk}aM7uWC&ow`zlnp65u`%xJrAWJi>% zC0G6qdH@;>&EW=o*TgFRb5iVj7X7yJxPIohoD-EMnTdZwmJcDBJ2(K+dWh*~bX;xo zm%IckNtSrviH}1MDn4=J4T8@;DCv7eVbKjl>f4nP!Y3r#J$89gjaw~$80+(G%&1Qs z3H=Qkw$t@DZ}u)MMTqX5%8E(~d$lPlDyuB5xV)ryNkx47CgWGjA4sm{&-0qSQwQ&A zwsW=o?!1KJ#NU>6YvOZnTJI*XTRLv;1JA|K3TTp+`*Y#bzfUnO6Qm~9v*j1W2X2JV z6A)|pCN4xCiVrpS^6nyi zxKBD7IvzSDnTz78^5k>jk*))BzbolL2e~Txzl)>v|CG3C;&aNuOtM(POd5b(%OS?8 zlg_mF@hkO1-HFzv*AJq&$<8+qTXzUR#kI&qDp z*m5aeQaSuqSKo~$OgdjPVn@d0cS87;gNUIN8w(mMYh$G1aw$SD^uP3rHrd)o6pTE8w{YD4}K4j`FH z5AeGb`WGa4G;4Ut+G7VVO8m5`g;{O0}**;#iZUCx9M#H;9h&Cyn4@ zC&jMkP`_QgbRfBQv)P$Rr$iYK=CayU~YaqBfV@rcO+ zo&N`t`ti-wwm@)6_Bs7^@%^=aQ7+-F(T_U1sF^Ip7=H48(06z@oUhZuLj7f5*-Mqw zAHElfLxi8Lv;NZgU;U-~e@cHjiD3`POj2xuOstKad@*z|beR0*+A(R}xcX)LP1Iky z`l0^vGWZ-Pd@$9MPhfjCBo0)JUP^x{<=845oO~sGWK7nd{U5`EWG1)cSA69ykSK(7BCWq|&U%E+oD|8WqV7wh z9qPqT1(62zQ-^Wf8R|-I$?Z#kL;0rdr?h;&pVH@0CXj!jqtN*m_;B8sXbr^&fqakg@h;#{852s_prCVYjl% ziuNLM?0h4BDo6ezu&-IJz5n0Y1^#04e4lgL?{&GjysWZM@RCAlC+jbW`A%j`Klyct z=T}KBXROq%^%r6`QYQPHMZ{kun2^85Ys3H5U%3B^{(l1PWuHryZ=T9GP~~}L{mM*A zuGu@Odh5)iOMhh5xU8^~)gm$jEYWcp=>^^^d(2bhWapnJKcat`$;<3^3f5!FBnYcK zMNAv(wfPC`w4>b(#{Y5co%X{9e$>fX{pjWJR~sOLd>awgLeE2D|5ExxbBrgMa=x5#@zRvDeIHG=|adI;S-#Uf< zNbQ&@7ebw&h@Z?rzw%*4Qa^tXIZ|{b{@z68PybQ=mGA{^Op)z9I=)Ns{z5(fk^6o)`{9q+^;)lZLCW3C=X(?U z9)$)$cWJq|UoYNB$07~tA#VLf@B{JapuW*-9cL3Em{JRkfreQ=6=lpmXp6)yPvd-8 z88>CFW@e@^mY(u3^iTJDXj6!oPq_mEEln8$jnk`>eqzg^{(8z1a#;mEnUsl{@>J4s ziUXZDekr#RkYQ#1zm#g;<)m@1APyfbA$h;_O#WZn3rh6RA$|#R>?UR|4qGFjx)i3+O97CYfJw3Tb^br zb1HcN-#h_?yTpIA>(oEejF_>;Kk)EfhN<{?WJbPp%K0VxiTi;wEn zWcYqi@n1jkUJY%4Ry4p}GG5C%{tWDg^1m6rFG9fbm2ZGQiG@ym3wj@Vx~f9iVY>l64nAvet@`)uqsY=3a-G*KN)*)$>? zQ(uF=baCp`MVuiDG_@Z3kgI%)ulM*rvFk-~#WeJI8spZfZ@77QEnmlO|4OJvplj75xlFx-lsz=UqxBA>oqfF^H8_^@@ zdc}!5yI%T#1H3rR+FLX2YL&!H`!{lLgBSx(yH(D){#&#mcE3`46UB?JJ}Fi>3qE(- zS}@ZdWk&?L77}N#{zLL{=9{cta@LFB&-Wk z8(>8;(_{>?2wDY+LDzZ}y>g$2NuQsO%LFSJv~Jo$vL=~noA`YNdJ~dykCt~MJHnip zpo}4C5yha>R6lo+d>WP&F;l4JfiE&d1JQ{c_N66&Dc` zoc0yyneoOnzW=LCETd1!SN#2_JrdT^J{6e;KeZd-_eFB!*QTE)b+h}Yz^_d|!7q!Q zXImS8U53RJ;ld0%uQT21cH(=1)Bo<78O-!fKO55VwA=1do3ZsNrC)H{L-n^KeA-Ew z(BJ8d>ze%>`X$HTg7$5S`|VO*O1gQIUlDeacpF=t&wTsu}T^ET6e zBb;C{g_=HsV`A;o`^lN4_7%S`eA4y{T0Y+{t6wM}|2rjrDc@Z%o(e7I=s+k@uT7q} zQNF%?R)2uMo8CjX3g1WI`8@P0N5n;Jy*l=J`uSXR1@s$;7{PR~#Por3ZeK3dum|AV}*WemhDRvG&YNpQRF->G;3t#Q3LAu>GW1Uc;|{S^M0l zXIW`+hsxgFz!Q2p&HfwOXN!BM*TL&)=-)Os|F`8qS0o*$IM8~0EjoU>B9zaM-tDN; zZ!@*n#!6oKR?|awh2L-TzrC6w_w1e0_310)&o4M7Xk=c2{;pB2p`4ltcK!1Qr8{?LQh1C{lo(b~$BAX2*6dZ>2SX}6FcxJ}3ZAmHg+A)X7I z{<^M*_^8Ovw**5Tr#fTv6+7w78wOc$R@6N*{txVhmLF_91GF?_A1GhTzr{We$O|sQ!Iq`(H`v^{NwMIy2^H+nrd!4Ep(u z+r1X&&PY_PnQ@2zJ(I|&AaR9VujID-MQR!nqG2!pyX`9TI*xp;qw-1rX{_A=drrHz zpnm?QB{wtfW&f|xpS0aSFYMl(73W!KheyeC05sU!>-$V6_^IVVKog1E_Wd271L{>- zTw2t0yDoL~CiJe?;`ka{%tHO|5Uz)Vnq4?&eQ*lKFJ~e!^v>orvyq3I+ zpq`Lbp_a4PTV5LHzqzqmR6UEXLy0hxd!yHBd_UE7(SEM$KxQ7R{LRd+{uWz0^9|@m z=qAnI!CBJk>FIwouJ7uN#%~xs&jiCLjGK8ETZviA2?++IjNc^IfutxT_r#V@<2fpi zSUZx&HqJqw+wHNL`A>Epfn-Q8K>~57Y8RY&22N?pfG_c!nd7Z5%M%;-cbk)$Ih>uT z&};}Wn}c}H%*V)q8a>kA4%p5Jp;EuH8Ia;r7Jm(_vXWCzqnYobP=OF>D z66#LWYm?(S%GZtOOod%FEJ$YN6Z|rm%#&EV(Ef6~ksm+aKJ#WSB8Efl=z5QtOW8&| zZwBowO-K?OZw@8Lq4wC!BnTqkfXq9Z6M(o3;yHeQGBd%RBs23p=p*Q@q;~udcdLZzQvyr`VeBnYN|>~cl@n2t|ofhuP)9-8@u*W&0eyq3@Y)oXFgVz0%q zo&4|r%~knQ{8-!;;$l5^;s9tLO@{ozR{Xtd7gLl)ua8{Uy0Po3n8(X!hT>|_Oe=_3 z9-|0Bet}g?A$9gneVvo2EuYW}Sp4%Sk_ZWH2x=#2=$0=gF zgOrw*`ta4EI>xy zuOW%-Gl&b@waNZg`MUmg8hmdH_-=sbAE5g=u@4mWx3gG(F^e{oc9XT0vzUFE^_0Ck z_}wAx%zrZfE%PhlljXWOMYMCH(azxRrf*}nbJ)LJfB!wCt+G;>Suau-HPC2I>v>I>okQ zP|qye@L6V|+@Npe_bz%Q!`G6{sF!#i8fTE}WaBQg|AG!Z2t5K#P@ZPakMS6o zT>T!oKU>^T8r5g_ef0vl+(P=dM6c7hORDR{uDJ6T)X!a@p9iqo53@pQ(D6JMeiZ8o zi9-2LM>iBIJY(+q2Wt=y;NF4U3)UG%sm8S7UaaCQ0Z+R~7XQw^ST8fP@3PxDKf|Mn zRha}$mvb&I5pB2qJk#%4yZuG+@0IYWQ{L<_d14b)rHLc$|L!_J#ee4(^(rYXsi5_C zWq0I@N+m^Hr+!)aqlL5IAm;HUQI$^YFR)C_>?eHoI>;0Ogukxa(eDNK4gQv`@_nWF z=03ejib^VkOR-GH6yIE2R9R8ny;Yy`lAAau^HK&LE9|{8_HRy%XEwcH_RE@&l;^9a ze$QI-#~|D=TMuq>L*rd&MDAo za?X`=&Ixi1^9;XdEnJ*(y5j|A9cO=PWiWFJ><$LMZ&z)-VVUPtL-#;;s$KqAzVBPmp)I&|$QZJM&Z-TYRP ze*TJ>a$Z-2ti-seJ3_xAa-oqHw({+#aXfx7bvy6AOD<9YWw(Mxwcuj?r0p06Cu+}r&vbFlNk(sLh&hR8V==ZV%S zzxrL_RJl+5Xmmcw)mz1s=fWq5_s<;%zuAxsa0L_+^sxCj^EftNXMQOz{!_fH{AtCx zOMwf5m+xSI6l_Rl?p%JKhF*jOx@+8D#?wuiZ>Ses63pyqnUCgpIkXZM$@N?3mp5%3 zt>v=gUi*CFCFDO#@|SWw%kLKyb}zPx`Fd%etUaHo{E0V9QXJ2SXYM9@Z05cW?<1h& zIk6|C^{V`x_p_znj{bN|*C!kXzkdb%w!-UYkOYgQ%&JEl*%74@FI@vohSoy(;JF}` zc{WEl0g% z5%jNbNYn%@GLN|bJmUWI_E-PD!7)bl5OE4%eADlh3HACR`;EsM_s{TE%xt3rk|kZB3q@AJQ11O;lJ zw-3bldmeKS^UhAQ{9$>~bLDdfxttFbKtHwkC8%HfjyBKo2C>mip~mlh1`m+TO2(>w@$>2Mw9| z@!0UXB)=UBW&K|RzdcV(8>W4pu61Plu4m?hbmoCG<~=Nbxqe$(Jv}{)`fXQl)NXZw zPmS=APG8IR9%wKmMp7BTmlzuMicjK13UU0-b zDH2J`EbYAkdP2@5wf8E&{?o=0TCctz*XLQ=k-xuM!OVLFJ_Hway^r9dM7=fzABFAd z`*Xz)jF9Km!GdJweFV?%K}T^UK2qz|@#pgxSI-**&4$4E^In4x)J++*v#1V9@x|ff zxY!<>`THOXQ`dPHa6)ul>!FIZ9?Vzp9IdRql=UDMSA531He~#r;}pAm_1a~9KcIdL z9iER@oZkvM*!Ek;&r82a;D#*t@sK~JWB#dHEoMF*dH#2xNc=j^>a;sgRe>OQXXE^^CHdp`G%)ch-IK_d+=Nr7Q)3s;*VCy`4bGq;AOp%j) zuC~g{Kj&dDf8u^#{wW5U;pLzBnU{aU05AWzJ}Csv@+q||PM)rvk+%6dC-IH>zAbkc z@0Pm(PMLqFFTTYo%hJXv_OqJdYb^Zu!hB}c=VSfmvo3G`aOKf*`Zmi;amw!+t2XU7 zuZ8%-#VNrzJmuc#buLaxx=#FB1DrDdSIXbazu#^b(B~IO9~=RV)%-W}E1q1e0j(ap zKkN7)ic?&@QJm71TxSR$$zGhNtmFCvB*r}@P7!0%7J_ZS1O2j#`f=`q$_+u^jCMX}!e9oqo@hyc92>Qwv%_#IY9m&-?WbmTB5{-IlHIYX<#D z`7(pDfOQ57PKUmycp&TF*Yx|3Ehkaq1&k{eTmYS@aRkvk;s^^4hS2T>Kax7JDRz6Q z-3swlZv5whzXx*d-dpvbf}nrvmm^Q-WuA=hKLeM!L-F5&{^a#L=mF^AMBU{70spN2 z^7n~zksZ~yk0Sn(Yoh1XKg#(k`+N>-FwwojKT~wa^os*bh>>B>lq~ zr#FZrP_MG~USha1<`X-*V2Eex=6Pn(T{h=j{>H8k#Q|D=?B{|fvBTnz#fFWr@|gvz zIPn(rfnWCh*;;*S>iZBEEVMkd&X0p9qtONG50ctdv*JPCQwd(kb;_V!eH^0k ziaGQnAMcrk{L$mHn!KmKW^qq>A|AFcu7YO=+3GK%;hiqJ#;5@tMyB~FWG-&CkyRQ z|5iTCIV@!T-$KUr3olW9+tR(HZ=YU;{oU`r%DBc^R~D2r3v%Rprsf-(pIJBn8LFYj zYH4zmL-&eYY2m|E0ffK|lHwmL~P%xcVIO--|bSe@01K zz!&^p_ibn&?I-%4I2)snU9M<93Hj{pm-El$|2^mk=n%`NSE28Iv(e7qAm3B9WlY@( z?Bna}jb2=`t>t`n$Tb$s1o@*T&2LG93TyG2oZ}`>K3QlR{5) z{?hSx9g{_~_96Vgb@YF!XLmdnIsQ5)arC+Y4NI~+p3ykKR@zPQprrJ^Z_uYZ>s>k( zm*0dQwdvERtfW-mMdyCA+r|g#@b7iRx9YHQb=BS;AB(s0lg0;b3yz}O==Tav?y@tc z*vF0NL(=yRc5!_~U&K$a>R49p$tnPeu*;}k5MfVG1ghW#s^(!jv+i%4ijBXa;?-$|k7wxV7<~^pvqc*L($E8`XoiLfnDhahTBWsu)9D-DoVjL4Mgj5tXlXRKBQR({<^KzN2!OMHl*8F=cee zMZKYN*>&xUXjgjr9`!4(eyU%g#un*Z0G)7A75t8dPJ_e-$Q+;AvoD-==wi=5i4;z* zi;M5okEk53A87;oTgirG7Rf@yOQ8001bq`yob1HQIi)EBzW9+v#OBqH+|B-o2bBwLdD5yk+E#z5obOj0`!_v<}vKce;O`w@*- zOMer%Kr)L~^Lrm8bMj)!6ZM*E-nh!!>sQR=pGNS$?k2wdIoQiPc#fBM5s|yYKk}L# za+25bm0n)US05##hN)S_jow~2RCwMkA9`N>namsC#5<%md3k;J_L_YUWjkb**RuY8 zZ?C~$HN08QWYDhCWF+;UGE3t76tn0h&Q5}6K?(mU4pk2DXNxKz5CyHHars3X*uKht zPRc+YsbZ4)*CWYskUchwm<#cklF;>&KoQ#xarLMU{aX>&4qsT-uT;!r*FxTdtd`i~ z*~PZ+nTNqsB(wNQzOr>KTV{I~eJQ7s^b!BA{qM_y4qc>EItgiZ$YHR}kzY-LFdQLv zo85$8eLoP{>Q#*Qc38XV)PvgZYiP3{*}Tl+GZUFgYmhir`<=D-bSx77^xnnzZskv0 zeevl5|E{U{EB;UMo{lQsjZ)3GK=vUHh_~arS^Dk(o=<5oXA@+b&8^mZ?DvE$_HmH( z<>pAfxDYB5c`V*<>U%;ofBK}pC*)`3{TrxM^A}?w&KR$?SZe!vISXHj)9ms+A=+MY zxAbxAd(7gtddvw5W0NY2qc1yqPY9)d99ud3RN9Tmy}avTG0zPCn@$pCw!D~sZ{dHt< z?J@Q3zZXN>7hJJ;5wk;qEuU_0GmCx4&&7V?57pPtoBCc7zAmCk`@m{F(>`MoixCnE1ivt|J z#0MZ$qSOAAQ`Y0jJh_bD1@lNAsgm>rYT1NpT~qY?d5mkIjBtcm}Wm;dk!Ou%J1aj@(TgA`xwj~lGkYwja=BGOzO1z`F zzdJV~8A=?9w@(|sykPixrs2!VX38_H!FYtVjZerGxlJ}swq!D8TmfOJmptX|`Q0`l zSDl}!3XhZb?DIQGak2oSL<(*1lk(njDe;y=y}Yg)d6&ds&y>;!E+RV7<>chNQyiJU z<6rOD;N^A1avseZm6L~frtdiJ#cy_Vq)u_Ko{Gv#+-&Fari`O4DbdW#lF@d%^fY?$ zUep~ex8y}Rm*g+#4YBQ}+OKFF&FxP*4*C^*-Vi=wtlnWOrl2n*CSp%W?Wr3_Q~cg| zVPngu<3g23tQSdr);|J*=| zEuY#4mB+Pt(jSN0oXpbM>_{wN9wc3Ar}jTByQF-@&Ohnf`Fq))0Sl5@x{BX_LC-^C zmr~k6>Gv7WrvxKbwevrO*W|eY1?@%pKs@NKBYbRzbg4l`Cj7}-%a3yuO|1iIG$qhX|A8w zTc)-*D9i4oltT;b)v^tqS+;udHhFaL!fdHK)%vH`n{PekQx-R1wPoPsBooudUc%S!Ba zIksZ?F`Tc4YUNyd{W6Lt+BQ<8Po8d7{A{^;uIRi6K^+CiQE%gKE)F% zkBcWRM2rb!Lo&;j@cSV22$T;c{9cpSXDDCr#Il#*Bjd*V*sp^H$t)8rAwo!f2#(1< zo>;b$Y)OhIPKM>nP`#XS$BoOLljBVAgqF|66CKF^UCCd{_W{2$X50iN#&I%#+GIST zd|f=T2zJ&7u(KV0P#z9Rag5e$Tz`sq+!l`i9UQW3B$>~KRzj~qpU`WhU{130J1U>3 z5=rsJ(Omt6JvPhtMK*vzUMo(B?x&A0G=J_Co$}sC3L<>VTS4EA`aM1VoN;>lvU2Hj zvHML*T%mmFM}pxzV%f`yMJ&goFHd^^&+-E}b0k-ge0<{@!^+YMdpfopxfus955(}L z*yALu4XjCA(>+VWv!OH#kq8s1pt<#Xjs zQhQI8<4pXTmQSjTq~m0OtDH${|GVWl6ThV8bN$j4(Vj$c~AvyCgRhi-x%gleFOFUUZ@T)%WIIoi1qcIF_<5@-#w>;q{% z#2x?DYZvnExcEG()2v{`w_+W%%=X7HuBhXiPx-i4S$X1{x3G-gUqla_^+UuYJsuaG)_M)_?m>D#HYsEC)h2`f#ye)j#M%JOpTE#|OC$@M&c-M2Ux=)|ty zkbg7Vhj?_(tauZ85BgVw@~iwsV%x18aqGG9a--imuKf^xAc+;kC0BfG$C3Uxme=4H z2IbC_pTr?POsX&YUK&nI)@5BN zT{qm8_UFNQUali!A4&RM*H!V?4Tm|{CBtejZB{nF&1}S@_;s2a{I;@6neFyJir+xq zD}A2}eyc{I$2S$fU07UESkkKjh@-wNj$2s@PptgP+n~FWt5I=WdV?#I4&ZD z%_DmMPVijn`=y^Wh%c->LvuGPd-z)-eydKRY=46OEazOmF4~h`zl`EKSN{~(6~aft z(yI1@*p7ynoYrw?qqy$b#&KP=@Ui7pT&MC$FC;0(xfuB#vd3nnj7{Hy-iO2_s^1km zn+n%eF*ck?R8&Upj9CRAtQ<=1)_G?20&dQ6%Anlf%9X^I6j%O*eQ64kS-F6b4mL5gd9`fX|D^=c6D(jPrj^t&GIxW-=u6OKxcCz zyXyj!uZt^}!q=a(Fe^WY=M~T|;48Ww#g!{TW}-9Hj=XEotOTK~{Mt$#{ASS3`SxCo zcZiQ%ZI8_={>Wo6!K0seN)@b!F9R8mCB#~tN3a&e2;*L z>8#pU`F$oh&RPgt=5+0ugNy6cWL1$5{btpfnx9#93j2)pR~-({MGT150;^cry6O<< zIK4`LVz*mLe6#9jjUe~&@ z>!N<8ir5&Ev9ecIbIA;>S$-Y%?}uob^)e~t%GOEOUPyiC21l)`&X&CY-Fy^BeTg3Z z!IvYgbrGG*3rqXlKFl#- zblH&r|3c^)Nbp5U{8Nwrd%KZBa*x(WjP>Al9#`dY@y;cPF`aBkW|cUG_n?m;F(^C5 zJ8{RUinElj*v(DwkvJBfZq*7{kjyG#?y^QNZ(oks<^XT3^5@bO7#0FNqOAkVsS4-nL$I30X4&B0u zM0_u9x$3nGRolE2fBYROj)abdTBVHZd>Ov7Hg>;>`s0u<{Yd!|0bG3sbU1X1;tnVN zW#yy(r60dj*t=V0ufo!z;zWlIzGM_zo{&HBES<~S6TSry9(Q#c#UawN;E>f|kk!=q z>a(Fstt2YP8x7^Su!MJ;B3K4;p!Zr2|9}g6zxpbugYtQ+A)hOY3;W93ievMM)PHXL z`|80#JMG@vz`w7)-7kmr?+fC^Nl?n78;ZNP?O9lQeR1FLaWrx8HXgDXjK7*S`l|;* z!xDAXVia*1_3wX5oQv$}b7cQ^;vtPO^Y4pZFMd9yaKZH{{r&2z^>4HK9=l!heb219 z6xnN`F>=oJ_o4;q>1EX4yLzPlz6d_*U&TbuhF^E+caS)XM*aO;jTbhyd}`-a9@pQu zLkxeW!mM723=cvQkP(xSJ%6u!@%O8N66)`XF|S?*3zAv=7QYjqX^=Pv9S2MMZF8Q# z(qrd&vns|F!x&dcG;WdgJ*%0)Si`7q?Z3$+$0>Hb*VD8H$uue6IGtnSY^#9*5q%@D zlo{U8`gQR}Cu+j7Waj|(o`N<(;<6L%nhI}Fud6?&4)=xFuKUz88wPmh#r>hDxjDxv zcD;uB?BbT?NH0YtnKeJ+SFj6?QSoauzOs58S1*9j8!7V|A{A@Sk$c0mL-cGtdRBv; z5q}YEBiF4xjJgqUn&Xr~eYp7Q1SAe{+?qDj#lcW3WERm?57NR{zCAN*x^TNxaR*3r z?Q+*{uDQt9)_JZ<%sxq>u1*d8Xk<5)-YCZl39PcbChyd`Mw;T&q=bU?JA0U zpQrDESsZ^pr$G+>n_#pa97(i4J8}2i;FUFt9hSTCuHu!iXy=FgLRh>K^Sgu%+9X(n zLuS&Cmz3~^68bN1aWs5!$nX_F!xxLq-1Bo^WxgKIploxYI>;aI2D}w7-4h%|x2nhP zcM%&D*4`1lE*U3@s{7Za#7Aq&^k1_^+%f%o?NJc5v}P5wUQQ+TbF?nKejUX}uHGs> z>JFdhg^!rom)KT9cSB;-QsN_>=WbXTvE@=fqH?&n2u!%q)K#@zzi*NE?hJZn#f0Fi1g;V0n9oDmp6IM`) zt*{}PwI@(2{>=LZN2%sv)@#e6E9vA>s}EBbr9sW9?5Mdi2^~ zaO|f{`R2xduN@!AwR>*^|GoAvemTc%*Rz=lcdH@02P0He!FA>y!OyR7l@0I(W~%zjf{PDuG!mLu>SM-F^_* zeC;%7ww!YPs%S%c`Wf}Bu0E+>l|Hdl_+Y-*u3}pPiC>j2A~w&)N1gXZi+$a+i^`Gv z(z3%Um+NOQLmcVDB(wH8egi)%##-%OW9uu@=PQ0Th(8b;Ui-9g6~5wdXF=j;W5*xj z@~;&cN|}4epTz$^{ZXbFUg){*2y1%UroXZUWqW_LP3F;*`erVleLH@hk9zfP834_M z{)I056%;Zyms1TkhQQ9hknwNOLr`}8y7I-Z zuVa~lj-Q!(T_+xfWY%rscN`=DF*kmFoj?|n`t={f@&iabL9)I9Ff#M&T0T)BlFsci zmRk3PJvQs5!k>g*g%W;U^eTm4xA!0iN%j-lxHu+kXV>2o7h3m<&D*S(d4_G)3x@Fu zX${}suVYosI=SOH=u>(qJ$L=V_U_;}1HE(o{SV1ms)JraJFaP7(Zqx|;GhQF^D(ILjI#L*2{!btu>%8lP&e{+!k?!68C{(8Hvi?-Le z{-T)k-DQ1Bikx|F_g%Ag+_}D#*62&CfZ^BwK2cXKh7b4WyYEk&i|kmvcIUfOF+-2E zKZe(}?%ddQ;`i2{scg*p9{!e|wIQGLth`+RM>&_Ir?hhH{*}`2xq700?|S$=Abjw9 z>;J)4CTOal=1|IUrP!x;8z~g`#FkI(k;>!xo%V>~#~#f3q2%{4gd0`+|4qq1E8|J! zEB0Wn?|1&e{t&V!nf2mtgl0iv`og%aGk-1hyS+jimrLT8yI#hV>qp8xzTY{M(lZp%1=~=B(X!oxN3cX zAJ%`s*{#qHC}GFNuZZPm%((t;=urs&vVIBl1m`1ZM-?-n`(jhiVMN%P9?V)Oe2-jf zHq47$oP)#IdR?zw$+yQEM|}h-w?jLit*XD9i^@tXif^vaZe%~c9Xo&R*U`9b(2u@% zH$^A9y@6WYAQ*bm4zPzQa zu%G^IHpr4#y8njB5UVXV`~p&6?%FkJ?ez37I(~EYMg3S$`1BOk_^}P*!^)uBp+^0f z_>s*GDc3PD*MD_@z4hhn$oNslOpili>ayp*lrKGc11?*~P0SH(=m!gu*&xA- z$q?=%;=gvX9xJZBuNVKdL8_Ld{wqkL>}8#r+M`2LipxnyU?C zponkEKptU7QooAl+i;IPHX9h1=V1Wye!vOAYFZCfo>_=2JZENJJk2wk{@|HUkm-wO zz2?oOvUZ-#yswB)yos-P*)y+F`uA`1%;!&d&GVk|n(te=^PA=0*yXF&uIk%;(P17_ zFdJTl-hf_Kz4@Yq^$vZNsrt>2iV92H^zB=6eW~rZ>F`VGH~s!=HhiW`%!Uu)&B%7c zORnGC@Em8vkCI}SFUoHgs%kc3o;HH-H-5wB=Kr?1L#B#jC9IafsBru*c>J9P>!Sph zo~PHX zWXG)=@&6kyftYXG*e$tIG+ynGnUepJBkeaIhU3wb{hkv&@B4deuU-F+J>lspS#d3^ ziev^w%4ZM9rrdd2=@x?|lZJ6MVKE8N%n19TAqm42Zn&fvxi_+_-QGDU+q1pHt z`PcZoDs;<^#PvxGw?So-d^@-F!gttT^?d>$L7axB7DiC^=oZ%euVw? z>fQXHKI#9Op7++>%`Y_hk*pCoZ%Ohv zad(H)_=Sa;_#Qy$+&uGt-{iF(cGMDqDlXdDE5#ON5_VO4cQYpciTH_)y@Ddp4f zM)HZ~n)o5$7{i<6GnCJX`&0V?;Nu~34&BP9$8MQky1GoiLk`RIJNVR0`PyfILo>nNSd+bHX8OJNXm@{ae-_=Zp2^b*v_Fz3yrYI? z@c&Zv$@KL`U$3Y(?RcC1h~(+#;AE|0;#KZ>KBa7AC)ZP316%=^7f=*_&FdS4lcQu7 z5#f2WYk56g*R6b--JOUgo5*hmC*Dr0_R0j)_7$$ouB~H2yL*#eck*HQmn7}3Ohlb6 z+a$kt_SgH~+8aN=ogd`dhfgr^A%J-^_y1UZ2c~}AHOKq{^KCk5o|~U5WBkr-s(&z1bfWokJv3ee%v$?#_QaQ{ zo#I;5t^CDyY8Rf`3P}IqXH8t{Fa#4j?Q8CJ0^fRrv-qfh_Mt z^7f4tdYb1c1;!pi`1uH_9cWm|WjPQw|3#$I>OgQ}NO8Mto$= zaN?uj{gf#Aa@>f$Ym{@O`fl;U-&OF#7<=y65&TkHZb)cWeLnXCD;Y-PGdjF+Pe&n` zcq%+z0Ia7%4wdm)`lltrTUR_E?fEh2yR$26D@V}}`L~Uqb2N>wzv6l@aDnQ2S6>*N zh|lDf8_xlT7#(k3G@eQAS6qv_<#VhrcI7F4YhZq@`ZUU62pUOhXFm&^M8zJ!A%L?h z5g)l8mnq+LE$=zU?q2y+CYVfwJn8hzE?f4A6sxOfGIe_oeh+om@{Bg~f?eagR+RH}KiTFqk zs&NAFyeOOg>de2Cp6)E3?N{g{9l^ zOX?xhBa=6~$Bo_t%mQ@V6pIBtyRtho1A8(_rh_&#e#Si$G@|P&-U}Q_#a;l@t<-rj z%i*+kuwv7=5?}^~d@ea3(kQ&q_~9QnGRqs=@_09ms=Um-WXjpEi9l=cq*$^Ovu8=i7f; ze!>4gm4rQuJmchj&To$GUj9DGjh~0s^;T_~aI`%+*@HHo2uM!w|0W&o?g%E~J6DhZ ztWe@+Z@}b4^I=E!wt?@9&Z|v2*wHjOx|KE@4IHaFXFrm8;ZpU2(TU{hkI?uOaI(?y z^y{QgP}?d&xeMN#6m)U(LsJ-95o14F4`Tk-Hp9g&eLtf0smh zHy&4c)q@$m()2DC){61>Hrh}L3{zFl{5iuL@$+_Yl7E_1lgC@~JT<)0Je>;8k-+~M z-W;FdJe~A4YA*ruT7dp^udh+l;E)BJ#j^(krvpC}_JVQSi`u&YjT?T>q@URhoM8BO z!G+o79xC<$`f%LBR@u1S0cmXJq~EI@JsdaTjmGUxa1H|Qb$I!N^CqcysFQ9}Z3@1| z^1e4-9eTw4Y-00CQXiCH(zEbv4baNf+W_-3lJ;#JH~uhFe#{N{bYBL34m=9X%k0uN zDHFWwi^A1+rNsI5plgwhlVs*ipiydc*LdH*EgRfHzpY$+7+S=3msNZs(EBL&F>C4Rpq2{EEqAti3rt zLpwW}?89Vi^<-@IND_(V~NLnS2e}VQ*l6uHFuq{4^jxMfBCgV#^{;T25@fnTxFQ_FNoU9)HL*J&*%TAuepU6(k=IKX)$Lx8H zwh{+}|4aXHNKN&YfC7Ap?V~SqrC%vGx0UOt(ekpC7pAZEYqCCg_keUcg zR*j9bXQz8OuSF-C*K?qO-!XZf(a|`2{8F7tw|sNsAiU8y&jqK(VugF2Pe#bB@2k|J z-zG2AH?DMxKOUENv6h5fS{_lhe3QcvOhtk0K|Hj_yQp{%a0uY|G^(n0gxlT`&0uf- z?u#8J{xJQ&D>^P*2?=!Uhu_&xe&>EbN%L27(QAI3G5>m| z_l%DG0r~&<2UA7^)*pWzY05XLjrh==e-O*}emq4?YWpu_mKUEQI+1+;4H`rhQ|>W3UjA#!jnw{8wJGE;=G!}Y z>a~z>dvgAe!w^iF0MEt&Vx&|~r+gd7Xg&dK=E=hV{6$(DOi^}wNmWT zvtr}MK8Y!B025W^@Asba64$cFrR2k7{_c;xB%fk(xfgV1JKDjN`SA7yKtm{-Y5di` zqq%v1_pI7eDo2hykyl0!t~sY_G}}bNmFN=t9okmw_upv?(ejkFYELigW6_D^^&ik! z0k}9{{4B*z@|d+VIy${2I_0R6Z*lxLG+N>Hu6AFJ&(N=(f)_buBj2ETrtYb4Q_PPT zKU&`KKhD$p0Pn~@-!#1Q!AXNZmX8C#d2A>jSof(13qLfc9?G&dI)3-DTpa|Me29N* zBp>{tx6T$idxaH=hMJ(wPz0KiXnV`xW0z-p;7fC16At;g?34>JP6)B(Wl061nc8l{xd zKLl84h)TEk8@O{9fC!ggI|L2PLUz{%jl+#< zFe8k^^Y~)9KL|>%hjK5ybf3E?nEGd8uq%PvsCX}sw<`Gk!0qsO?KTw*__vi?8S`2jhIhW2CPan$|? zAkREi7KhU9xW@fKer(^VtPi$u>Woy+OJ2QsVMIkY9{+cfi$qe)uOL@4b*Z~2m`cFE zCrW(JQ>Zu?u<@54y|Q5Z>%yN@*keVHyX#-h9(MebeQX94u9vRwV!Y8jhVv8g>!)d! zIlP{{sZJ&3c;vXXJRA>>ScYKQ-tKumqj|iJUTozXw@RU})8NlP&)#IoN#XPHxRL9a zHjrj)WdVaoXWDy=04MKf%>D!@;dBTfN5jTtTAc5;9h!ArZsII{{u;lhz0t&t;8Nvlh--_<*Hg6ZyMSl^Q|t@wE)U@3Sac$JLzhp({!feTf9dijywV$YTR(zn z*#BwU+5c(S|7qC&X~o!o*-x)s-gq7iCe~d|PmIJHIKgOhaw=mv0a!)Fp@7D7o8;sp zzzMM*q2F1_moUE(Yg*tt;$O&rOzfp7+MmQT%KMbe%3#_M;19quc2OM#)ByJZP5cT0 zi#6jM;7R~Xhz}afypT5cK{3D5|J^~U{KhVTTuAZTH&jVA`Y}1e4_(fgmR?ozE zBe{Yb(;9*KhBwD&sK+LsK`j}IY34aN3fb{?FNt!DjAI5cE9;6xvqU6OXc)U_~}eg)ehPXmTgaTw5t<6Gls+W5Xe8}PWN|5SC>PfzdlY@TAh zVmWvb8b1PlWppG5CF^~|%lx!)Lhnz%5xCv(=J*Wf>GW~b{v5bj-?-B4xT#&q{c01}pm8M~K(;O^ea*ObnM&oSMzvFpTEKz&ENUpRGXDvWd8FJ&0jJJ)1`IZ1ZL^m)bm&Pqxp+` zOea@5-T4DaKe2m%IBw5Su-t5I31;kL&GF-g58#b4Rc$_ho4dk@BbeUIHd&O@KI3@g zgMiKFzLke2*E*AjS7=KIZG+!EmIvXD1#;2BZxnz`J24k`h!m-b0u090V_z3SZZ@v~T6O=el z@!YN0xUg0@I;yEPm5CeI7W|@aFgo z_3aF@9y2}*C~+2+ZuMQ zVjcOX8jCy*Llk~^{>TTpLmFI6X0T3~!7meD6L<~O#)nva#tXnyQ8v6=Y#l_G`O+=_-1rDD`f0`zdoY+WiSq?I zFBqQ*)JiI5+Fkb1Eq=>q&RES;>w!&~AV*GYMr(}0e&6=X_`2}S@UKX|55itm5!3g+ zcl*x0@5O)rcL(w=;GndJ`oVk7&?nJqq>UeapSd4!fZr0Z6vqFt-X+UBvwx_I_T{{v zdoGx{7c%#2;BhKG3fMY`2+P{gPUwnBOp#HeakOrpL@7I#H4EtLRkn)plGp zFS#R~!nOSITzBu)>#O%x&it3!u=5waxAJgo*36%WeR1!vex-=_R)%Xk(O>s=IC;Dk zoOb~C0GL6)nBM(`U*n(Kd}#9IF-(lv0unbSzmI-Toc}(lhsK#@)=IRzHbpGjg(-^@ z%|@Smub;d3S^r11eeqGIp$Bkwr#HFq7%lxi9c)B$qA-wK$0>GA&r8(sXGS+G`n z=*oT#T`gNt0?Um2jI$enT>yp0&Y$kB_jS)~1|`M%{255H8aB(t{hmIaMW>B!(f$3Cl@jDjqC=4n7knJ-+uU_9>oc5e1k^yyG2=r@ zyM_O&sT$fD;VvVSHH)Zl7PfxYKpVGh)x$t*#jgGLC#Iz%eYqw1{}M)*d1G{Mf!<)? zLf}Myzxu4>sW~I0Un0G24W@#^Ui8u-n5F6UKTsn3JnPD^Gw%P9o-N8gN3WRD_KV0& zEB@Gp(ff+w&99rxT0tGr)~p+W-{?EvE{UtD=ZDEv(k}VqVs_~}(78i&5cXO3a2yU? z4oJClYM111uL|vw-!tx4N!>oP57r*vK46n)-R3X_v;N7+^?(*Wq;&FntjG4j=*m94 zPETbYe#80SAwdadJ;&#t098o2bZ#H`LM?}Jv(ay<`<+wVIqTm%Niq9yEZ0QWvnHyh zV7y<}HT*8xK3M;J`ykyhTlm$#d3=gk4v=cj^R>tJ!RY$-fn4CM@sOYdv)1w10w|u4 zT{6CU_F2D9HT97xKZz}tY`%+Fa{ul=juOIx6m7Jt%inBPB}_2$|1 zarUuBFZu{(9~Yf=b#!z){a=H)eMElvpV@;B%w!LIK9fCQWG1`+;hF4yS7fs9cq-HH zi4!t!IqsrNcK7N0_r?1%+47D|#q}$?qF7qJ{XgAvyw9h9T_u^5;Wf2GtNK@tsqR0# zvaY_r+W-FdkBq~YC_ITY75}v0=-NEVi#w38FzV2*$Ga~E@HoCNB)nC zTVE{6E}Bh5u7X$4QZIjv|5EuR|B12{K$4$FJB~lO?^)vF=Gi}@PuBp~0g2qC#mzT# z)e?(~w|l>CJav-aCk4~=yq~W$|6n#Vj-t1ExZ^h7A94)W#51#hr>X+EMY@X9A4&hf zmrwH#E`yHT0yA^>bJTz3ydy)!R#D#aV#SHldvYTeV%wFsuZXCzES?=Q}#%e9y@*p=DOgFCj-ddjYUWRRwZ}CsCSTV*K^}l8eB<#?cIB zujk}dU?$MJajVgl$WknBWi4&?v+g>WBjYUJWHZoN+&Y_F%j~}ZjN9yGKnt_*0QYqC zDgCAYQq+G?SzL?nqWk84g>fDj-PL!;)Z-k_FHIea#mz_3+UMPMFy~+de{bNOR7gZ^ zex>zGa;7RmJ7@9h@8H%)0cgxQ!sNz}cQt={Ep86=hFc3{%FZD|p2Pa!oX`4k^PCS* z^GVlR^TRe&U54Wj{ixBtNX<{1|3fdS9yyF14}Ik~%#q6dA1LNGko}#5Zgr(&Jmdd* zF@6KDmdZ!bvMY+C=bUWV-0%At_qj&{S5kik@B@A4>o0NBjc@qxKV2?kgnDl4$!DGy zQF;ck&kfL6KX(G5SQFa~?vU zZN&T;B`GEeP$w zrIjN?^v*ui)ranO_v>gee(e6SKLO1N;AX{O&clXZ?PrBhtJQOE2mY*D=qewvqxC-BVoCttQ>#ScS{1al@>1s}=r+RUFzRgbnlS${nL!v0@uQg`xm@NhkTa5Q)# zVR71=iL_%HFh3&A`NI794o=+qUouYPS2X-n3qQ=}U#x0I4;ZS?!IzJzIzH3!5S{u@ z`go};Oi|!u^T=yo!MwsTGx>D<4l)%#`hBLNvfgeF=B#v&1#?zM&u__dwT}VD3RttJE14t{oqG z!0(*+J$GM++VlbPJokgZhgIjbGno6nkY0Nc`d}?c6ak>+M8)f;@5hlhnCFF%g!^MDIfSHS19bPbWB^Mz(l6w*-4 zKW+g35O*ES9p+97`D*sdi+j@dM|R8RmM5#V(8Gq#t+DpE4mkbnFANxPF1MYx{KuvdB4z!V+p0tud1zc{|%_T$~@xr`FF9`h26sohh&09 zf6oMqv9L??j*Y|I7oR1JtHgt1b`(E;}AzZN9zxVBYzB=amxLJkRez`7K}! zaEa4b-o6Igk2;!vB+xSWd9@?e1WM}uB<*%gpLuHZ$^)=^fIC9RP zSU+@ZE!i5sDXH5L(`EkJ|CnPN=KU047yGoAsV>c4y7?B` zOS2n|;EVKhPX2(_p5_5v`U7eE7msUbr=&XrR$S+81U)6l9mc0NFv9%UJ~wcoLDp*ng(ZT1* zok%Y>as0d=*X53&<`~zap6=7=8~vOco8FIpD(kpt}=%S}{sAAL8_<%Xvmmoc& z;49M8g?cNYr%PG?%SjLC6oyf(&!6Y|G2n646pZgbO4ZBOKVL6Pj-D5O_3uSKBfZ>@ z^VklRkQa-`(bvnLg3JS=CVH~_kzSSzy%n(hW~i6-8-Uy|fjfbxfH0!uwtPt~SEer` zxiaZhW9I@QmS92>nqLT3Ze3jE3FZR+Gbnmwmi9@>M0i87Jp z`K(Xo*7|;YZZ0(|fwnvwi_{lh93;M0+))cA=$h>%HlDu^uwSO)&N7c~#T`xD*~T{- z?69OBza)QeN54FfPOqL_TQh9z(E3X&YpZQNiGOMyGq%3AY7DP&A!@QZRt~CJZK|ma zRj;$taX!oRaK)WxTC*$el=?&Y-Kn&Oj(-I1(rMq=$N3iu_s(C;K9UW1%ZI|gARmn5 z@|e%=|DXnqBB-`FH~D?|yV&@9i(lp+Vfcc#e8L^)vny%-M&M$gN_D>e6gP{LyQF>e z$HVO7_n|XJbg+-})$k#JoPZt1GtJIE<~zgvsoQ1x)!O0P$@3vU8Z?w({#AVb5V!`A zN;Uo3D|XW8O1H2yZ+7wzoc{n4lwkf%eBK7!0~E$Ho*mJA_V*>H)q6SF$@xD4HO1`Y z30$Mg=Zj?FIR94H&?$QT$od!BN&7w0SHb_F@T-6F1D*#a1M&m%eC_dmbE6yDON*N( zLr(4%C7Ay-pDTb3K;Aw#a3LlW$LM!+^DhH_0^9}s19*<_yi$UENpvWt+lgW3-{7u; z`LhsrRC$^FguMM8XM5bWpG>(v#Zt1{YDchOynC`QKU4QFXHzxQt7f0c#?Eg7_>KSk zB`*Kq**VRd4MVj~YRW0f_@$0%Z(saL#Fqo zd;h1+9ph0Q!GdFe&jBX_g9`g)`?G&tSQlT}c>C|i?SfeHK4(9-Z&auLPO!k)mSDlh zjdHNy5!%UG`hqV4XRFS)s~Yvxa%l4*X;*!@F}wN$=zK+Vu&WEc!SM`W7$D^=o#W=I zmnW1z(bNSqbbneqWA@eBnIj-={z> z%4;n6548(`<$(MO<7)#ap?%kH<0Uh2$JP!P{FUQ)zV}KA1fRWvpD#1bwRvAg@vI$&?2gZlAa+I?v8tPHA3wMI@w*WJ5;jf)P=fz!` zr|n~VXMaTy%^RajguL*60B>yJJ!XHryuEs=V)e~E$P35)Mb{eLyP=04z3_41PRnnt z9bGf}^qQfhAg`zzrsZu%+vum|Yr_7KcapOI&ydk@zWfER)B#%KS1A3djo{2HBm z!9NL@4*cEtx4ydW#43J{G_Y!9RehBicB}XHtwudgEvH@gm$mCC54bQ#8_4l5oNN7U ztIns|N~W`xmWKZ4!kNfN%xAnb`E;2tL2oV446L$#Zmh2y`7QcCU6$%5Ch6t9iwdv>^W@kQ@4O2Mrk za>qsJw#AwY-vFGR@#d>WF|8aqJCyW0eK|0{^GfJw>yni1qHlAQk-Pvv8FuY=whj(C zSwwrx|1$c%-*+KoM?s1bEE>nBF0>dY<85}iSMvQv7r$@O18%ODkt<#FJxEZ3MYr?$ zQ{Z|)p=v6>Zyb3LEWdKqif84!EV`P}`)(#!G6*DnTvE$HPU{V{%!=hBPU8Acz+Y75 z`<;vK(Y5@QnjznG4}|;TyZrr4_tP+lNEu08fUjjlwM zV)=+^(2e5%MKWen03D^GZCo2T3G)$)hI99&0OPjk@4$FK7Rf8p6I#31T7>cy@=bN$ z;`#ft&;~dW~O&yASncy?DHd=pK)I_b;UbX9I`8Dj^G8$nqf@`g=%P1lEen5PaTZ`5cF}r&ona9xAB);) z9;H-zePe$YpXpk)vwxcXB`>o06Jbx>dcyN5?Jv8{&*hKr>d&dF8&fm7E`IwO<7Mj! zi%$gisle&LxrN-a^@N)X>*6aL??wJPe3F>EH+f(G!Cl-ZIo$63FN>9qVOlLdHawyc z7UK;rJ`W(LP^eEe>cz=n(q8*=WA^$g=$O{QUN61`dSa3s1u0+6X=nGn^#s|^HQRSG zb-PTjSUY^XeG%k`LXHwF{tlm40IAjy((0R-E_QqI4bV}(=624*2qaki6KM8r9v^FN z#q8!lXx{|#qyT#Usj&2AcBeY<%v_-}JGgT;4p(l>d0qwCvEV%^0*jOhN86PdxT z^7xC%S}h(0;OppjKeC03|LvZRK1+}<-)KOS!4j!-RNs;-09MbIybm~BRleLx3W}4< zq@D5Q$m|Re%@UR&H1UEZpW^sA;0!>@s!Kbw*6d6{r&71e^u4viw=+cLOFj-sO0Z-g zpF;uJJt;5K1HBR-8eQznlCMEWcIFPw2S9=nEE&wFY?~C4lvEra`unE&!n70*aAWFz z=MudYI)A(S?O-3PDGTt4RnhvFHns0Me zSD?2U-QwhJJH746hw1GfL8nP{B=jpe9twO6CPU z#fMnBKcouAc_|$(QE#h%q29LKM7YGtbu^=hc>ou2@DfdodGo zQq`1T=`no%8Bm;%w-?gix{&_P0qeL?Hy;EX0my;yN(u6%E>g^%90x{;GbLCm*?I*~ zqt!^`LrQzqH-7ojpVEx~ffDKMrM5;uhn(I{`5u?SRkfq)&KiDhRqdtKL&Ic`)7wjb zz_8(CF8vAci$X@3-u``IU3}%@vjTtHClbbQ@%QNM!tXoP+e@XIBuYwU=-8AAmT4~I zBP`YQDxA-ZZff~8KOw2NefcoGO$K`D?V^L;UV0Zt`MB)Wut_LEH~q0Ck=I$D=$!6L zDfjL@S=J6;Z?lhZ=^sHu36}nY&+C92fdc)~<9#?rS9<$Z=tyth#krOUD8bSReBKZ2 z&>t0FOaA@E(tn8(x{WTDk#AheFQ}KksT$utFMToOd(r;3_0QMaL%=^%_|?BTe7*tb znAcZ|V|uK&jjpe^XF*QOE|g&D8a_7yTLI-!%pQ7rdnvnEmXaNTJHb+RKrCGV=mD>k zAYZ=TX0Q0t@eWiB)eFx98*SKrvLWtG;ro&Lk@*Isb@)Tk>(#T}KGjTu>4&wm<>O2i$@E&wOF ziDks;%Z3~7V3|?`6tiD!ck8?)nJl|jCn~Nru06}RR#1c$0#C5)O5Kp2FMTxc+FdJl_Rsvhdo=2a z?azKQWxQW`nO>G_bI$pT%bsV1Sfg0BA`>)e)G%jFk7k19`(-jmF5qf_)phb=`gL{e z4{E*%dB?bncHL;lw|*U@9e4I0h~fVtc7myQtCH=~JpZp~S5m*gC;sgsn9Cjr@rjjB zWu=290Rb{*h2kwgH;8~o^;2irx|eb9Oi zrLf)m#Fu&V(DVs$N)tH-m7wV`cf!MA;kr}(*6O`a96mPT#Vki7uRwCwK9&jAwesIQ zH}HQwM@9(y?%18ak6wu#>QnU})!B4fs86rqJoH$CCanip@%wLi`1n1|`CFvdQ@_u= z=?M3n{HHAQz3BwtMAaF8+rb|qcGpF`zc{BnyWz)9*!#=}aLvxYCM|2=hw%~GgC=CW z=@duE#hcyje=>QA^wLm!GH41%HE8;(L$$rU?C8DMFTuBx-)G+REqZ`eYjW|d=m$-q zPaQR;^P}~5S@M16p>jH&E+}vNS`qKdc4{qpUAdd59%<>}3BTe$hTfG4US$^rZ}1DI zvHOF6=+c|vgSnwq_a5ohQ{SIx`V#$f{)FUT^1}X(yw17F5e}N}j#}W$zx2pv@BQ8M z>+Y{-f(M_;1dr3V31FJDnEvbw)@#uNvmzvYb1eFO?K$gj=qlO#BWK<85bzJRuz*hw z>YDzR`2KME@AKJ@S7$@-%Z?*K)AJE)d_F5)RnXjzJJF}i=zwuEo;IOVn_dMLMh`-# zfrqDcIe!oC{QcoJpDVz`C|Q2uZq6@qSc9g<2)*B~wEnB(^Q#VpXXRDVNPv0NxgwX?aG*_0(c5DV(toN?$NPS6H+rMc&oug)cfSq&%%5>iRId^&zsj9J)T7@ke&+HpS7COJwXNkp2d)=6 z>tB!kOv4}fnJ0o<7XNpK-_rxji7J-=(seSOpK1IG{mkVL*^|NYA2TP0WVjql6_#N6jOcVnN3+XwI`cCNCkHO46`S|Z6z6vqVsb91{LROaxce`| zH@hbj+(-WB?vpZaY5im-_#OH0UthhWR`>ino4+2Kg89tKi}OEiobf-GuLdGru)sYQ zEMF8o@6QVxXV3p^;L91^`aRKfB=0EyFY-!lUd-ZpEwEnX3fhS$;pRyZ@z+|A$d}h_ z$E))C>HB|k`Su>sWB#uQ7Y?{NEY$k{AEQ{BnHDVnqu~sexAG7^;fg~Ifqj(b{~7=B z|5m(y{IRq_n$4r-#eEVW5&NQk>2MmA9^EH zF#m{5z#EAJ-WngwZ6pW$)`(i)9bF!K1)6HbT>w78ioY1OVCB)7T^~Ix^fyoHss-lf zE$GtUw9e|;?r9al1ESK_-V!G`N#O`n}?Bu6V(rHoJ-xuE4ggn4`Mh z@iz^B~|P-Hx2JxRXMD zNe}MG-&FpvguJFtO6Oqdu;X~LLBYyh0pi4!`$zY2eqjE52Pftq%-*pdYLg~(L`@%! zFVznFQUd&M8+T_X4LpD%fv>&+g zAcxxImE6%vEab|gROh#I4l z2c8C z;}(YXrM6RgSQ@kpYk#f7rO$1B;t#Hz8B^Gq&&(fuE29$n2<$(7jPV{{ia!|rh|lE! zoj`e<@!VQi7hjnlG_Om4EF$LoCGWn3Kjz&he{AI~Mj=@Fk~^*< zx?O!H^_sU!R9B!E7-i>=brqYqYL$xOfBM{C!( z_64inN8ek4ZB*<9*nUa*gPrZuq~F>%sr4u2AY^}5^`qZwSm!^jFMI58r|x%7c^+D3 z#m4-LTz?ekuPR@@RvjLWchUI=nC0{03b#5kD!`m;`4H2HcEhY3f^xxz&2FKIdV_ge_ zRllIGG`aknRH&~u-VL0{GhvQMKWMIKeAUNQ-v+|GICof4{LZ^s^gDC?9#Fq0(cWac zcTJetitg=;V+s5S)0YHMJjs!?^WnS5IP zy85^g;k(^Zwc)x#FgZm1kpGj??Sz^eMn>X9*R-J64gUXu#+`BU&A z<|F#aV|BzzXO0_TYVyN&dz3*sHhN*_~iD(_l6J&Z-GEZYyf5hF9?iphK$$ z)(jo1-{+rH!+*J}Y$wl%v(-n(wDDH5T{f<(@hw;H2M{%G&WCfEU79w8`?&A1Ms)Jw z)~^cvzX87VMME1to4j9s;12Isd;K`Z+Rr?8e=FmUBYMWhksU^>4+lO1yx+!gO`fkO zkFKw-zq|+Uukhpst!?!F2AxjRtU^yegL)7QJ2Ix%*wiy}InI7~T1a`4F|rn+wVNY#wxWUuW{~&xe>VyM^QRciR0E z;5y((CLinE{|XPid{A9Ys8LGg&$d2^(^pUIjF&rKoyF<gvO-IxbFM{XDo|0p0|r7V^j9^gkBX#aC{;3+2*th0dumVv&Ck-?v?y9^IFeOM8F( zYFu1Ou-dI91ZzIe4sSg5)zg76&(HTR{}X7`i<86T?{9p$u^8?f&{<|};AAg5%wwvw6; zImN9+(^jm{r$Zl~Vh#34egYp6f47BxL(y@o^(%~9EpA%~%}quULLVT8fke4}aFEXj zNFMw+Ro9;XtGMNPJgYbGc5-;i`YrtWyU?yrWU}S?jiio3C!fKy?`2=~2iQAIPZzz8 zt@$c(?=6|2lJYBxiHQM&HOE8`#7FUe=7sR@MsiVC5>LZ_?HSQ} zK{CdSpX$A{)cnt>%h9|xe`im6R0#|RzV7T<58@}urJpB{>50{sT91P@HJsN2`x?ET zyf;2c&-{xuWNp^`2tc;H60Eu2yXy4R`OnEX3MV=agiJ#pA3kmIRB`*o5}3mMV$v&K z@%7A_OOVHykLV5a8~;K7n4xR_2#mD&rW3z7LYZ1VlKhP6MseK3&?A4j=Fh<0Hh#VC z|C@X=U#*}2gwA8YlfbWSd~)6Ap?k64#631o_JTgMc@24hHP2eVdp$0&ext$H%(C_e zYbJ9(1DNRM<Zwg33g{q6M%MW9TV}4>vf?Yes{huabn{zJN9Gr zd&iRsTbK8F^l0*a`8_+lUvlXC;hx=HLsrI{55#RICy(F@Nyo6qdQD5w@xJK!@eP;O z?&z4--o*2zAMM%C*cPl|uC9GM?P|C9jz~iB-I|L4qN_F7j5W6dMAmDb2C%)@2G5-x3FC~<_{j$M+r@3T2c~dzqeO!|5OvHEpJ?%`&F?%~}*FM;%O#A?lJ+~u7gNW#=i<55 zSB<#*Cq*Hdfq3J{9g00 z;QOTfTO7Ogo30IOZw}jXJgZH=r)}g`);_8_Ursf;&d!zkJ8NG)%>Tb0I?otwP87dd zLDyU1!t`n~-YWU`Cq^IJw00?B%~sxWbOYy4JEFnbe0b*5R~*~c)89F-eaX?#yw1*r z<{V(2>a2e~{{4yJCpxs>IS&Lk`wiDFH~h*HD8gkGW$iRzp=zO34f9h zOjsQ8T>5pH#59YRW!${+T2wHPRzt_)Z{u%3A3h3Sqd9npdn{OYX!QJc{O#%QKGq%R zP@6mwRj=z0d_r}8JJ)?k*AOppzn`dh{fy#%@?&L-=x?;IZe3pK`TcC5F?f_(FV?#g zknmvbYFc?9a5QilFhnhO#r)c$_xl%OkK0zRJ~@wwRF{aX7iAI1b1Ul)VF+R+Tw(IHoSzG^(Z zyj&6ek>11tP-0oV9D3t`OP!t`bn2OBopZ8oF@I(K83WGbcfV(yfATr!3>xU_OP&8} zx1Y~QUYoyf?Nd87mpHDw7Ptwhw|#%gpQ(1GTIfoz{{F*@lk)iEc1Z)PT^!fl1zZK( zhMd4pAj{Pl;77o3xeklz=~XA4b@qj)oO9M0gU&qvtU)K8eEOg>jhWn2a{JY;en&{e z;fnOYE;n<%1h@rQxUEmtKYY$dJ=__Ok$<>ua@2bB4_{90AKJesR^{J%#5h{KxDLIz zZW-_^;2OgntiO~DGIY#8jD|fTn?IVIEGzU6VS(TG8z3cE z{{sNcyKWt@NmV`b|NQYc|BHxwy`-NKtgmn<5D5#{I#YH2sCnOO{-Cu7jj$d|XYD~( zte2Lc1nb}KP72%8EB@g6-5hGOzd1;~7cjfuJN}^Iryu4Io(%4H10NAhfB*CP1E~Fg zYe_nP(D)VlgX>SUCxi9-I1Iu1&$^RBerde=%pY8j7qI>;AYQu;)?XMkV@F4m;{~1g zgYl%W)UwU%7mD%+V+?qMX6L!;@j^8Ty< z$qwLK0M1}N>pJVP@T{-pOKEF?><^SAJ$BF|1o%^~S^)(F-&0*@5vJ+d3?pK}fB zwf1;%_IeNhwm$KrHtZh_>CSzO{HXQqVL#kHlIPOZco-%1g0+WbiF8}a4D{F`4wr@!bhIW`>0;hg}^4}Z$Mga3oi! z_RZQ6`cq&w~Dy@ZPU@97FpppCLE_dS|#k1{=Nyt=ob7snC8I8%No1Irjay z^Duzi4O|H}3<1VapD3xvH)kRo>Or-o>|bEK2KYJfV;jd!BN5s&$Br6ORht@b($2(m zkYA%iHfqByfX4GTCa0b4n^2t4Jf^m0*w~@*?&c!qb4(Y1+vs9rH{1(IhJR`O+g#7$ zt=l_13$hu*`0`u%q|KfXP-(l!_u(VwpAAWzo6$HD&`a5r$L?fdD6 za7b>*lx(;j_#^NaKzF_jOa&G>0ZKi-F<+5N>mU1!H@pe3#=qfp>tCDuU4byC#@luO z(Dk-&VQ=u0_usGpm}zp;>-!c=AH0P;lk($I@ymfVz%uKXzpkEEk0tx%`8iq_&-4E= z(QaWg-qudvuLG@(LwM{Pe@ZK`{|m+ZDg2!c8^hl4|1El7 z!p8oqCH8&6VQaq}+e_xR&!eh>Myjb{oklVamJ9G?It0a7u$0w#C<`{|W0YwDsCxe?0#{^WXP}()K&2^^c9iK}#{8?`*F5ox#TMtH$?pH(na@zv%tD z#@EpQFf8e8eV{}FDdEgb`VY8o` zhwA5lwU4%Y3msX85YVO+mf0?xW?3yleZ2cr2 z+&CXt0?acyZM9V+s%u7za4+-^xivaZgMU3heq>{V`CE~E{*4;7;x&Ms1RIwDE!OS) zN9uOOd__Ku?s%|m<5%6%4_j;;*VXCWT?6Xssz>k_%x6k)Q{zwYvv2%^<}c(szEhu= zfADsAk6N@+?C*94jT%!^S6z=V7I6{YYEiYIZs@X#S*;51Lu;Z=M941z3vGw@VuJ;^Z*thxl@1 ze#oz(^9|81<76nu3jk>p8IvykkQH5Yl4nx4&+L}9$M-{q(2TEvh7vR@@lU=W^AkXf z%G=8x=V6R4en|7R(D@d{GL7Vly*$15!b~?}s$Y^ij+Y`4Y6r5j0<~nu77B z%YpTP z{9NO!=Z7?(&rO#A-vP)BHs1;SlN-HKf_(XY$cbPa=gCbmge%IxU@qJ?V()GH;CT1n7}@XvQ)&Kj*J2 zG>@m|&5(Yn^d3WRO-LO_pFDa5DX!CNMkLg+?F;8^k9xy+uj>i;tZaN(J2=EEum_m}4f4{S^Zu={^@&6(I-*nXWly}COynUY&w!X~fZ{l~_ z+X)RfC-0M8?exA*?dm3HQ-WsOBf?k{Z*RhT+;l8JYQIp=ircC6ip|HQUG>My?CNiz zbDHR2S2ropzYHM$GdtF$U0vBlCwVS)`^>Iddwjb(lxBpwD%d0gD?z^xkbTSR{~p^_ zql;bLL#+tSkkU;!UNuP zE-(c6K7hBe={9>f|51W``F8arFycq41e@-qEgu9v&K2z{!LC|=dD86Lv!Hw!Am6{q z<@-0)R@IFiY0DTkj()sfs-4T(RF&S1>?*ncP1y8JF93gY>ncNQs|XB-<=^&E#Jud( zj)(Kb<>TK9od#eE@Dz3)R*D5&vBI*6HHJ+uaUGV_`(UBt)ST7ja&IQGTECC1wKg2ml*%NJWSM&zKM@p4vp~d+()yY@5lrijrIqg9+dC+)94-e!M)3!P&{M?^oz0itCCxRyTZ)cz{Jt$hWFPNr^` z*Hy^> z_W)Aa-EpkWkTp?GSn-%_M+=c^>+g6|6&c;WE~)vRQ(m8zSuwkhrE8(ZEtZBYkh5<~ z?ilBy<7wlsv@yl<`Xj*qBX=FN5T=*i0^CnUKA$al>apE7y1w0C3EeM8bRU4`)4+>V z>;)w4ehX1f%ZUKvrgv4gTnGHsJso{^Xq*{a<@^vN{6WVcXRQ9iI`BD9H+Tb?p{?a(tS@keU@CH;W4M#-qPyh6KU z`sHE&*{jyF09XpVVg26%efxL#a31yA{*GvV8Q=GY-ddm;SY`d*San&|s4?{(n~Ss; zo${G^W&R~=IIZLcTF@jdb3HyFXZAh*Un^~DB~RVD2eY~${`dEVwBVz`%b;Z@zzSST z3$TT!_5%)cW0rcnq(8!bpHo#?=T=*KMZR`nwjXY-30mJx%iaeZ==l6iZyQ9B?cITV z(SKjQ2>ooF@poH40-&W@KWy@~RXoT0iWSUapRZtAANqB|H%H2)~l>Rocx%RCxNK|!rQt3sQnpB z@gKW*c}eQ_nVqxt_`@b_crdh5{W^{MH{1?>w7QW+}d#|`FM^#7rng7JP(*U%~2kF)-T zew?jOtOCD=mJ+nemr|T?G*^lf;{JL2PtxWW;&BZ9H`$WlWXRkhYN9t0T4w;~ag~n; z8o0pnFt9=E<-oN7KDYd_*5{~Cl+<#SlV1_Zx!JWBxt;@H<6GVSzje;e+G=WOa#G_@ z>cyBIa%}YQqgu&ZwPM>_?=n5yoTq1N?CM%C(8GT*dM`t#4d?)t+3(5p9_o{-YU`_q zR}aO~gszNnv=`_iS4I~PU^D*2<~@K4lhc;Up|&%m$M3(j@r(Qx>BRj3+3-#Nd+A#7 z7+V(s>-m;Z->eCnD5dtdZ|vFTGZW3*NiWTw;q7g9_KUe~?{9c2_4-+-uVmInRA(1A zztqr))kCusF!qlj3S|A+2y};POe8K*nBgeYXL2G$sg#{ZYAw>T054L zU5+w7W|t*vcLBHq8gD){A`*yO!|^ZLF59?aCBmJT?u@N@-F+*9`U9fXd@qiTVW7vUP8?#zTFjILa3BLhk0iG zC!f*A8baG4z=6(B!9NPQof>a~KYimLw4LL6yR&~r{z2QIuqVzxNWZ_vd*x!?n3~ab z`9GL-{z2QJhByD7{iQE(E@=?|gkNt`;}WN&mnf7xNE@RNCYgXtK9`kK<#& zYk-tmm;QnFJ#5!A9-xq)&iruS%x-6sDcZju$LlkhAAb}e3-IGRfpwYS+Y9a1KKV$^ zAG6cO4_QNs*~$^HVT8L5+OFed0k9O13CY{B9`Cy_y7&ie_h2)~hLrt-^PfV3614q+ z&uvsnjmR(RegB~CM$l5M&*ww(KHve>6v*2hx<+vp?H^eGeE*;t{Nc{PpzUAu?frlj z?+fxFJ@yZbuGmH~{{VZ{CU=Vxw7m??(*P+a$+q#;^AFlC<|h0}xTF6F(>vFFt^`|1kJx(l{ZUo&X#7j8XNRh!a6Nk* zJ`%Q*l@(>b^^14Cl_6MmR`?dIB;sDaPPS9)>Hn4O)cE-O)ZrU%2{T@aXX2fBC|-uE z`@PJmLUbl)t&+P_YHLOzcR4dHl2gg6xaAALQNTydZZ+^RIpn zUZwv{=x^ajOqkgS>@febDpodCbp@|qPv1WCZ>&AOe?y$U<(H7B1Y1zjwhvKj@7?BK z(#n5KSM%!`=*Yi$m~(s`m0$}#X4zrDN4V+-#Qsfv4X;zJ9*qaKo&8EnKd1c1mcNKn z=-*txwfySmRpa|NTUbdjIz{_8#@EolF+YPG`4)K+lweCEeZvsiIzisgke({#eMvDt zL%+uI4ANVXKec5Mw8Z2(sOS9%wML!?d5F$_L^FPP_Z8Ux{9EZm`SI{{OO9?H~PX8&W-T zr1SG4zBoHVo#Kh*NApze z;JEcuz_Gx)Q`1S<{l2lQTbWk>3nj9vTa}7badtKRd$JO)Z{Dn8k1%DyR?@DNd>pcs zwXUs80M`Gvnl1PBuDDvO9z`?^54&3c|d>i zyZlV*c9~wbcKG&{ICtwf$Wel=N=z&Gss}W+EWQ)n9_J5?uI4Xx&g|@9pzR}n1htT5xfnxgl0DPYP!_GK;{d}=; zQ0UUc>N?Wb>kY57zlc)%IN${Uf1n-Ts&F2QtEuJI>~d0H`{QEz`c~*1BRYsz`)4_> z7EM6@YnS?Zjjykr6PCJNrmw9XzP?7Uw0|0sl%V}In)43eK(2NN@_MDm`r7ECuiJ-0 zhdEb6~B$Lg=HQ};V3|Em2gP*O}^v$oLA z{ULuJ_CHv^y!YqWwHL?q0$t?E?9v<1`wuW4__xv7#7jh2XqFY~1vhMa2qy?|!!1YjaS_NaZO<9F(I#N&uG8r=r4OasVnw@^(iku+;oY z_N!sL_`P;SRsDHmhG~P~=rLoBYi>-8f86dL`^N9s7V6iS?#_8;e#e2CVB6tg`-}8D z5<}tp9phMos9-$;ZOL1V1O6!@Sat|&6Q zWdF7e7aiEYt(v2P@@oK@#2xut$xfzjm)U7+hwHoZJ+QXhhCz}NY`ct4ZQZ*IPzcp~ z{+7|j-`aK~bmVV6%K2DGP=amh_v65L0A=O*BVIf#z0+D>ss3xZCTYuuqzw7+Hj^Zl(2;J@8Sa-slnKF|ad=GRO0w~U_eZ+#ImKZ@x6 zlM|F|nRqE#O8Q&dzQ*07f$sst#@p_5Px_xl@K+)n>RYojlelJI?KYzAZBM%SS2=cA zHUD$Tj`7rZlXk}Jw9!F+jm~87;{$EOu5J6V+0WK7wbeDX1wL0V(8J$S?jdsybnpqb z%?Dn=z9PB+`Pps%28huIj2fLWvd#^`wFS@?W5VJj)O8m$DzQ70YXB*n0@+_U*n(K|4>Yh?GEc2-4J(A zC!b@TBi(bFFaElR<$<>?G^|0#+ruL(P94OW9Y+DjsLt1al9J-&HfiU4IWs#)Jk)WL z=%6GzzQ9r8kT%?C>U3)76nD<+zSF7OX?D-r<=efHG-m)!padNk@c9t%2q2}}dv?$0 zV)r`6K}UA)Uz~@2PS7En{~EyhWFjx@+daNi%f-OQ7@u*h(lCn3X)0cp4)6FX%|17i zExVrk`naU#dro$jmRT{o`xUOQ0?bYo$lZ4(ho#tEr0Y>`|S(A6KaRu_P zc|9I_uNGs+%zou9R>&vf`;JXO8?e8fP&n9m}mgoB0(QYbNj! z!2Fcd^H}4yC1J-4_-A(fcJLl2TD%+}^LdUlfJK1fnNIDv)>WIG9nT91_oi-_^qp&m zq=;fRWE6GBy6bF4KZa=oBuM!bVtL6{eXk0(E3PhSA4ro z|2Nf}^QONAmEC@VIN|x1GQsO)8s@Fy9iAZ9|J_Bqza9QgKZD1xoD-Te!7DsF`^8MK z=!Q(N>TT>Hl`bFA=`#hDsrjD6Zp)jnVmz03aXIjRs`B(!Hp2#|lI*tQuWz@T!T)1N zGpjsE+2??hsn{Ke`CDSV?CAM+^9<-+6w$*Uwf~KhA>9K=*v)L_DDEBz;A6=z$dD&U zmLmA8DHLi%i({v7eGl*;a96L!%Z?87$LLH2|HFV}`KuN$w~VN*89V08{7ZG|RO)`1 z-tg>n&Qyc?6|GN9gU$rtMc^T`9~;Ju9Wt`I?vir}x5gqoUg-t8$dkqC8l^XZ$$W2?f}mCBF4@gK^WnxUTm;8__TYg_A8$7_neOyZDw{+6Oa9nwre{-&M3?<8-1!pqKp+63w#617Q z_wV>3l8+VeeO#t&@1L;8@o!-GdnR+@QJJ#0za^7-_6O`Yd{3tQsOPx9>r!^r5t;Ju z9G~g80$JPth)i&7S*HB09|q^lO!-^R%mjzHNV`i6sr#Rke-~wn%)k2@*N*`I5^~?a z<1Lsa`gbN*zJIp~{1aT`vt?q%EMOtfWnQM3{U=$YClRH{<^*R#?>FIf*%D4RGg=xh zhGaYcu1p+2R^f_rKH0LD-IM+&|UL zb30qMjyjFO8uKstpGhT^<$GMR}amcbm@PmFVe<%~Iq|K|ycCERTHF*Si{fWrh^S#vA9iS=a*_Uv&`j8OD&|{{3f4^Q-(!o|_Nl-vYO+=UCvonTi#A#%wWv>aX#2 z;hCGyJMgE%WK8nD?fj_dzE1t8@=qGoZ28dexRiE24SXN?q3V2j(x?}wXOjMtFE{2t z-3gsvhz`oG{7#Nv0mc9_I-UAYITR27yCl6A`%iIZO7lxa~*SSV!%W*#}nQ|@1ZvD2R?5xqnZz_KUPRnm1!YvPFFk99iq1M2KSRNiE=? z;jXjgvpA7!FcIh-zs2bJe#=?VdorT8ij$?l8lW@3rTl8{#=nLu+44pp$Bl_n1b;P^ zoPN%hn~mmLcDWtc)N6i&W+)`XHn;Vht1|_{boGl|5CAb z*)VjsUXzvF_KkfEezxP@?=0U&_Av-Y1N*4)c%d}=sAPk)i}LG(p}=Lp^~Q~g)$edz zF}p~_(s?ntS-bEbo0&$!5`M*>@rxSQjbfJ&fCzeM@awMoCEh<2GjVD0ez0er{cHpo)4 z0Z9(qU;15L0Xxj&6y*;XUHpOIHF_w2fap1R2ojWR@GPId1a1Ke{Q++sM||~vSCf{0 zPX0i^%DIa91K;5K4WL0a1>^iuss4cVFZ2iOHy-%qf!qK}HdxK)zX8yjKal5ZXTN(K z#{;ZLWE(QseykYm$=lWULNfOvSGMGKXskmi%${> z`Y&`_pSE#HFISqn&JJg@?-NE)l0(lP3>@IgRd(M{u6iS%Vt!Hf!_fE`@M)tPePpx8 zM5kRHZQZ7+bH7MN*zE7?#ri{Gazf9qEu@^}!#3o)@Qz-%%4UDk3t0XOP?$gTZpQWE zurXz}FR7szf5afS@xmLB#*j`eGqF; z!*_r?!4=&-jvU(hP4-y3Gn*X|9+zaY731N>F94aG0{t&3O0Azdwe!9lnw`HJI)4-$ zIT*KdxEL7D^&UW{`3K=`b9SCv(znO-ozeI0`?n$c2jP)&!s#u;wwGPWl@dj!?|Nk) zjM2ruXEAYR-=E<8&!Q^27z7s0GG$_fbgtO}v**2K-?LhVp_qNY7?Q65_!^1veNNZ# zx9E7^`sdsCk>H;u{OaFK`t}s?I#+uGdA@dL-_zQccszakx*2l+5mnJ$3C%?SN26(c zZQvrbli6Q$6FWxWj`sORb_2cIVth#3-<(a6 zP>_+`HZ720=q6^4og1=OCoy7qqF0l zemejR*S%D~<+^1Kw)m;q43BZhX@6q3iKrz8T$F z&|_Cs#US8BqtjdeL+bnn=9kf#4gT|hPXR~S_;#`n$?84%iN+cE9wB}r$&v#p-8*_zJT9Eb`~n?8|-(*Ilx&R4{@&y%3HBCWSA?+ z23Pb4jt9O7Tm<0Ffh${q*HNJ#$?Tw{o=?j_g60D%ZXFLyaY#M+zNA<~ZHGg{-=X+)=78~a5E>706yU50ERh=IXRy1=h|I^!79<_+tg8090 z;zqULf1z01_#SvX_y2Ks9&lO|$=|Pio}LXvC8vc2mJH?`L0AMONiusPEV@dP1r;ME zjHj6O^c3~Z95H7QRLqz?Bbc+ONDzVdTh;UIGtaZT@a(etzw_KzbE-5}?%7hYLE@JO*n8@RcdJ%Dxz^Xt;<-|SE1do)$2PruJ*t}gpjNYJ&i``ebCeb_k)=(t6laOKC^ z%^$nzH?_?kamtd{M?9%H&NtM7la4F#4{a7r98)sEuM7Oo#^h3<0xKCyj`VlphuORN z+_k^E&p5^=WRKQ!UQd@=PaN1!uSf1*SDJq`KP|5oOUpV2jMLrqNxkE;hjA90d@ z5A{Xm*Dr%sXb-fkUXNwZg2xNNr9?rmH*Q?^<(@0!_kkpbse9?`KDVf_84R61Eqvoh z`t=p_8@aw*yN7;)e_BbTKWSGXSsZ{-Sax4M(n`NkcQhd?OS-#+A8p*M8qe+t@UpXQ zCW3RMO#5@~=*eu;-JX-b@^3;6bR+D>feY+GOE|{pTlI&vNjGxEyVrk!1a6ZsbJDuJwoa%Juik3hni2 zpE24u$W}0lGIQSI8*d}w4l>6Fk{(-NFz{ToKEfAXI{BfT3GJQm`}6A##dNhW``NOAsL&dR6Sm1Of&+AoIsW0$iZCvlu&+W4A+WcecT z$tw9XM$d)$<1@q=%j9gEpod?fjV`ViGy_(Ti`mi08l#{bB3?Q906UN~0GOx2f00xL z`KrkY^|y^zJ|V|RK-<;?ljn*FC8g6wmlPkriSJ$UbZEauhiGHYX@Gc2&dJ`-Pd*2h zD2ko`ZEEq@k}16TW!kVY)4WSmjq+h{we9NjPC2u|3~-_OV?TTUY`^KnrS?XTait0J z-e3D}%!CP(kKbGW9#vXAHTpr5YVbijv+^&2{&nC+aE+Domy$AXbm;Muil@Rw#`$Zz zkM^%6=1OS2(u~^7V%r`%cZ0d$T+`zpS-FOd;Y+N@cg&<|rG3VZEiNq`c~o&pN-1lE z4_dF4dnxpp-_Mx`9<_3Z@*gq%h@*Kz$m+NT%AL(D%4d{&bLbE+$ax(+Z}t66QqDyu zOex`O=e)F~pMCSZ2I%I5`frMXCWl z6Y&tW+vwL^^iIwy(=V$_ea%;e4$a;8N^C1{|3rsOKEFe=EdK{+^(P( zD713^P*OUqcxvh7Nn<7?JyVrljg*tALhILGLJwV@y9?OX>h;efCXbs@V|17rG&;=D z=Jo|xzTDm>&t>EJCXtPL!}r*fsP%Hz39M0^axY80#7C%Oj7&Bz_I~T+Dl9&z>yt8Ru`{&hRh49wGNYJ1mQF z<*p$fvmNE01OBc5MaMZ>yH(R0>EoPe`>=7&t7bl*A7XnQz_&Nov(jSG}yVv=j3u1vhym?P(DV!2FE!@HwLYby)Mmqn*I5ZAi3PP`TZ9B z3^4K)j|0>WReK#`?u%qgvT@E4ki;_QF4Z$B_5L3{hEA2oIaa=KoMY<{CzAgUn!lEh za%G|Pvf6T_gK8Uh==gDy*C`m?aJ*yVE82Cgj%Y|OkBZJBn5^&Wu(7m_uk>H7++42I zR{1#K8A)C9n2WEHr~gG#HQJYsrbud2;v>jao0A^rVbHQhfP*>0dGK<`bbPnOx=yHf z&0c*?maRbnXkqoXvUuv$$y4oP3ueET+wovL?=eRfD-TuZFBSSdiT-2rlcS*94Qv6t z|G|5x(_fsCvHU8hN59G2)0lU8JF&kz=p2n(=HXlBVNLV4va9T;+H@^$owql+4Faq) zse6v6T@Qc1-lXvT75$TxQujRFa&atkBK&JbiY85;n5c*3bz%If{Bf5R>GnNZKW5))iFtP^ z9qfDFeHfY#!S5Vb8pqW6qpvEo?^eQ$`7^t2{GjeNnT?wc8+Z6)m-h^cm_bu~GfvcO z{L<*Ee)=Y~>(8+NWP9UF^X#5-k&V)!x?6>zN!vKgaxvk;vg?Pu11IuZm9q z(>PI4TsQA#u6_v6j`HBWjtVL*RiWOsi+la->iF2Qt3ykzvo+{q`FvRxS1p=!B(8_9 z0Kn9-3c%j!prkXVm+lvseXg@BwDtmnQ;Om03{5$%;J~kIPhVd)JP`*j$FC`)J>d5? zTEv5yuRGgFj%5!nSU-vI8SOW9Izrd{K9e{4&EicfDfc1N!K-ZjcU)GK$-6ATZ1IE| zi!U2};@lRu=m^~sKrFw`D5JBXICrN0ZF)T?%bkd8e*?Ya!O38nk9#KLtu+(ZPV_S? zXCZXX1%C&{roW=`#B_esk2k&Cj3X@0jCWh-Du6AobD7Dz*5b@oenvnxzW5e;tRJXz z2e`@0ySRqq%tntPueIw{(BVn(I!}Q6{%_|Ij1PvUR&H!qotME`;EZUzoBrtPFe0ck z2226?+;uJn*MqwNvzK)igSCtr>VZ~(5mMb9KtJEfGuC^__Mb<0BKv4DtvO~mtAPgyqrbwHNyZ?zTAw|19^=YJ2q#sJ^F z?q=5CYCN8A^y-EEjk%J#jGF6q0d1|EwHD7ex`aQhfBgVGW`XK%2YQ)at+9B%(Piax!k^UF;-&Cqz|N2$01(h$)^y8yH zi-wE}JzDSgN9)DL*|$UI8ecY7_gcRLkuVv3_9N?4t$(fBZR~__#p=fFL1F=Fgg*X$ zU53y`A77yERSEjx06UewtqVF%-<(?Ji|X}8_tQ!RP{5aQj?;;9^l=;-b3z(_r!Rlb zF{78dI$aQsBgx-i5FYdWyTq}^6*jsK*7C=n-bG`3{mJ_Q@T_JLT?bqDUd}$@Gq(P` zp?ob4VfBTdOmcPK54X44mJ@IIom6?L-?$pvUBV}hwny5VyNu3i`j;^HtVeXbV4&5)?E@rRF z>$dCu=JQi~=e~df>jUax|3W_2R-wJBJVHJ-*GT!pc!14&sK@zgNV8sn-|>YA3u5no z)^g@@$G6zuB+Hth~R5Epqa4Ofi)3f!PRO_)hh9@IFS?JSe>G zb9D83Rm4}O<0R7yaB0cnP3YZvJAqyFRJ5Jc+a@9B$wwURZ}97_GV8yLe>9m~*O7mb zKX&!@_B*L^)poV28te7UzYq1hZ^POWiR;um7!3D%V82mCql#?g;E((F88|3BUIg9h z=mq6B62CXUC^ElLR>UNK@MV3BIA=X(9`eSr9TwG-_3(P?9q#X}w!T`z{Tk_WP}qw6 zB6(`g>ljz*wnmeycVCU>_g~A*{GRqm?dp&P|30f1GM#6bGG+2qp3W(nIQi(3=yP55 zZX?gTz@gwF%RBqL6Fm)E&+X4uP;RrAUnS?acpf5!Nc#WGf2IC!^BVQMS$Fm37ztOu zfT%06zj}`Vi?gTndunrI{*BjLp?-)w|K;^pv^|)=b0>6OP}&Fqlfm4>&&tzV(C$Z~% zV%N-dYaF=V>qzkf-s{sYaaHYYt5I(BOnrPPjR|GVhue2OcdniWC3M}$O@QE7#qoaA z$C35nRkJTYkuAw&UJM^-qxxnKQrg+Nu>DkdorKk^HXV|!lOTp#Ka9q^`Z`CXPN@2c zO0=wAH+h|e(GB&d*|qh^^>;{+TzxgF>JBXf>LMsZ(eFjnd)l`d=AZ1nP|SO{`aQTP zlB!Y9T7@L_k>aDEkeJu0kNM7`{8H3^|J<`12#E?)x?bGEbaL{Iu<8GAnf|}> z6S3#%ytN~*9(f1#6RM~R8mKRsmH+tHUYwWCLrj-6UECHkpOKMt#Z33>h- zJO<`j-gzTg3#Q5J=)-=${IAvbw<&fsNrcNyzca$qbs)Mfgf|Q7`waEHhKa9lmCv*W z&!qE*9sl3rFTFpQUr}Gpxc0~M{I)?a-XQZX$Ik+@_bL5`)?GDykiK3b+CR*%z^AJJ zrqaf*sQ(Vz=YgJ3{adMDu{=$WOgt z*`PlAVWQo|Ke}7uUryv5)cfW zT(jzMLhH`#XO;Yp2GKeh&s!Ha2aPp<8~0V&&#-!q`WchSudU`sJvV3%uie4U94XH= z=Vut*h@XKQ=jyB5Msf|dh2}7D07u$H(*2D3FLE`0Dbn!op6pDo9If{zQ;pSoRq7`e zhiy&f7ouew>!rm)9m|q8Pn1GqVb(1U384mMOqE!0JL?3i)`Gu zYQmV1OqsN5fSz`KeEY0lp+h9S0V~=X{B!*hNN7uEWYqwh(cl_zYZ=+9>GeoCYsar` zz)0`^hh%Aj!ZfDvMY-vM#?hM_+5 z1Vcaf(Zo^u*5Zcmr24rVBpPOrexLfE8QrJ-Bsxwqzp#P#!(D@~EPL1RaLRE32!N`b zlsL1tj;i&ObiXj#zRWMY2Rcoa4vM&8E4Ehy6`CsP3jIQ}V;e7Y#(bK;V|+z@k{PgL z{s^2j>;^BdfwzDv>oWf#;zx1XQZ?w}XEod_^s^SS-`VHn8mhnY9asj`1eyP!^%#x6 z+i}FdtBRd>4Ywd$lG*vApxqDj*E3N&-*As=+IeSkjoSHR$$vl1U*(Fy&q9`28kW;> zK$%=O)y{jmQ9G|P-d?FH-SN=e0Z=USFVg+8hV{6p9oPcw0}cdfwzV4d9JTWYkR#C; zO|Bt9Up~?(S%+|>ZQkUNc|EER6Y6cVKg@77oC(ebr;d2jpzdP?5wUrF9;w@TitCraKcYbEdHn;oEL8pk7>U(H~>rm=kh-fJ9an~+z1}${do&T zn!{W3cSX9OVY?gzP_SLD;QBkk0+Fup*lj;RKHWzH&h5 zbrRVUFJ;RjutH?39FeW_!Oj4=Yzyz(ZN=&uw9T$4@ZIs8cIVnYvqbv7A@VoM^tW9_ z#%?Dv?r@RfGr=Vy<5!6s^Nh&EVIq^R0gr&^z}!RBJc3u zfBJ$6B1;B|EXA>zJy_(6`}lsuz2F0Uj^+T57(@TWe8#nsm2(Jkk4aYUP2efU)oUe-)t*^(Pn4{ByMa-F zd+M!X?qf7KU9vWBFIkN?2ZdlqFaR6`CIaqjbRM_{%mZ(LrQlb|Y7Cvm9RS~XZQK_e z0w#mgz-%xF%m;6R&%tv09&A<<_-WD=>;eu3&}niC|BqyQFMv)H?rHLwWHpV0#sJ=$ zZV&o{{lQUSI=B+t0v-l0fOo;yV5MX=Yb{yL50EU{dR8mS)T&gn+91QyZjA5Ys~ct6 z0{Lv$Q?hnM9=jbbS-ZpMo@Yo_pWc$y?-$AH|CnU$-3#n3Sp$|y*1##??~=983dtIp z2PpseC6ZMFPZN;Sq>Ci$*pnrzv_P^>_(-x&qKqfsBU$H==Q(#v)&<*0)@46S*5%~6 z`WSGf#F&VRWo=CysvQ_0u?ADX-4bg!7JSP$a1RE{B)0izFkWIU8%eC7iNrcQ3)V`k z&t!15#P<4LVtt!QZ18RpJKzC{9XJ3nVuFXNeuz zN@7QG&r$nH?CA5sLlT>E0JuwH$KDI(Nv!k?aGAuWT?2lT*ohy5pCoqDx!`t*(NAJ0 zpC_?Xb^v=z>{RH^JWyh1!oykHNNiSbiJjXY>@TtN4+HRfDd#RdMq-!U2wsuc)$n)q zjuLxv2$&(UXF7nv5_`Te*h6BA4gpt5?Dc)Xbcwyu1q_$i+wVvW6%zXhIelEnyRNwZ z6YgKK0KnrH)4&Z9`}%c>eN$gz-@h%fAE33CZ;EdIEa2Mm)wuV2MxplxL|1fKrJc7XaS5a6I2QKAvwcp2GVZ zPWfKqr~WMQ(^`R*5AX z@r$|v;@-0_l=vktO8ipFbvb-pN!hNtk@rM!{u;{vk5>TsU&p&2uA?kBjF9-hP6D?` z{NK;>K8P3ier!*P-_AEK?%B|iUkzEz8C7c`Uj!hG

    s9>u>aTrAY|nUeME)eM)^~`@THD1o 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�jyI7awqYihdHs4OAh@e?ix@O#a-kd2K>e~ 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�Te^@R4V;31>$+2_*!)JC2NT%1rD| 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�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 z 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 -} -declare module "@salesforce/apex/AppointmentController.getSlots" { - export default function getSlots(param: {serviceAppointmentId: any, operatingHoursId: any, schedulingPolicyId: any, arrivalWindowFlag: any, localetimezone: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.getSlotsByAssignmentMethod" { - export default function getSlotsByAssignmentMethod(param: {serviceAppointmentId: any, operatingHoursId: any, schedulingPolicyId: any, arrivalWindowFlag: any, userId: any, currentAssignmentMethod: any, cleanupRequired: any, localetimezone: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.scheduleSA" { - export default function scheduleSA(param: {serviceAppointmentId: any, schedulingPolicyId: any, userId: any, currentAssignmentMethod: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.updateSASlot" { - export default function updateSASlot(param: {serviceAppointmentId: any, arrivalWindowStartTime: any, arrivalWindowEndTime: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.updateServiceAppointmentStatus" { - export default function updateServiceAppointmentStatus(param: {serviceAppointmentId: any, statusId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.updateSA" { - export default function updateSA(param: {serviceAppointmentId: any, earliestStartDate: any, arrivalStartDate: any, arrivalEndDate: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.deleteExistingRequiredResources" { - export default function deleteExistingRequiredResources(param: {workOrderId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.deleteExistingResourcePreferencesForResource" { - export default function deleteExistingResourcePreferencesForResource(param: {workOrderId: any, serviceResourceId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.addNewRequiredResource" { - export default function addNewRequiredResource(param: {workOrderId: any, serviceResourceId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.assignCurrentUserAsRequiredResource" { - export default function assignCurrentUserAsRequiredResource(param: {userId: any, serviceAppointmentId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.isUserExcludedResource" { - export default function isUserExcludedResource(param: {userId: any, serviceAppointmentId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.cloneWorkOrder" { - export default function cloneWorkOrder(param: {originalSaId: any, startPermitDate: any, selectedHorizonValue: any, dummySA: any, dummyWO: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.deleteClonedResourcePreference" { - export default function deleteClonedResourcePreference(param: {clonedEorkOrderId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.deleteClonedWorkOrder" { - export default function deleteClonedWorkOrder(param: {clonedEorkOrderId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.cloneResourcePreference" { - export default function cloneResourcePreference(param: {workOrderId: any, newWOId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.copyResourcePreferenceObject" { - export default function copyResourcePreferenceObject(param: {originalRFObj: any, newWO: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.deleteClonedAppointmentData" { - export default function deleteClonedAppointmentData(param: {clonedServiceAppointmentId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.updateDummySa" { - export default function updateDummySa(param: {dummySA: any, startPermitDate: any, dueDate: any, serviceTerritoryId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.createNewDummyWorkOrder" { - export default function createNewDummyWorkOrder(param: {serviceTerritoryId: any, workTypeId: any, originalWOId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.getUserName" { - export default function getUserName(param: {userId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.convertTimeToOtherTimeZone" { - export default function convertTimeToOtherTimeZone(param: {date1: any, date2: any, sourceTimezone: any, targetTimezone: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.getUpdatedSASchedulingInfo" { - export default function getUpdatedSASchedulingInfo(param: {serviceAppointmentId: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.getSchedulingPolicyId" { - export default function getSchedulingPolicyId(param: {schedulingPolicyName: any}): Promise; -} -declare module "@salesforce/apex/AppointmentController.getOperatingHoursId" { - export default function getOperatingHoursId(param: {operatingHoursName: any}): Promise; -} diff --git a/DriverLicenseParser/package-lock.json b/DriverLicenseParser/package-lock.json deleted file mode 100644 index 13d7764..0000000 --- a/DriverLicenseParser/package-lock.json +++ /dev/null @@ -1,14381 +0,0 @@ -{ - "name": "salesforce-app", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "salesforce-app", - "version": "1.0.0", - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@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.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.40.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/babel-plugin-component": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - }, - "peerDependencies": { - "@babel/core": "^7" - } - }, - "node_modules/@lwc/babel-plugin-component/node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@lwc/compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - } - }, - "node_modules/@lwc/compiler/node_modules/@babel/core": { - "version": "7.20.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@lwc/engine-dom": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/engine-server": { - "version": "2.45.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/@lwc/errors": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/eslint-plugin-lwc": { - "version": "1.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "globals": "^13.20.0", - "minimatch": "^6.2.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": "^7", - "eslint": "^7 || ^8" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lwc/jest-preset": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "@lwc/engine-dom": "*", - "@lwc/engine-server": ">=2", - "@lwc/synthetic-shadow": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-resolver": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-serializer": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "pretty-format": "^29.3.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-transformer": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/module-resolver": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "~1.22.1" - } - }, - "node_modules/@lwc/shared": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/style-compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "node_modules/@lwc/synthetic-shadow": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/template-compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "node_modules/@lwc/wire-service": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@mdn/browser-compat-data": { - "version": "5.2.57", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "node_modules/@salesforce/eslint-config-lwc": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "~7.21.0", - "@babel/eslint-parser": "~7.19.1", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@lwc/eslint-plugin-lwc": "^1.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "eslint": "^7 || ^8", - "eslint-plugin-import": "*", - "eslint-plugin-jest": "*" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "eslint-plugin-compat": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.2" - }, - "bin": { - "lwc-jest": "bin/sfdx-lwc-jest", - "sfdx-lwc-jest": "bin/sfdx-lwc-jest" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@lwc/engine-dom": "^2.0.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.1.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@xml-tools/parser": { - "version": "1.0.11", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chevrotain": "7.1.1" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/acorn": { - "version": "8.8.2", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-metadata-inferer": { - "version": "0.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.34" - } - }, - "node_modules/astring": { - "version": "1.8.4", - "dev": true, - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-jest/node_modules/babel-preset-jest": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.21.5", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/call-bind": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001487", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "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" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/chevrotain": { - "version": "7.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "regexp-to-ast": "0.5.0" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "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 - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.396", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.2", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.40.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-compat": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.47", - "@tsconfig/node14": "^1.0.3", - "ast-metadata-inferer": "^0.8.0", - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001473", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.8" - }, - "engines": { - "node": ">=14.x" - }, - "peerDependencies": { - "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-compat/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/semver": { - "version": "7.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "26.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-restricted-globals": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "dev": true, - "license": "BSD-2-Clause", - "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.1", - "dev": true, - "license": "Apache-2.0", - "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", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.5.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.15.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.4.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/line-column": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "6.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.10", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", - "dev": true, - "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.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-apex": { - "version": "1.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "apex-ast-serializer": "vendor/apex-ast-serializer/bin/apex-ast-serializer", - "apex-ast-serializer-http": "vendor/apex-ast-serializer/bin/apex-ast-serializer-http", - "start-apex-server": "dist/bin/start-apex-server.js", - "stop-apex-server": "dist/bin/stop-apex-server.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "peerDependencies": { - "prettier": "^2.0.0" - } - }, - "node_modules/prettier-plugin-apex/node_modules/jest-docblock": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.5.0", - "dev": true, - "license": "0BSD" - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/throat": { - "version": "6.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/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, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "dev": true, - "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" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, - "requires": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - } - }, - "@babel/compat-data": { - "version": "7.21.7", - "dev": true - }, - "@babel/core": { - "version": "7.21.8", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - }, - "@babel/eslint-parser": { - "version": "7.21.8", - "dev": true, - "peer": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.5.tgz", - "integrity": "sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA==", - "dev": true, - "requires": { - "@babel/types": "^7.23.5", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - } - }, - "@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-member-expression-to-functions": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@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.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "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.21.0", - "dev": true - }, - "@babel/helpers": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.5.tgz", - "integrity": "sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ==", - "dev": true - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/preset-typescript": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" - } - }, - "@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/traverse": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.5.tgz", - "integrity": "sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.5", - "@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.5", - "@babel/types": "^7.23.5", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.5.tgz", - "integrity": "sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.40.0", - "dev": true - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "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": { - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/schemas": { - "version": "29.4.3", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true - } - } - }, - "@lwc/babel-plugin-component": { - "version": "2.31.0", - "dev": true, - "requires": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - } - } - }, - "@lwc/compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.20.12", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - } - } - }, - "@lwc/engine-dom": { - "version": "2.31.0", - "dev": true - }, - "@lwc/engine-server": { - "version": "2.45.2", - "dev": true, - "peer": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "@lwc/errors": { - "version": "2.31.0", - "dev": true - }, - "@lwc/eslint-plugin-lwc": { - "version": "1.6.2", - "dev": true, - "requires": { - "globals": "^13.20.0", - "minimatch": "^6.2.0" - }, - "dependencies": { - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "@lwc/jest-preset": { - "version": "11.5.4", - "dev": true, - "requires": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - } - }, - "@lwc/jest-resolver": { - "version": "11.5.4", - "dev": true, - "requires": {} - }, - "@lwc/jest-serializer": { - "version": "11.5.4", - "dev": true, - "requires": { - "pretty-format": "^29.3.1" - } - }, - "@lwc/jest-transformer": { - "version": "11.5.4", - "dev": true, - "requires": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - } - }, - "@lwc/module-resolver": { - "version": "2.31.0", - "dev": true, - "requires": { - "resolve": "~1.22.1" - } - }, - "@lwc/shared": { - "version": "2.31.0", - "dev": true - }, - "@lwc/style-compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "@lwc/synthetic-shadow": { - "version": "2.31.0", - "dev": true - }, - "@lwc/template-compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "@lwc/wire-service": { - "version": "2.31.0", - "dev": true - }, - "@mdn/browser-compat-data": { - "version": "5.2.57", - "dev": true - }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@prettier/plugin-xml": { - "version": "2.2.0", - "dev": true, - "requires": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "@salesforce/eslint-config-lwc": { - "version": "3.4.0", - "dev": true, - "requires": { - "@babel/core": "~7.21.0", - "@babel/eslint-parser": "~7.19.1", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.8" - }, - "dependencies": { - "@babel/eslint-parser": { - "version": "7.19.1", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "dev": true, - "requires": { - "eslint-plugin-compat": "^4.0.2" - } - }, - "@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "dev": true, - "requires": {} - }, - "@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "dev": true, - "requires": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "dev": true, - "requires": {} - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "@sinclair/typebox": { - "version": "0.25.24", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "dev": true - }, - "@types/babel__core": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.5", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.6", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "dev": true - }, - "@types/node": { - "version": "20.1.5", - "dev": true - }, - "@types/prettier": { - "version": "2.7.2", - "dev": true - }, - "@types/semver": { - "version": "7.5.0", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/yargs": { - "version": "16.0.5", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "dev": true - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "5.59.6", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "@xml-tools/parser": { - "version": "1.0.11", - "dev": true, - "requires": { - "chevrotain": "7.1.1" - } - }, - "abab": { - "version": "2.0.6", - "dev": true - }, - "acorn": { - "version": "8.8.2", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "5.3.2", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "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" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "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": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "ast-metadata-inferer": { - "version": "0.8.0", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^5.2.34" - } - }, - "astring": { - "version": "1.8.4", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "dev": true - }, - "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "babel-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "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" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "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": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.5.0", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "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": "29.5.0", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "dev": true - }, - "browserslist": { - "version": "4.21.5", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "bser": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001487", - "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" - } - }, - "char-regex": { - "version": "1.0.2", - "dev": true - }, - "chevrotain": { - "version": "7.1.1", - "dev": true, - "requires": { - "regexp-to-ast": "0.5.0" - } - }, - "ci-info": { - "version": "3.8.0", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "dev": true - }, - "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==", - "dev": true, - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssesc": { - "version": "3.0.0", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.4", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.3", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "dev": true - }, - "define-properties": { - "version": "1.2.0", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "domexception": { - "version": "2.0.1", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "dev": true - } - } - }, - "electron-to-chromium": { - "version": "1.4.396", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-set-tostringtag": { - "version": "2.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "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", - "dev": true - }, - "levn": { - "version": "0.3.0", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.40.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "eslint-scope": { - "version": "7.2.0", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-compat": { - "version": "4.1.4", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^5.2.47", - "@tsconfig/node14": "^1.0.3", - "ast-metadata-inferer": "^0.8.0", - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001473", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.8" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-plugin-jest": { - "version": "26.9.0", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.10.0" - } - }, - "eslint-restricted-globals": { - "version": "0.2.0", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - }, - "espree": { - "version": "9.5.2", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "execa": { - "version": "5.1.1", - "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" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expect": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "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" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "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" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "gopd": { - "version": "1.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "dev": true - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.4", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "dev": true - }, - "is-core-module": { - "version": "2.12.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.4.7", - "dev": true, - "requires": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "dev": true - } - } - }, - "jest-config": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "jest-util": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-sdsl": { - "version": "4.4.0", - "dev": true - }, - "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": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsdom": { - "version": "16.7.0", - "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" - } - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "dev": true - }, - "leven": { - "version": "3.1.0", - "dev": true - }, - "levn": { - "version": "0.4.1", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "line-column": { - "version": "1.0.2", - "dev": true, - "requires": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "minimatch": { - "version": "6.2.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.8", - "dev": true - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "dev": true - }, - "node-releases": { - "version": "2.0.10", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nwsapi": { - "version": "2.2.4", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "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" - } - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "postcss": { - "version": "8.4.32", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", - "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", - "dev": true, - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "dev": true - }, - "prettier": { - "version": "2.8.8", - "dev": true - }, - "prettier-plugin-apex": { - "version": "1.13.0", - "dev": true, - "requires": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "jest-docblock": { - "version": "29.4.3", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - } - } - }, - "pretty-format": { - "version": "29.5.0", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "dev": true - }, - "psl": { - "version": "1.9.0", - "dev": true - }, - "punycode": { - "version": "2.3.0", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "dev": true - }, - "react-is": { - "version": "18.2.0", - "dev": true - }, - "regexp-to-ast": { - "version": "0.5.0", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "resolve.exports": { - "version": "1.1.1", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.1", - "dev": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "dev": true - } - } - }, - "safe-regex-test": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "6.3.0", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - } - } - }, - "string-length": { - "version": "4.0.2", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "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" - } - }, - "supports-hyperlinks": { - "version": "2.3.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "throat": { - "version": "6.0.2", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "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" - } - }, - "tr46": { - "version": "2.1.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "5.0.4", - "dev": true, - "peer": true - }, - "unbox-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.2.0", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "dev": true - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "requires": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - } - }, - "walker": { - "version": "1.0.8", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.9", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.9", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } - } -} diff --git a/FindNearby/README.md b/FindNearby/README.md deleted file mode 100644 index 0a83ba4..0000000 --- a/FindNearby/README.md +++ /dev/null @@ -1,64 +0,0 @@ - -# Set Up the Find Nearby Lightning Web Component (LWC) -Help your mobile workers figure out what records are close by. For example, mobile workers can search for service appointments to see where to go next. Or, they can search for a part they need to complete the task. - -**Note:** Find Nearby LWC is an open-source component and is not supported by Salesforce Support. - -## Before You Begin -We recommend taking the [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components) Trailhead to learn how to: -* Set up your Salesforce DX environment -* Set up Visual Studio Code -* Make sure your org is updated to the Summer '23 version and higher -* Authorize your org - -## Set Up the LWC -1. Get the source code: - 1. From [LWC-Mobile-Samples](https://github.com/forcedotcom/LWC-Mobile-Samples), click **Code**. - 2. Clone the code or download the zip file. -2. Configure the LWC: - 1. Open the FindNearby folder in Visual Studio Code. - 2. Under `force-app/main/default/lwc/mobileMapLayersMain`, open the `config.js` file. - 3. Review the predefined code blocks in the mapObjects array. Each code block represents an object that can be displayed on the map. The map shows one type of object at a time, and you can switch between types. By default, the object type you see when you launch the LWC is the first code block of the mapObjects array. According to the default configuration of the LWC, the displayed object is Service Appointment. - - `value`—The object’s name. - `latField`—The object’s field that contains the latitude value. - `longField`—The object’s field that contains the longitude value. - `titleField`—The value of the entered field is displayed as the title of the marker’s card and list entry. - `detailField`—The value of the entered field is displayed as the detail of the marker’s card and list entry. - - Example: - ``` - { - value: 'ServiceAppointment', - latField: 'Latitude', - longField: 'Longitude', - titleField: 'AppointmentNumber', - detailField: 'Subject' - } - ``` - According to this code block: the map shows markers for service appointments; the service appointments are located on the map according to their latitude and longitude; the appointment number is the title of the card and the list entry; and the subject is the detail shown in the card and the list entry. - - - 4. Add a code block for every object type you want to see on the map. - * Within a code block, use different fields for `latField`, `longField`, `titleField`, and `detailField`. For example, you can't use the Name field for both `titleField` and `detailField`. - * Separate the code blocks using a comma. - - 5. The distance unit is predefined as kilometers. To change the distance unit to miles, replace km with mi: -`distanceUnit: 'mi'` -3. Authorize your org and deploy the code to your org. See [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components). -4. Grant access to the LWC’s users. - 1. From Setup, in the Quick Find box, enter `Users`, and then select **Profiles**. - 2. Open the required profile. - 3. Under Enabled Apex Class Access, click **Edit** and add MobileMapLayersService. - 4. Give the users access to the records you want them to see. -5. Connect the LWC to a global action. See Add Global Actions to the Field Service Mobile App. - 1. For Action Type, select **Lightning Web Components**. - 2. For Lightning Web Component, select **c:mobileMapLayersMain**. -6. To see the map on a mobile device, add the map URL to the org’s trusted URLs. For more information, see [lightning-map](https://developer.salesforce.com/docs/component-library/bundle/lightning-map/documentation). - 1. From Setup, in the Quick Find box, enter `Security` and select **Trusted URLs**. - 2. Click **New Trusted URL**. - 3. Enter an API Name. - 4. For URL, enter `maps.a.forceusercontent.com`. - 5. Select **frame-src (iframe content)**. - 6. Save your changes. - diff --git a/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls b/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls deleted file mode 100644 index e2789b4..0000000 --- a/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls +++ /dev/null @@ -1,123 +0,0 @@ -public with sharing class MobileMapLayersService { - - @AuraEnabled(cacheable=false) - public static List> getAllPicklistOptions(String obj, String field) { - try { - SObjectType objType = Schema.getGlobalDescribe().get(obj); - Map fields = objType.getDescribe().fields.getMap(); - Schema.DescribeFieldResult dfr = fields.get(field).getDescribe(); - - List> picklistOptions = new List>(); - Map temp = new Map(); - - List picklistVals = dfr.getPicklistValues(); - for( Schema.PicklistEntry picklistVal : picklistVals){ - temp = new Map(); - temp.put('value', picklistVal.getValue()); - temp.put('label', picklistVal.getLabel()); - picklistOptions.add(temp); - } - - return picklistOptions; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled(cacheable=false) - public static List executeFilterQuery(String currentObjectFilter, Map currentFieldFilter) { - try { - List results = new List(); - - String fieldType = currentFieldFilter.get('type'); - String fieldName = currentFieldFilter.get('value'); - String input = currentFieldFilter.get('input'); - - // verify object and fields are valid and accessible - if (!isSafeObject(currentObjectFilter) || - !isSafeField(currentObjectFilter, fieldName.toLowerCase())) - return results; - - // sanitize input: cast and escape quotes - input = castToType(input, fieldType); - - if (isLikeNeeded(fieldType)) input = '%' + input + '%'; - if (isQuotesNeeded(fieldType)) input = '\'' + input + '\''; - if (fieldType == 'TIME') input += 'Z'; - String operator = isLikeNeeded(fieldType) ? 'LIKE' : '='; - - String whereClause = buildWhereClause(fieldType, fieldName, operator, input); - List params = new List{ currentObjectFilter, whereClause }; - String filterQuery = String.format('SELECT Id FROM {0} WHERE {1}', params); - - results = Database.Query(filterQuery); - return results; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - private static boolean isQuotesNeeded(String type) { - List types = new List{ 'DATE', 'TIME', 'DATETIME', 'BOOLEAN', 'DOUBLE', 'INTEGER', 'CURRENCY', 'PERCENT' }; - return !types.contains(type); - } - - private static boolean isLikeNeeded(String type) { - List types = new List{ 'DATE', 'TIME', 'DATETIME', 'BOOLEAN', 'DOUBLE', 'INTEGER', 'CURRENCY', 'PERCENT', 'REFERENCE' }; - return !types.contains(type); - } - - private static String buildWhereClause(String fieldType, String field, String operator, String input) { - if (fieldType != 'DATETIME') return field + ' ' + operator + ' ' + input; - - // for dateTime fields - search whole day, user don't need to put in the exact time - String startDate = input + 'T00:00:00.000Z'; - String endDate = input + 'T23:59:59.999Z'; - List params = new List{ field, startDate, endDate }; - return String.format('{0} > {1} and {0} < {2}', params); - } - - private static boolean isSafeObject(String objName){ - SObjectType myObj = Schema.getGlobalDescribe().get(objName); - return myObj.getDescribe().isAccessible(); - } - - private static boolean isSafeField(String objName, String fieldName){ - if (isSafeObject(objName)) { - SObjectType myObj = Schema.getGlobalDescribe().get(objName); - SObjectField myField = myObj.getDescribe().fields.getMap().get(fieldName); - return myField.getDescribe().isAccessible(); - } - return false; - } - - private static String castToType(String input, String fieldType) { - try { - switch on fieldType { - when 'TIME' { - Pattern MyPattern = Pattern.compile('\\d\\d:\\d\\d:\\d\\d.\\d\\d\\d'); - Matcher MyMatcher = MyPattern.matcher(input); - if (MyMatcher.matches()) return input; - else return ''; - } - when 'DATE', 'DATETIME' { - return String.valueOf(Date.valueOf(input)); - } - when 'BOOLEAN' { - return String.valueOf(Boolean.valueOf(input)); - } - when 'INTEGER' { - return String.valueOf(Integer.valueOf(input)); - } - when 'DOUBLE', 'CURRENCY', 'PERCENT' { - return String.valueOf(Double.valueOf(input)); - } - when else { - return String.escapeSingleQuotes(input); - } - } - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } -} diff --git a/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls b/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls deleted file mode 100644 index 3369864..0000000 --- a/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls +++ /dev/null @@ -1,46 +0,0 @@ -@isTest -public with sharing class MobileMapLayersServiceTest { - public static ServiceResource sr; - - static { - sr = new ServiceResource( - RelatedRecordId = System.UserInfo.getUserId(), - Name = 'Resource Name', - LastKnownLatitude = 10.000000000000000, - LastKnownLongitude = 10.000000000000000, - ResourceType = 'T', - IsActive = true - ); - insert sr; - } - - @isTest - static void executeFilterQueryTest() { - try { - Map currentFieldFilter = new Map(); - currentFieldFilter.put('type', 'STRING'); - currentFieldFilter.put('value', 'name'); - currentFieldFilter.put('input', 'Resource Name'); - List result = MobileMapLayersService.executeFilterQuery('ServiceResource', currentFieldFilter); - - Assert.areEqual(result[0].id, sr.Id); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void executeFilterQueryInvalidInputTest() { - try { - Map currentFieldFilter = new Map(); - currentFieldFilter.put('type', 'DOUBLE'); - currentFieldFilter.put('value', 'lastknownlatitude'); - currentFieldFilter.put('input', 'text'); - MobileMapLayersService.executeFilterQuery('ServiceResource', currentFieldFilter); - - Assert.fail('Invalid value, should throw an error'); - } catch (Exception e) { - Assert.isTrue(true); - } - } -} diff --git a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css b/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css deleted file mode 100644 index 855b394..0000000 --- a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css +++ /dev/null @@ -1,25 +0,0 @@ -.confirm-modal-container { - background: white; - border-radius: 12px; -} - -button { - height: 48px; - width: 140px; - border-radius: 12px; - font-size: 16px; - font-weight: 600; - line-height: 22px; -} - -.ok-button { - border: none; - color: white; - background-color: #0D7FA8; -} - -.cancel-button { - border: 2px solid #0D7FA8; - color: #0D7FA8; - background-color: white; -} \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html b/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html deleted file mode 100644 index 808abde..0000000 --- a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html +++ /dev/null @@ -1,14 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/jsconfig.json b/FindNearby/force-app/main/default/lwc/jsconfig.json deleted file mode 100644 index a72666d..0000000 --- a/FindNearby/force-app/main/default/lwc/jsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true - }, - "include": ["**/*", "../../../../.sfdx/typings/lwc/**/*.d.ts"], - "paths": { - "c/*": ["*"] - }, - "typeAcquisition": { - "include": ["jest"] - } -} diff --git a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json b/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json deleted file mode 100644 index 6ca3b73..0000000 --- a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "location": { "Latitude": 10, "Longitude": 10 }, - "value": { - "id": "1234", - "title": "marker1", - "firstDetailFieldValue": "field2-1", - "secondDetailFieldValue": "field3-1", - "thirdDetailFieldValue": "field4-1", - "distance": "15 km" - } - } -] diff --git a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json b/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json deleted file mode 100644 index 8254bab..0000000 --- a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - { - "location": { "Latitude": 10, "Longitude": 10 }, - "value": { - "id": "1234", - "title": "marker1", - "firstDetailFieldValue": "field2-1", - "secondDetailFieldValue": "field3-1", - "thirdDetailFieldValue": "field4-1", - "distance": "15 km" - } - }, - { - "location": { "Latitude": 20, "Longitude": 20 }, - "value": { - "id": "5678", - "title": "marker2", - "firstDetailFieldValue": "field2-2", - "secondDetailFieldValue": "field3-2", - "thirdDetailFieldValue": "field4-2", - "distance": "25 km" - } - }, - { - "location": { "Latitude": 10, "Longitude": 10 }, - "value": { - "id": "9123", - "title": "marker3", - "firstDetailFieldValue": "field2-3", - "secondDetailFieldValue": "field3-3", - "thirdDetailFieldValue": "field4-3", - "distance": "35 km" - } - } -] diff --git a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js b/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js deleted file mode 100644 index 91d76f3..0000000 --- a/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js +++ /dev/null @@ -1,215 +0,0 @@ -import { createElement } from 'lwc'; -import LocationsList from 'c/locationsList'; - -let element; -const oneLocation = require('./data/oneLocation.json'); -const threeLocations = require('./data/threeLocations.json'); - -describe('c-locations-list', () => { - beforeEach(() => { - element = createElement('c-locations-list', { - is: LocationsList, - }); - - element.currentObject = { - value: 'WorkOrder', - label: 'Work Order', - plural: 'Work Orders', - iconUrl: '', - color: '', - }; - element.isIos = () => true; - element.setCurrentMarker = jest.fn(); - element.redirectToMarkerDetails = jest.fn(); - element.routeToMarkerLocation = jest.fn(); - element.handleError = jest.fn(console.log); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - element = null; - }); - - it('has correct plural title', async () => { - element.filteredMarkers = threeLocations; - document.body.appendChild(element); - - return Promise.resolve().then(() => { - const title = element.shadowRoot.querySelector('.title-tile'); - expect(title.textContent).toBe('3 Work Orders'); - }); - }); - - it('has correct singular title', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - return Promise.resolve().then(() => { - const title = element.shadowRoot.querySelector('.title-tile'); - expect(title.textContent).toBe('1 Work Order'); - }); - }); - - it('has correct subtitle', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - return Promise.resolve().then(() => { - const tileSub = element.shadowRoot.querySelector('li[data-index="0"] .tile-subtitle'); - expect(tileSub.textContent).toBe('15 km • field2-1'); - }); - }); - - it('has correct number of records', async () => { - element.filteredMarkers = threeLocations; - document.body.appendChild(element); - - return Promise.resolve().then(() => { - const tiles = element.shadowRoot.querySelectorAll('li'); - expect(tiles).toHaveLength(4); - }); - }); - - it('sets current marker when clicked', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - const tile = element.shadowRoot.querySelector('li[data-index="0"]'); - tile.click(); - - return Promise.resolve().then(() => { - expect(element.setCurrentMarker).toHaveBeenCalledWith(0); - }); - }); - - it('shows popover when actions button clicked', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - const popover = element.shadowRoot.querySelector('.popover-container div'); - expect(popover.classList).toContain('popover-hidden'); - const actionsButton = element.shadowRoot.querySelector('.actions-button button'); - actionsButton.click(); - return Promise.resolve().then(() => { - expect(popover.classList).toContain('popover-shown'); - }); - }); - - it('triggers redirectToMarkerDetails when view clicked', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - const action = element.shadowRoot.querySelectorAll('.action-item')[0]; - action.click(); - return Promise.resolve().then(() => { - expect(element.redirectToMarkerDetails).toHaveBeenCalled(); - }); - }); - - it('triggers routeToMarkerLocation when route clicked', async () => { - element.filteredMarkers = threeLocations; - document.body.appendChild(element); - - const action = element.shadowRoot.querySelectorAll('.action-item')[1]; - action.click(); - return Promise.resolve().then(() => { - expect(element.routeToMarkerLocation).toHaveBeenCalled(); - }); - }); - - it('opens list on drag up', async () => { - element.filteredMarkers = threeLocations; - document.body.appendChild(element); - - const mainTemplate = element.shadowRoot.querySelector('.main-container'); - const header = element.shadowRoot.querySelector('.header'); - - const eStart = new Event('touchstart'); - const eMove = new Event('touchmove'); - const eEnd = new Event('touchend'); - const point1 = { x: 0, y: 0 }; - const point2 = { x: 0, y: 10 }; - eStart.touches = [{ target: header, clientX: point1.x, clientY: point1.y }]; - eMove.touches = [{ target: header, clientX: point2.x, clientY: point2.y }]; - header.dispatchEvent(eStart); - header.dispatchEvent(eMove); - header.dispatchEvent(eEnd); - - return Promise.resolve().then(() => { - expect(mainTemplate.style.transform).toBe('translateY(calc(85% - 10px)'); - }); - }); - - it('closes list on drag down', async () => { - element.filteredMarkers = threeLocations; - document.body.appendChild(element); - - const mainTemplate = element.shadowRoot.querySelector('.main-container'); - const header = element.shadowRoot.querySelector('.header'); - - const eStart = new Event('touchstart'); - const eMove = new Event('touchmove'); - const eEnd = new Event('touchend'); - const point1 = { x: 0, y: 10 }; - const point2 = { x: 0, y: 0 }; - eStart.touches = [{ target: header, clientX: point1.x, clientY: point1.y }]; - eMove.touches = [{ target: header, clientX: point2.x, clientY: point2.y }]; - header.dispatchEvent(eStart); - header.dispatchEvent(eMove); - header.dispatchEvent(eEnd); - - return Promise.resolve().then(() => { - expect(mainTemplate.style.transform).toBe('translateY(calc((90% - 0px) - -10px))'); - }); - }); - - it('hides popover on mask clicked', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - const actionsButton = element.shadowRoot.querySelector('.actions-button button'); - actionsButton.click(); - return Promise.resolve().then(async () => { - const popover = element.shadowRoot.querySelector('.popover-container div'); - expect(popover.classList).toContain('popover-shown'); - const mask = element.shadowRoot.querySelector('.popover-mask'); - mask.click(); - return Promise.resolve().then(() => { - expect(popover.classList).toContain('popover-hidden'); - }); - }); - }); - - it('hides popover after second click on same button', async () => { - element.filteredMarkers = oneLocation; - document.body.appendChild(element); - - const actionsButton = element.shadowRoot.querySelector('.actions-button button'); - actionsButton.click(); - return Promise.resolve().then(async () => { - const popover = element.shadowRoot.querySelector('.popover-container div'); - expect(popover.classList).toContain('popover-shown'); - actionsButton.click(); - return Promise.resolve().then(() => { - expect(popover.classList).toContain('popover-hidden'); - }); - }); - }); - - it('sets paddingBottom correctly when using iOS devices', async () => { - element.filteredMarkers = oneLocation; - - const navigatorGetter = jest.spyOn(window, 'navigator', 'get'); - navigatorGetter.mockReturnValue({ - userAgent: 'Macintosh', - maxTouchPoints: 2, - platform: '', - }); - document.body.appendChild(element); - - const list = element.shadowRoot.querySelector('.list'); - expect(list.style.paddingBottom).toBe('34px'); - }); -}); diff --git a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css b/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css deleted file mode 100644 index fa3ea4a..0000000 --- a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css +++ /dev/null @@ -1,168 +0,0 @@ -.main-container { - position: relative; - background-color: white; - float: left; - height: 100%; - width: 100%; - border-top-left-radius: 8px; - border-top-right-radius: 8px; - transition: transform .6s; - transform: translateY(85%); - pointer-events: all; - box-shadow: 0px -1px 4px rgb(0 0 0 / 35%); -} - -.grabber { - display: flex; - justify-content: center; - height: 8px; -} - -.header .tile-container { - height: 48px; -} - -.title-tile { - height: 35px; - display: flex; - align-items: center; - justify-content: center; - width: 100%; -} - -.title-tile p { - color: black !important; -} - -.empty-state { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - margin-top: 40px; - padding-bottom: 20px; -} - -.empty-state-text { - padding: 20px 0; - color: #444444; - font-size: 16px; - text-align: center; -} - -.list { - overflow-y: scroll; - background-color: white; -} - -.tile-container { - display: flex; - align-items: center; - justify-content: space-between; - overflow: hidden; - text-overflow: ellipsis; -} - -.slds-item { - padding: 12px 16px; -} - -.icon-and-text { - display: flex; - flex: 1 auto; - width: calc(100% - 44px); -} - -.actions-button { - display: flex; - justify-content: right; - width: 44px; -} - -button { - background: white; - color: #0D7FA8; - border: none; - border-radius: 10px; - height: 44px; - width: 44px; - line-height: 0px; - padding: 0; - margin: 0; -} - -.popover-container { - z-index: 1; - position: absolute; - background-color: white; - color: #0D7FA8; - right: 55px; - pointer-events: all; -} - -.popover-shown { - display: flex; - flex-direction: column; - justify-content: space-between; - overflow: hidden; - box-shadow: 0px 2px rgba(0, 0, 0, 0.16); - border: 1px #C9C9C9 solid; - border-radius: 12px; - - width: 200px; - height: 100px; - transition: all linear 180ms; -} - -.popover-hidden { - display: flex; - flex-direction: column; - justify-content: space-between; - overflow: hidden; - - height: 0; - width: 0; - padding: 0; - transition: all linear 180ms; -} - -.action-item { - display: flex; - flex-direction: row; - align-items: center; - cursor: pointer; - font-size: 16px; - line-height: 22px; - padding: 13px; -} - -.action-icon { - --sds-c-icon-color-foreground-default: #0D7FA8; - margin-right: 8px; -} - -.popover-mask { - height: 100vh; - width: 100vw; - background-color: transparent; - pointer-events: all; - position: absolute; -} - -.list-spinner { - margin-top: 24px; - left: calc(50% - 24px); - position: absolute; - animation: spin 2s linear infinite; - -webkit-animation: spin 2s linear infinite; -} - -@keyframes spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} - -@-webkit-keyframes spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} diff --git a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html b/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html deleted file mode 100644 index d89128b..0000000 --- a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html +++ /dev/null @@ -1,88 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js b/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js deleted file mode 100644 index cf7e78c..0000000 --- a/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js +++ /dev/null @@ -1,285 +0,0 @@ -import { createElement } from 'lwc'; -import MapFilters from 'c/mapFilters'; - -let element; - -let objectFilterButton; -let objectSheet; -let objectRadio; -let xButtonObj; - -let fieldFilterButton; -let fieldFilterSheet; -let xButtonFieldFilter; -let inputField; -let showResultsButton; - -let fieldsListSheet; -let fieldListRadio; -let xButtonFieldsList; - -describe('c-map-filters', () => { - beforeEach(() => { - element = createElement('c-map-filters', { - is: MapFilters, - }); - - element.mapObjects = [ - { - value: 'ServiceAppointment', - label: 'Service Appointment', - latField: 'Latitude', - longField: 'Longitude', - titleField: 'AppointmentNumber', - firstDetailField: 'Subject', - secondDetailField: 'Status', - thirdDetailField: 'DurationInMinutes', - fields: [ - { value: 'a', label: 'A', type: 'String' }, - { value: 'b', label: 'B', type: 'Boolean' }, - { value: 'c', label: 'C', type: 'DateTime' }, - ], - }, - { - value: 'Asset', - label: 'Asset', - latField: 'Latitude', - longField: 'Longitude', - titleField: 'Name', - firstDetailField: 'Quantity', - secondDetailField: 'Address', - thirdDetailField: 'Price', - }, - ]; - element.currentObjectFilter = { - value: 'ServiceAppointment', - label: 'Service Appointment', - plural: '', - iconUrl: '', - color: '', - }; - element.currentFieldFilter = { - isActive: true, - field: { value: '', label: '', type: '', input: '' }, - }; - element.setCurrentObjectFilter = jest.fn(); - element.setCurrentFieldFilter = jest.fn(); - element.handleError = jest.fn(console.log); - - document.body.appendChild(element); - - objectFilterButton = element.shadowRoot.querySelectorAll('.filter-button')[0]; - objectSheet = element.shadowRoot.querySelector('.object-filter-bottom-sheet'); - objectRadio = element.shadowRoot.querySelector( - '.object-filter-bottom-sheet lightning-radio-group' - ); - xButtonObj = element.shadowRoot.querySelector('.object-filter-bottom-sheet .x'); - - fieldFilterButton = element.shadowRoot.querySelectorAll('.filter-button')[1]; - fieldFilterSheet = element.shadowRoot.querySelector('.field-filter-bottom-sheet'); - xButtonFieldFilter = element.shadowRoot.querySelector('.field-filter-bottom-sheet .x'); - showResultsButton = element.shadowRoot.querySelector('.filters-sheet-show-results'); - - fieldsListSheet = element.shadowRoot.querySelector('.fields-list-bottom-sheet'); - fieldListRadio = element.shadowRoot.querySelector( - '.fields-list-bottom-sheet lightning-radio-group' - ); - xButtonFieldsList = element.shadowRoot.querySelector('.fields-list-bottom-sheet .x'); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('has object filter filled', async () => { - return Promise.resolve().then(() => { - const currentObject = objectFilterButton.querySelector('.button-text-main'); - expect(currentObject.textContent).toBe('Service Appointment'); - }); - }); - - it('has field filter empty', () => { - const currentField = fieldFilterButton.querySelector('.button-text-main'); - expect(currentField.textContent).toBe('None'); - }); - - it('has correct number of options in objects list', () => { - expect(objectRadio.options).toHaveLength(2); - }); - - it('opens object sheet when object filter button clicked', async () => { - expect(objectSheet.classList).not.toContain('pt-page-moveToTop'); - - objectFilterButton.click(); - return Promise.resolve().then(() => { - expect(objectSheet.classList).toContain('pt-page-moveToTop'); - }); - }); - - it('calls setCurrentObjectFilter when changing object filter', async () => { - objectFilterButton.click(); - return Promise.resolve().then(async () => { - objectRadio.value = 'Asset'; - objectRadio.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - expect(element.setCurrentObjectFilter).toHaveBeenCalledWith(element.mapObjects[1]); - }); - }); - }); - - it('opens field filter sheet when field filter button clicked', async () => { - expect(fieldFilterSheet.classList).not.toContain('pt-page-moveToTop'); - - fieldFilterButton.click(); - return Promise.resolve().then(() => { - expect(fieldFilterSheet.classList).toContain('pt-page-moveToTop'); - }); - }); - - it('opens fields list sheet when field combo clicked', async () => { - expect(fieldsListSheet.classList).not.toContain('pt-page-moveToTop'); - - const fieldCombo = element.shadowRoot.querySelector('.field-combo-cover'); - fieldCombo.click(); - return Promise.resolve().then(() => { - expect(fieldsListSheet.classList).toContain('pt-page-moveToTop'); - }); - }); - - it('closes objects sheet on x click', async () => { - objectFilterButton.click(); - return Promise.resolve().then(async () => { - expect(objectSheet.classList).toContain('pt-page-moveToTop'); - xButtonObj.click(); - return Promise.resolve().then(() => { - expect(objectSheet.classList).not.toContain('pt-page-moveToTop'); - }); - }); - }); - - it('closes field filter sheet on x click', async () => { - fieldFilterButton.click(); - return Promise.resolve().then(async () => { - expect(fieldFilterSheet.classList).toContain('pt-page-moveToTop'); - xButtonFieldFilter.click(); - return Promise.resolve().then(() => { - expect(fieldFilterSheet.classList).not.toContain('pt-page-moveToTop'); - }); - }); - }); - - it('closes fields list sheet on x click', async () => { - const fieldCombo = element.shadowRoot.querySelector('.field-combo-cover'); - fieldCombo.click(); - return Promise.resolve().then(async () => { - expect(fieldsListSheet.classList).toContain('pt-page-moveToTop'); - xButtonFieldsList.click(); - return Promise.resolve().then(() => { - expect(fieldsListSheet.classList).not.toContain('pt-page-moveToTop'); - }); - }); - }); - - describe('c-map-filters field filter', () => { - describe('basic field filter', () => { - beforeEach(async () => { - // open the fields list and select the string field - fieldListRadio.value = 'a'; - fieldListRadio.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - inputField = element.shadowRoot.querySelector('.field-input-container lightning-input'); - }); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('shows correct input component when field selected', async () => { - expect(inputField).not.toBeNull(); - expect(inputField.type).toBe('String'); - }); - - it('enables show results button on input change', async () => { - inputField.value = 'text'; - inputField.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - expect(showResultsButton.disabled).toBe(false); - }); - }); - - it('changes field filter button to active when show results clicked', async () => { - inputField.value = 'text'; - inputField.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - showResultsButton.click(); - return Promise.resolve().then(() => { - const fieldFilterButton = element.shadowRoot.querySelectorAll('.filter-button')[1]; - expect(fieldFilterButton.classList).toContain('active-button'); - }); - }); - }); - }); - - describe('boolean field filter', () => { - beforeEach(async () => { - // open the fields list and select the boolean field - fieldListRadio.value = 'b'; - fieldListRadio.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - inputField = element.shadowRoot.querySelector('.field-input-container lightning-input'); - }); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('shows correct input component when field selected', async () => { - expect(inputField).not.toBeNull(); - expect(inputField.type).toBe('toggle'); - }); - - it('enables show results button even when nothing changes (boolean field can be left unchanged)', async () => { - expect(showResultsButton.disabled).toBe(false); - }); - - it('enables show results button also when toggle changes', async () => { - inputField.checked = true; - inputField.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - expect(inputField.checked).toBe(true); - expect(showResultsButton.disabled).toBe(false); - }); - }); - }); - - describe('date field filter', () => { - beforeEach(async () => { - // open the fields list and select the dateTime field - fieldListRadio.value = 'c'; - fieldListRadio.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - inputField = element.shadowRoot.querySelector('.field-input-container lightning-input'); - }); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('shows correct input component when field selected', async () => { - expect(inputField).not.toBeNull(); - expect(inputField.type).toBe('Date'); - }); - }); - }); -}); diff --git a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css b/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css deleted file mode 100644 index b31070a..0000000 --- a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css +++ /dev/null @@ -1,221 +0,0 @@ -.buttons-container { - background: white; - display: flex; - overflow-x: scroll; - padding: 8px 16px; - width: 100%; -} - -.button { - border: 2px #0D7FA8 solid; - border-radius: 10px; - padding: 8px 16px; - margin-bottom: 8px; - font-size: 14px; - line-height: 18px; - letter-spacing: 0px; - font-weight: 500; - white-space: nowrap; -} - -.filter-button { - display: flex; - flex-direction: row; - align-items: center; - margin: 0; - margin-right: 8px; -} - -.active-button { - color: white; - background-color: #0D7FA8; -} - -.inactive-button { - background: white; - color: #0D7FA8; -} - -.active-button .icon { - --sds-c-icon-color-foreground-default: white; - margin-left: 8px; -} - -.inactive-button .icon { - --sds-c-icon-color-foreground-default: #0D7FA8; - margin-left: 8px; -} - -.button-text { - display: flex; - flex-direction: column; - align-items: start; -} - -.button-text-title { - font-size: 12px; - line-height: 14px; - margin-bottom: 2px; -} - -.button-text-main { - font-size: 16px; - line-height: 22px; -} - -/* bottom sheets */ - -.bottom-sheet { - position: absolute; - display: flex; - flex-direction: column; - background-color: white; - width: 100%; - overflow-x: hidden; - overflow-y: hidden; - top: 100vh; - padding-bottom: 50px; - max-height: 85vh; - border-top-left-radius: 8px; - border-top-right-radius: 8px; -} - -.shadow { - box-shadow: 0px -1px 4px rgb(0 0 0 / 35%); -} - -.grabber { - display: flex; - justify-content: center; - height: 8px; -} - -.sheet-title-and-buttons { - display: flex; - justify-content: space-between; -} - -.back { - background: none; - border: none; - cursor: none; - width: 48px; - padding: 0; -} - -.x { - cursor: pointer; - background: none; - border: none; - padding: 0; - width: 48px; -} - -.x-icon { - --sds-c-icon-color-foreground-default: #0D7FA8; - padding: 0 13px; -} - -.sheet-content { - display: flex; - flex-direction: column; - margin: 16px; - overflow-y: scroll; -} - -.sheet-footer { - display: flex; - flex-direction: column; - margin: 16px; -} - -.filters-sheet-title { - display: flex; - justify-content: center; - align-items: center; - font-size: 18px; - line-height: 21px; - height: 48px; - text-align: center; -} - -.field-combo-container { - position: relative; -} - -.field-combo-cover { - position: absolute; - top: 0; -} - -.field-input-container { - margin-top: 16px; -} - -.boolean-input-frame { - border: 1px solid #d4d4d4; - border-radius: 12px; - padding: 12px; -} - -select { - height: 48px; -} - -.filters-sheet-show-results, .filters-sheet-clear { - height: 48px; - font-size: 16px; - line-height: 22px; -} - -.filters-sheet-show-results:enabled { - background: #0D7FA8; - color: white; - border: none; -} - -.filters-sheet-show-results[disabled], .filters-sheet-show-results:disabled { - background: #EEEEEE; - color: #9FAAB5; - border: none; -} - -.filters-sheet-clear:enabled { - background: white; - color: #0D7FA8; - border: 2px #0D7FA8 solid; -} - -.filters-sheet-clear[disabled], .filters-sheet-clear:disabled { - background: white; - color: #9FAAB5; - border: 2px #E4E4E8 solid; -} - -/* animations top-bottom */ - -.pt-page-moveToTop { - -webkit-animation: moveToTop .4s ease both; - animation: moveToTop .4s ease both; -} - -.pt-page-moveFromTop { - -webkit-animation: moveFromTop .4s ease both; - animation: moveFromTop .4s ease both; -} - -@-webkit-keyframes moveToTop { - from { } - to { -webkit-transform: translateY(-100%); } -} -@keyframes moveToTop { - from { } - to { -webkit-transform: translateY(-100%); transform: translateY(-100%); } -} - -@-webkit-keyframes moveFromTop { - from { -webkit-transform: translateY(-100%); } -} -@keyframes moveFromTop { - from { -webkit-transform: translateY(-100%); transform: translateY(-100%); } -} \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html b/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html deleted file mode 100644 index d8770d8..0000000 --- a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html +++ /dev/null @@ -1,183 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css b/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css deleted file mode 100644 index 67e00cb..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css +++ /dev/null @@ -1,199 +0,0 @@ -.main-container { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - position: relative; - height: 100%; - width: 100%; -} - -.locator { - display: flex; - justify-content: center; - align-items: center; - height: 48px; - width: 48px; - background-color: white; - border-radius: 100px; - top: 90px; - right: 16px; - position: absolute; - z-index: 1; - box-shadow: 0px 4px rgba(0, 0, 0, 0.25); -} - -lightning-map { - height: 100%; - width: 100%; - padding: 0; - margin: 0; -} - -.buttons { - margin-top: 10px; - margin-left: 0; -} - -/* cards */ - -.cards { - position: absolute; - display: flex; - flex-direction: column; - align-items: center; - justify-content: space-between; - background-color: white; - border: 2px #9FAAB5 solid; - border-radius: 10px; - width: 360px; - top: calc(50% + 10px); - height: fit-content; - box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.16); -} - -.card-top-arrow { - height: 16px; - width: 16px; - background-color: white; - position: absolute; - left: 50%; - top: -1px; - border-left: 2px #9FAAB5 solid; - border-top: 2px #9FAAB5 solid; - transform: translate(-50%, -50%) rotate(45deg); -} - -.card-header { - display: flex; - justify-content: space-between; - width: 100%; - height: 48px; -} - -.card-title { - padding: 16px; - padding-bottom: 16px; - display: flex; - align-items: center; -} - -.title-text { - color: #181818; - font-size: 20px; - font-weight: 500; - margin-left: 8px; -} - -.x { - cursor: pointer; - background: none; - border: none; - padding: 16px; -} - -.x-icon { - --sds-c-icon-color-foreground-default: #0D7FA8; -} - -.card-main { - padding: 16px; - padding-top: 0; - display: flex; - flex-direction: column; - align-items: flex-start; - justify-content: space-between; - width: 100%; - height: fit-content; - text-align: left; -} - -.card-details { - display: flex; - flex-direction: column; - width: 100%; - font-size: 14px; -} - -.card-details-row { - display: flex; - flex-direction: row; - width: 100%; -} - -.first-row { - margin-bottom: 12px; -} - -.card-details-text { - margin-right: 30px; - flex: 1; - color: black; -} - -.card-secondary-title { - color: #444444; - font-size: 14px; -} - -.card-secondary-text { - display: -webkit-box; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical; - overflow: hidden; -} - -.card-buttons-container { - display: flex; - flex-direction: row; - justify-content: space-between; - margin-top: 10px; - width: 100%; -} - -.card-buttons-container button { - background: white; - color: #0D7FA8; - border: 1.5px #0D7FA8 solid; - height: 44px; - border-radius: 10px; - padding: 8px 12px; - font-size: 14px; - line-height: 18px; - letter-spacing: 0px; - font-weight: 500; - width: 160px; -} - -.card-primary-button { - margin: 0; -} - -.slds-button__icon { - margin: 0; -} - -.card-footer { - width: 100%; - background: #EEEEEE; - color: #444444; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 16px 0; - height: 50px; - border-radius: 0 0 10px 10px; - font-size: 16px; -} - -.card-footer-arrow { - border: none; - background: none; - height: 48px; - width: 48px; -} - -.arrow-icon { - --sds-c-icon-color-foreground-default: #444444; -} \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html b/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html deleted file mode 100644 index 35a4ac6..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html +++ /dev/null @@ -1,85 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json b/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json deleted file mode 100644 index 201e864..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "results": [ - { - "statusCode": 200, - "result": { - "apiName": "ServiceAppointment", - "associateEntityType": null, - "associateParentEntity": null, - "childRelationships": [ - { - "childObjectApiName": "ActivityHistory", - "fieldName": "WhatId", - "junctionIdListNames": [], - "junctionReferenceTo": [], - "relationshipName": "ActivityHistories" - } - ], - "createable": true, - "custom": false, - "defaultRecordTypeId": "012000000000000AAA", - "deletable": true, - "dependentFields": {}, - "feedEnabled": false, - "fields": { - "AccountId": { - "apiName": "AccountId", - "calculated": false, - "compound": false, - "compoundComponentName": null, - "compoundFieldName": null, - "controllerName": null, - "controllingFields": [], - "createable": false, - "custom": false, - "dataType": "Reference", - "extraTypeInfo": null, - "filterable": true, - "filteredLookupInfo": null, - "highScaleNumber": false, - "htmlFormatted": false, - "inlineHelpText": null, - "label": "Account ID", - "length": 18, - "nameField": false, - "polymorphicForeignKey": false, - "precision": 0, - "reference": true, - "referenceTargetField": null, - "referenceToInfos": [ - { - "apiName": "Account", - "nameFields": ["Name"] - } - ], - "relationshipName": "Account", - "required": false, - "scale": 0, - "searchPrefilterable": true, - "sortable": true, - "unique": false, - "updateable": false - } - }, - "keyPrefix": "08p", - "label": "Service Appointment", - "labelPlural": "Service Appointments", - "layoutable": true, - "mruEnabled": true, - "nameFields": ["AppointmentNumber"], - "queryable": true, - "recordTypeInfos": { - "012000000000000AAA": { - "available": true, - "defaultRecordTypeMapping": true, - "master": true, - "name": "Master", - "recordTypeId": "012000000000000AAA" - } - }, - "searchable": true, - "themeInfo": { - "color": "5867E8", - "iconUrl": "https://inbalorg-dev-ed.develop.my.salesforce.com/img/icon/t4v35/standard/service_appointment_120.png" - }, - "updateable": true - } - }, - { - "statusCode": 200, - "result": { - "apiName": "ServiceResource", - "associateEntityType": null, - "associateParentEntity": null, - "childRelationships": [ - { - "childObjectApiName": "ActivityHistory", - "fieldName": "WhatId", - "junctionIdListNames": [], - "junctionReferenceTo": [], - "relationshipName": "ActivityHistories" - } - ], - "createable": true, - "custom": false, - "defaultRecordTypeId": "012000000000000AAA", - "deletable": false, - "dependentFields": {}, - "feedEnabled": false, - "fields": { - "AccountId": { - "apiName": "AccountId", - "calculated": false, - "compound": false, - "compoundComponentName": null, - "compoundFieldName": null, - "controllerName": null, - "controllingFields": [], - "createable": true, - "custom": false, - "dataType": "Reference", - "extraTypeInfo": null, - "filterable": true, - "filteredLookupInfo": null, - "highScaleNumber": false, - "htmlFormatted": false, - "inlineHelpText": null, - "label": "Account ID", - "length": 18, - "nameField": false, - "polymorphicForeignKey": false, - "precision": 0, - "reference": true, - "referenceTargetField": null, - "referenceToInfos": [ - { - "apiName": "Account", - "nameFields": ["Name"] - } - ], - "relationshipName": "Account", - "required": false, - "scale": 0, - "searchPrefilterable": true, - "sortable": true, - "unique": false, - "updateable": true - } - }, - "keyPrefix": "0Hn", - "label": "Service Resource", - "labelPlural": "Service Resources", - "layoutable": true, - "mruEnabled": true, - "nameFields": ["Name"], - "queryable": true, - "recordTypeInfos": { - "012000000000000AAA": { - "available": true, - "defaultRecordTypeMapping": true, - "master": true, - "name": "Master", - "recordTypeId": "012000000000000AAA" - } - }, - "searchable": true, - "themeInfo": { - "color": "5867E8", - "iconUrl": "https://inbalorg-dev-ed.develop.my.salesforce.com/img/icon/t4v35/standard/service_resource_120.png" - }, - "updateable": true - } - } - ] -} diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js b/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js deleted file mode 100644 index f993564..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js +++ /dev/null @@ -1,56 +0,0 @@ -import { createElement } from 'lwc'; -import MobileMapLayersMain from 'c/mobileMapLayersMain'; -import { graphql } from 'lightning/uiGraphQLApi'; -import { getObjectInfos } from 'lightning/uiObjectInfoApi'; - -let element; -const getObjectInfosResponse = require('./data/getObjectInfosResponse.json'); - -describe('c-mobile-map-layers-main', () => { - beforeEach(() => { - element = createElement('c-mobile-map-layers-main', { - is: MobileMapLayersMain, - }); - - document.body.appendChild(element); - - graphql.emit({ - uiapi: { - query: { - ServiceResource: { - edges: [ - { - node: { - Id: '0HnB00000002TLwKAM', - LastKnownLatitude: { - value: 32.4, - }, - LastKnownLongitude: { - value: 34.9, - }, - }, - }, - ], - }, - }, - }, - }); - - getObjectInfos.emit(getObjectInfosResponse); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('should contain all 3 components', () => { - const mapFilters = element.shadowRoot.querySelector('c-map-filters'); - expect(mapFilters).not.toBeNull(); - const mobileMap = element.shadowRoot.querySelector('c-mobile-map'); - expect(mobileMap).not.toBeNull(); - const locationsList = element.shadowRoot.querySelector('c-locations-list'); - expect(locationsList).not.toBeNull(); - }); -}); diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js b/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js deleted file mode 100644 index b3dd491..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js +++ /dev/null @@ -1,23 +0,0 @@ -export const config = { - mapObjects: [ - { - value: 'ServiceAppointment', - latField: 'Latitude', - longField: 'Longitude', - titleField: 'AppointmentNumber', - firstDetailField: 'Subject', - secondDetailField: 'Status', - thirdDetailField: 'DurationInMinutes', - }, - { - value: 'ServiceResource', - latField: 'LastKnownLatitude', - longField: 'LastKnownLongitude', - titleField: 'Name', - firstDetailField: 'ResourceType', - secondDetailField: 'IsActive', - thirdDetailField: 'Description', - }, - ], - distanceUnit: 'km', // Preferred distance unit: km or mi -}; diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css b/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css deleted file mode 100644 index daaf336..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css +++ /dev/null @@ -1,32 +0,0 @@ -.find-nearby-main-container { - position: relative; - width: 100%; - height: 100vh; - overflow: hidden; - background-color: white; -} - -.page { - position: absolute; - width: 100%; -} - -.filters-container { - position: absolute; - z-index: 3; - width: 100%; -} - -.map-container { - display: inline-block; - height: calc(85% + 70px); - padding: 0; - margin: 0; -} - -.locations-list-container { - z-index: 2; - height: 100%; - width: 100%; - pointer-events: none; -} diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html b/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html deleted file mode 100644 index 299f834..0000000 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html +++ /dev/null @@ -1,36 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js b/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js deleted file mode 100644 index 6c7abe3..0000000 --- a/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js +++ /dev/null @@ -1,34 +0,0 @@ -import { createElement } from 'lwc'; -import ObjectIcon from 'c/objectIcon'; - -describe('c-object-icon', () => { - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('should produce component with the provided values', () => { - const element = createElement('c-object-icon', { - is: ObjectIcon, - }); - - element.iconUrl = 'https://moble-map-layers-test.com'; - element.color = '#123456'; - document.body.appendChild(element); - - const img = element.shadowRoot.querySelector('img'); - expect(img.src).toBe('https://moble-map-layers-test.com/'); - }); - - it('should produce component with the default icon', () => { - const element = createElement('c-object-icon', { - is: ObjectIcon, - }); - - document.body.appendChild(element); - - const icon = element.shadowRoot.querySelector('lightning-icon'); - expect(icon.iconName).toBe('standard:address'); - }); -}); diff --git a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css b/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css deleted file mode 100644 index 5330e40..0000000 --- a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css +++ /dev/null @@ -1,10 +0,0 @@ -.lightning-icon-container { - display: flex; - align-items: flex-start; -} - -.icon { - height: 24px; - width: 24px; - border-radius: 4px; -} \ No newline at end of file diff --git a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html b/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html deleted file mode 100644 index e51c4fb..0000000 --- a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html +++ /dev/null @@ -1,10 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html b/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html deleted file mode 100644 index 705085b..0000000 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html b/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html deleted file mode 100644 index 705085b..0000000 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html b/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html deleted file mode 100644 index 705085b..0000000 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/FindNearby/jest.config.js b/FindNearby/jest.config.js deleted file mode 100644 index 1cf5545..0000000 --- a/FindNearby/jest.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const { jestConfig } = require('@salesforce/sfdx-lwc-jest/config'); - -module.exports = { - ...jestConfig, - modulePathIgnorePatterns: ['/.localdevserver'], - moduleNameMapper: { - '^lightning/modal$': '/force-app/test/jest-mocks/lightning/modal', - '^lightning/modalBody$': '/force-app/test/jest-mocks/lightning/modalBody', - '^lightning/modalFooter$': '/force-app/test/jest-mocks/lightning/modalFooter', - '^lightning/modalHeader$': '/force-app/test/jest-mocks/lightning/modalHeader', - '^lightning/uiGraphQLApi$': '/force-app/test/jest-mocks/lightning/uiGraphQLApi', - }, -}; diff --git a/FindNearby/package-lock.json b/FindNearby/package-lock.json deleted file mode 100644 index 6f54bb3..0000000 --- a/FindNearby/package-lock.json +++ /dev/null @@ -1,13512 +0,0 @@ -{ - "name": "salesforce-app", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "salesforce-app", - "version": "1.0.0", - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.1.3", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "husky": "^8.0.2", - "lint-staged": "^13.1.0", - "prettier": "^2.8.2", - "prettier-plugin-apex": "^1.13.0" - }, - "engines": { - "node": ">=16.13.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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" - } - }, - "node_modules/@babel/code-frame/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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/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 - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "dependencies": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/eslint-parser/node_modules/eslint-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/@babel/eslint-parser/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@babel/eslint-parser/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/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", - "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", - "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-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, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", - "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@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", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - } - }, - "node_modules/@eslint/eslintrc/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, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@eslint/eslintrc/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/@eslint/eslintrc/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@eslint/eslintrc/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, - "peer": true - }, - "node_modules/@eslint/eslintrc/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, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "peer": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "peer": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", - "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", - "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", - "dev": true, - "dependencies": { - "@jest/console": "^29.3.1", - "@jest/reporters": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.2.0", - "jest-config": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-resolve-dependencies": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "jest-watcher": "^29.3.1", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", - "dev": true, - "dependencies": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.2.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", - "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", - "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", - "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", - "dev": true, - "dependencies": { - "@jest/console": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", - "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform/node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true - }, - "node_modules/@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@lwc/babel-plugin-component": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/babel-plugin-component/-/babel-plugin-component-2.23.2.tgz", - "integrity": "sha512-hO5PKvq8jD5uYHDnOBnRhwNDHlPtUEXVL4VN8eGfXQJNue51mrLwQGCACs5Mme+X2aY302nsyGFiZMuS5Y28Tw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "line-column": "~1.0.2" - }, - "peerDependencies": { - "@babel/core": "^7" - } - }, - "node_modules/@lwc/compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/compiler/-/compiler-2.23.2.tgz", - "integrity": "sha512-Myj24zhdgJZ6mM95/qEZFkV5Qv2P5Ujd7EKlOmCg1WLmY29O2hHkzrtlLz3+xPo3JmYtCbvbGxsDU1Gr/fL4Cw==", - "dev": true, - "dependencies": { - "@babel/core": "~7.18.13", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.18.9", - "@lwc/babel-plugin-component": "2.23.2", - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "@lwc/style-compiler": "2.23.2", - "@lwc/template-compiler": "2.23.2" - } - }, - "node_modules/@lwc/engine-dom": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/engine-dom/-/engine-dom-2.23.2.tgz", - "integrity": "sha512-XEfn3boHv7RLWevOMwKawxFCrs9btbvyi5XaFsclwkrqEBZa+k5px5vyYEsCJozrvz2ddHkhcuZpG7jITPwNKQ==", - "dev": true - }, - "node_modules/@lwc/engine-server": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/@lwc/engine-server/-/engine-server-2.32.0.tgz", - "integrity": "sha512-mzdDH9Xlbv5280u3OyamSAmGjW0BH+/fP3yD3FYVKhkR0yhzWeum//bo8c2yPnlXHYfnTYLJfJN5Rx9Kf0zasg==", - "dev": true, - "peer": true - }, - "node_modules/@lwc/errors": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/errors/-/errors-2.23.2.tgz", - "integrity": "sha512-rgqdd6aQja4T8ysmt2L1o9Aq+VWCtifcJv1FB/hNs1g2KloxZyZkHtK6Y+Tr4IXdgiH5LaT0L3tiQA3X4vssoQ==", - "dev": true - }, - "node_modules/@lwc/eslint-plugin-lwc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.5.0.tgz", - "integrity": "sha512-LiJujIbI87Eoe+iszTXEDxudhGCLsHeNArjb9kqxKotcggqYllVwtBCS2yswyhJ39uSH4BCkeSiXmSrMcs7Jow==", - "dev": true, - "dependencies": { - "minimatch": "^5.1.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": "^7", - "eslint": "^7 || ^8" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lwc/jest-preset": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-preset/-/jest-preset-11.5.3.tgz", - "integrity": "sha512-5Pz33lSbHvYCXm1LiR9Zl+KAKo3pvvrEJvg692SsJZ/3D6V04LJe4Ft0AALvVr5GznPQUPOubcvTU+aJS/0xdQ==", - "dev": true, - "dependencies": { - "@lwc/jest-resolver": "11.5.3", - "@lwc/jest-serializer": "11.5.3", - "@lwc/jest-transformer": "11.5.3" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "@lwc/engine-dom": "*", - "@lwc/engine-server": ">=2", - "@lwc/synthetic-shadow": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-resolver": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-resolver/-/jest-resolver-11.5.3.tgz", - "integrity": "sha512-rII7woNGft7MpCttMK0BO3Z0q/rR50fPupHJYsrIMCR6segNHte9XR9JVcU205l8E+qhmfk9il6i7W+AMakTOg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-serializer": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-serializer/-/jest-serializer-11.5.3.tgz", - "integrity": "sha512-k5Y/UoBFcrTZC5e8uHdTNdScGQ1aOfr/DwN9oZXm8/AE1Tu1ZStxHmK9Sh8iMuiUh+yi8MBhg9Z/U2HEdHcV9Q==", - "dev": true, - "dependencies": { - "pretty-format": "^29.0.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-transformer": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-transformer/-/jest-transformer-11.5.3.tgz", - "integrity": "sha512-WCdKrR+Z6jB7LF+oUUouGcW2w8zplxGMdDfoxIfVM4cJHE9HDANpR6vxwQTDsEXuwMWe1Ytcy6R8Ax81Y0bUGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.18.13", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/module-resolver": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/module-resolver/-/module-resolver-2.23.2.tgz", - "integrity": "sha512-/0EGjzHIgEBu6Ot+wZpb3pzyP/qLIyCVGKQq0D1alFnBo3dCFVGMA1w0gCGRNn0TElq8fMukUcjr7ST7F/laUg==", - "dev": true, - "dependencies": { - "resolve": "~1.22.1" - } - }, - "node_modules/@lwc/module-resolver/node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/@lwc/shared": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/shared/-/shared-2.23.2.tgz", - "integrity": "sha512-LgPs0RTaNRs382/+G1UpDDfh4F4NDiXhIFvUOJhtastciBJndXKdEN27aFdAVxrs+yCt9fCM5wgKVhyZSiGBrQ==", - "dev": true - }, - "node_modules/@lwc/style-compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/style-compiler/-/style-compiler-2.23.2.tgz", - "integrity": "sha512-cNKn18CRzv1IXDQ+tboUGB/VU8ubmnZ3kpGDyPk1VBUWaUdU9HhSXsl+4z/l8UdvNEEYnR3XqQYVsEnpMFO20w==", - "dev": true, - "dependencies": { - "@lwc/shared": "2.23.2", - "postcss": "~8.4.16", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.7" - } - }, - "node_modules/@lwc/synthetic-shadow": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/synthetic-shadow/-/synthetic-shadow-2.23.2.tgz", - "integrity": "sha512-AJk5PFvNtNWHaVVQ4ePlr8+301SmekSF5fd+MifvT3p8sgNCmE7ZlCIsUkgD2qLu/xXLum4451BWBMPgC75r1Q==", - "dev": true - }, - "node_modules/@lwc/template-compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/template-compiler/-/template-compiler-2.23.2.tgz", - "integrity": "sha512-on6kRYprRfgKxXUDZNBjvLqp5WFQAOV6HTBx6PqW5j0s18Bz0qlF5w2VAv/2ZSfUtzK9544OC3wku4LZP43B2g==", - "dev": true, - "dependencies": { - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "acorn": "~8.8.0", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "node_modules/@lwc/template-compiler/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/@lwc/wire-service": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/wire-service/-/wire-service-2.23.2.tgz", - "integrity": "sha512-by+Uo6mseygZUUv7fdlcjU8FwsXKPvfZOMEf1PXP/iYdhSYAechV4LnrAYgGoGwduRr97860PBw6tp2Bb74FQw==", - "dev": true - }, - "node_modules/@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true - }, - "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, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", - "dev": true, - "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "node_modules/@salesforce/eslint-config-lwc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.3.3.tgz", - "integrity": "sha512-AZyBta7Y9N2IcJ4LbmIXSQzUoPoZ2cvoi75mqS+9QgUJfB7Il/vRj6NlflSOG14gkA4dmxoT7R6siGj2AYQ+PQ==", - "dev": true, - "dependencies": { - "@babel/core": "~7.18.5", - "@babel/eslint-parser": "~7.18.2", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@lwc/eslint-plugin-lwc": "^1.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "eslint": "^7 || ^8", - "eslint-plugin-import": "*", - "eslint-plugin-jest": "*" - } - }, - "node_modules/@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz", - "integrity": "sha512-7HfwSBKTHQZQboLoEhkBY7bYR9wTaT+G5jHXGlq8y31hEnNhJXRZ+RERDEwDm1jYa2SV9lE8nMNr0/8EKIGjlQ==", - "dev": true, - "dependencies": { - "eslint-plugin-compat": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz", - "integrity": "sha512-zk0PKXAcHKHepAG2EOSWlkOTxQM0Aw1CT6+MUxJcM42fCDwH/yPPpGkG3CWtRfmVViODGOwU9ywU2wlkAYcvUQ==", - "dev": true, - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.1.3.tgz", - "integrity": "sha512-5UCnYC299rI+S7+ES87ZhpcycwnYXmpSy3TpMX+mbgFqrWnMJ62MRNssx2sb+VBQ7/j3T/s/pVlkJyRfZN5Kww==", - "dev": true, - "dependencies": { - "@lwc/compiler": "2.23.2", - "@lwc/engine-dom": "2.23.2", - "@lwc/jest-preset": "^11.5.0", - "@lwc/jest-resolver": "^11.5.0", - "@lwc/jest-serializer": "^11.5.0", - "@lwc/jest-transformer": "^11.5.0", - "@lwc/module-resolver": "2.23.2", - "@lwc/synthetic-shadow": "2.23.2", - "@lwc/wire-service": "2.23.2", - "@salesforce/wire-service-jest-util": "4.0.0", - "chalk": "^4.1.2", - "fast-glob": "^3.2.10", - "jest": "^29.0.1", - "jest-environment-jsdom": "^29.0.1", - "yargs": "~17.5.1" - }, - "bin": { - "lwc-jest": "bin/sfdx-lwc-jest", - "sfdx-lwc-jest": "bin/sfdx-lwc-jest" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@salesforce/wire-service-jest-util": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.0.tgz", - "integrity": "sha512-YJO/bMq5l6IYIZG6bAqYzzbmZMPCzB2GE2TKGLA1U7B9HpmNHZS7DdDcy154P03dfLSgF+tgVYeklh2HRYGk9g==", - "dev": true, - "peerDependencies": { - "@lwc/engine-dom": "^2.0.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - } - }, - "node_modules/@types/jsdom/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "17.0.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", - "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==", - "dev": true - }, - "node_modules/@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.14.tgz", - "integrity": "sha512-9Pj7abXoW1RSTcZaL2Hk6G2XyLMlp5ECdVC/Zf2p/KBjC3srijLGgRAXOBjtFrJoIrvxdTKyKDA14bEcbxBaWw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.44.0.tgz", - "integrity": "sha512-2pKml57KusI0LAhgLKae9kwWeITZ7IsZs77YxyNyIVOwQ1kToyXRaJLl+uDEXzMN5hnobKUOo2gKntK9H1YL8g==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/visitor-keys": "5.44.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.44.0.tgz", - "integrity": "sha512-Tp+zDnHmGk4qKR1l+Y1rBvpjpm5tGXX339eAlRBDg+kgZkz9Bw+pqi4dyseOZMsGuSH69fYfPJCBKBrbPCxYFQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.44.0.tgz", - "integrity": "sha512-M6Jr+RM7M5zeRj2maSfsZK2660HKAJawv4Ud0xT+yauyvgrsHu276VtXlKDFnEmhG+nVEd0fYZNXGoAgxwDWJw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/visitor-keys": "5.44.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.44.0.tgz", - "integrity": "sha512-fMzA8LLQ189gaBjS0MZszw5HBdZgVwxVFShCO3QN+ws3GlPkcy9YuS3U4wkT6su0w+Byjq3mS3uamy9HE4Yfjw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.44.0", - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/typescript-estree": "5.44.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@typescript-eslint/utils/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/@typescript-eslint/utils/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/@typescript-eslint/visitor-keys": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.44.0.tgz", - "integrity": "sha512-a48tLG8/4m62gPFbJ27FxwCOqPKxsb8KC3HkmYoq2As/4YyjQl1jDbRr1s63+g4FS/iIehjmN3L5UjmKva1HzQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.44.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@xml-tools/parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", - "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", - "dev": true, - "dependencies": { - "chevrotain": "7.1.1" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "dependencies": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "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, - "peer": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/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, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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" - } - }, - "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/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, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", - "dev": true, - "dependencies": { - "@mdn/browser-compat-data": "^3.3.14" - } - }, - "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - }, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz", - "integrity": "sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==", - "dev": true, - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", - "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", - "dev": true, - "dependencies": { - "@jest/transform": "^29.3.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", - "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-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, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", - "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "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, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "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 - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001434", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", - "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "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/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, - "engines": { - "node": ">=10" - } - }, - "node_modules/chevrotain": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", - "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", - "dev": true, - "dependencies": { - "regexp-to-ast": "0.5.0" - } - }, - "node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "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, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/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, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "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/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/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "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==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "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 - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "node_modules/core-js": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", - "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "dev": true, - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "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, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "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, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/data-urls": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/data-urls/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/data-urls/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", - "dev": true - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "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 - }, - "node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", - "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "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, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "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, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "peer": true, - "dependencies": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "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-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "dependencies": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - } - }, - "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" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "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": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", - "dev": true, - "dependencies": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" - }, - "engines": { - "node": ">=9.x" - }, - "peerDependencies": { - "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-compat/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/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" - } - }, - "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" - } - }, - "node_modules/eslint-plugin-import/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/eslint-plugin-jest": { - "version": "26.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz", - "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-restricted-globals": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz", - "integrity": "sha512-kwYJALm5KS2QW3Mc1PgObO4V+pTR6RQtRT65L1GQILlEnAhabUQqGAX7/qUjoQR4KZJKehWpBtyDEiDecwmY9A==", - "dev": true - }, - "node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint-scope/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, - "peer": true, - "engines": { - "node": ">=4.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-utils/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-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/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, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/eslint/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true - }, - "node_modules/eslint/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "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, - "peer": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "peer": true, - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/eslint/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, - "peer": true - }, - "node_modules/eslint/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, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "peer": true, - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/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, - "peer": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint/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, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/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, - "peer": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "peer": true, - "dependencies": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "peer": 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, - "peer": 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/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==", - "dev": true - }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "peer": true - }, - "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-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 - }, - "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "peer": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true, - "peer": true - }, - "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "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==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true, - "peer": true - }, - "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, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "peer": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/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, - "peer": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "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 - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "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, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/typicode" - } - }, - "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "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, - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/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, - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "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-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, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-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, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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 - }, - "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, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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" - } - }, - "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, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", - "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", - "dev": true, - "dependencies": { - "@jest/core": "^29.3.1", - "@jest/types": "^29.3.1", - "import-local": "^3.0.2", - "jest-cli": "^29.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", - "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", - "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "p-limit": "^3.1.0", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-config": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", - "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.3.1", - "@jest/types": "^29.3.1", - "babel-jest": "^29.3.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.3.1", - "jest-environment-node": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/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, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-config/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" - } - }, - "node_modules/jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", - "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", - "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "chalk": "^4.0.0", - "jest-get-type": "^29.2.0", - "jest-util": "^29.3.1", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz", - "integrity": "sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1", - "jsdom": "^20.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jest-environment-node": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", - "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", - "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", - "dev": true, - "dependencies": { - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-util": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", - "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", - "dev": true, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", - "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", - "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", - "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", - "dev": true, - "dependencies": { - "@jest/console": "^29.3.1", - "@jest/environment": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-leak-detector": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-resolve": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-util": "^29.3.1", - "jest-watcher": "^29.3.1", - "jest-worker": "^29.3.1", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", - "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/globals": "^29.3.1", - "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", - "semver": "^7.3.5" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", - "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.2.0", - "leven": "^3.1.0", - "pretty-format": "^29.3.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", - "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", - "dev": true, - "dependencies": { - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.3.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jest/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest/node_modules/jest-cli": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", - "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", - "dev": true, - "dependencies": { - "@jest/core": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/@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==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsdom/node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/jsdom/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/jsdom/node_modules/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==", - "dev": true, - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/jsdom/node_modules/tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jsdom/node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "dependencies": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "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 - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, - "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, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/line-column": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", - "integrity": "sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==", - "dev": true, - "dependencies": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/lint-staged": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz", - "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==", - "dev": true, - "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "dependencies": { - "path-key": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "dependencies": { - "mimic-fn": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", - "dev": true, - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/listr2/node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/listr2/node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "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 - }, - "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, - "peer": true - }, - "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, - "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" - } - }, - "node_modules/log-update/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, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/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, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "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 - }, - "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, - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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 - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/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==", - "dev": true - }, - "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, - "engines": { - "node": ">=0.10.0" - } - }, - "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": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/optionator/node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "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, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "peer": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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, - "engines": { - "node": ">=8" - } - }, - "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 - }, - "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, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "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.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "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 - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-apex": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-apex/-/prettier-plugin-apex-1.13.0.tgz", - "integrity": "sha512-QeGHrNOR6EXoH0Mto385FDrRC+XSCc/8zvtqNvhEaFovEMC7InDp2Mn5WxjJzQUdgtUYoXL+NYcSm3nxMqsymQ==", - "dev": true, - "dependencies": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "apex-ast-serializer": "vendor/apex-ast-serializer/bin/apex-ast-serializer", - "apex-ast-serializer-http": "vendor/apex-ast-serializer/bin/apex-ast-serializer-http", - "start-apex-server": "dist/bin/start-apex-server.js", - "stop-apex-server": "dist/bin/stop-apex-server.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "peerDependencies": { - "prettier": "^2.0.0" - } - }, - "node_modules/prettier-plugin-apex/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prettier-plugin-apex/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/prettier-plugin-apex/node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/prettier-plugin-apex/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "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==", - "dev": true - }, - "node_modules/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 - }, - "node_modules/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, - "engines": { - "node": ">=6" - } - }, - "node_modules/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/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", - "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", - "dev": true - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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 - }, - "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.8.1", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "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, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "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, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "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, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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, - "engines": { - "node": ">=6" - } - }, - "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/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, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "peer": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "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, - "engines": { - "node": ">=4" - } - }, - "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, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/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, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "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": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", - "dev": true, - "peer": 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" - } - }, - "node_modules/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": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, - "peer": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "dependencies": { - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding/node_modules/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==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "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, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "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/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "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/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", - "dev": true, - "engines": { - "node": ">= 14" - } - }, - "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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "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" - } - }, - "@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" - }, - "dependencies": { - "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": { - "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==", - "dev": true, - "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==", - "dev": true, - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - } - } - } - }, - "@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", - "dev": true - }, - "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "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/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "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-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 - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "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/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" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.0", - "@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/helper-create-class-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", - "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@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-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@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==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@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/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/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - } - }, - "@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" - }, - "dependencies": { - "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": { - "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==", - "dev": true, - "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==", - "dev": true, - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "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" - } - } - } - }, - "@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/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" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz", - "integrity": "sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", - "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", - "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz", - "integrity": "sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.20.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - } - }, - "@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/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "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", - "globals": "^11.1.0" - }, - "dependencies": { - "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 - } - } - }, - "@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" - } - }, - "@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 - }, - "@eslint/eslintrc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", - "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, - "peer": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.3.2", - "globals": "^13.15.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" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "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" - } - }, - "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, - "peer": true - }, - "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, - "peer": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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, - "peer": true - }, - "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, - "peer": true - } - } - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.9.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", - "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, - "peer": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, - "peer": true - }, - "@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": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.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 - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.3.1.tgz", - "integrity": "sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.3.1.tgz", - "integrity": "sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw==", - "dev": true, - "requires": { - "@jest/console": "^29.3.1", - "@jest/reporters": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.2.0", - "jest-config": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-resolve-dependencies": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "jest-watcher": "^29.3.1", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.3.1.tgz", - "integrity": "sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag==", - "dev": true, - "requires": { - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1" - } - }, - "@jest/expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg==", - "dev": true, - "requires": { - "expect": "^29.3.1", - "jest-snapshot": "^29.3.1" - } - }, - "@jest/expect-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.3.1.tgz", - "integrity": "sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g==", - "dev": true, - "requires": { - "jest-get-type": "^29.2.0" - } - }, - "@jest/fake-timers": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.3.1.tgz", - "integrity": "sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - } - }, - "@jest/globals": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.3.1.tgz", - "integrity": "sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/types": "^29.3.1", - "jest-mock": "^29.3.1" - } - }, - "@jest/reporters": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.3.1.tgz", - "integrity": "sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.2.0.tgz", - "integrity": "sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.15", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.3.1.tgz", - "integrity": "sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw==", - "dev": true, - "requires": { - "@jest/console": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz", - "integrity": "sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA==", - "dev": true, - "requires": { - "@jest/test-result": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.3.1.tgz", - "integrity": "sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.3.1", - "@jridgewell/trace-mapping": "^0.3.15", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "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 - } - } - }, - "@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "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" - } - }, - "@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 - }, - "@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==", - "dev": true - }, - "@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==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@lwc/babel-plugin-component": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/babel-plugin-component/-/babel-plugin-component-2.23.2.tgz", - "integrity": "sha512-hO5PKvq8jD5uYHDnOBnRhwNDHlPtUEXVL4VN8eGfXQJNue51mrLwQGCACs5Mme+X2aY302nsyGFiZMuS5Y28Tw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "line-column": "~1.0.2" - } - }, - "@lwc/compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/compiler/-/compiler-2.23.2.tgz", - "integrity": "sha512-Myj24zhdgJZ6mM95/qEZFkV5Qv2P5Ujd7EKlOmCg1WLmY29O2hHkzrtlLz3+xPo3JmYtCbvbGxsDU1Gr/fL4Cw==", - "dev": true, - "requires": { - "@babel/core": "~7.18.13", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.18.9", - "@lwc/babel-plugin-component": "2.23.2", - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "@lwc/style-compiler": "2.23.2", - "@lwc/template-compiler": "2.23.2" - } - }, - "@lwc/engine-dom": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/engine-dom/-/engine-dom-2.23.2.tgz", - "integrity": "sha512-XEfn3boHv7RLWevOMwKawxFCrs9btbvyi5XaFsclwkrqEBZa+k5px5vyYEsCJozrvz2ddHkhcuZpG7jITPwNKQ==", - "dev": true - }, - "@lwc/engine-server": { - "version": "2.32.0", - "resolved": "https://registry.npmjs.org/@lwc/engine-server/-/engine-server-2.32.0.tgz", - "integrity": "sha512-mzdDH9Xlbv5280u3OyamSAmGjW0BH+/fP3yD3FYVKhkR0yhzWeum//bo8c2yPnlXHYfnTYLJfJN5Rx9Kf0zasg==", - "dev": true, - "peer": true - }, - "@lwc/errors": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/errors/-/errors-2.23.2.tgz", - "integrity": "sha512-rgqdd6aQja4T8ysmt2L1o9Aq+VWCtifcJv1FB/hNs1g2KloxZyZkHtK6Y+Tr4IXdgiH5LaT0L3tiQA3X4vssoQ==", - "dev": true - }, - "@lwc/eslint-plugin-lwc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.5.0.tgz", - "integrity": "sha512-LiJujIbI87Eoe+iszTXEDxudhGCLsHeNArjb9kqxKotcggqYllVwtBCS2yswyhJ39uSH4BCkeSiXmSrMcs7Jow==", - "dev": true, - "requires": { - "minimatch": "^5.1.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==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@lwc/jest-preset": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-preset/-/jest-preset-11.5.3.tgz", - "integrity": "sha512-5Pz33lSbHvYCXm1LiR9Zl+KAKo3pvvrEJvg692SsJZ/3D6V04LJe4Ft0AALvVr5GznPQUPOubcvTU+aJS/0xdQ==", - "dev": true, - "requires": { - "@lwc/jest-resolver": "11.5.3", - "@lwc/jest-serializer": "11.5.3", - "@lwc/jest-transformer": "11.5.3" - } - }, - "@lwc/jest-resolver": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-resolver/-/jest-resolver-11.5.3.tgz", - "integrity": "sha512-rII7woNGft7MpCttMK0BO3Z0q/rR50fPupHJYsrIMCR6segNHte9XR9JVcU205l8E+qhmfk9il6i7W+AMakTOg==", - "dev": true, - "requires": {} - }, - "@lwc/jest-serializer": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-serializer/-/jest-serializer-11.5.3.tgz", - "integrity": "sha512-k5Y/UoBFcrTZC5e8uHdTNdScGQ1aOfr/DwN9oZXm8/AE1Tu1ZStxHmK9Sh8iMuiUh+yi8MBhg9Z/U2HEdHcV9Q==", - "dev": true, - "requires": { - "pretty-format": "^29.0.1" - } - }, - "@lwc/jest-transformer": { - "version": "11.5.3", - "resolved": "https://registry.npmjs.org/@lwc/jest-transformer/-/jest-transformer-11.5.3.tgz", - "integrity": "sha512-WCdKrR+Z6jB7LF+oUUouGcW2w8zplxGMdDfoxIfVM4cJHE9HDANpR6vxwQTDsEXuwMWe1Ytcy6R8Ax81Y0bUGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.18.13", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.0.0" - } - }, - "@lwc/module-resolver": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/module-resolver/-/module-resolver-2.23.2.tgz", - "integrity": "sha512-/0EGjzHIgEBu6Ot+wZpb3pzyP/qLIyCVGKQq0D1alFnBo3dCFVGMA1w0gCGRNn0TElq8fMukUcjr7ST7F/laUg==", - "dev": true, - "requires": { - "resolve": "~1.22.1" - }, - "dependencies": { - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "@lwc/shared": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/shared/-/shared-2.23.2.tgz", - "integrity": "sha512-LgPs0RTaNRs382/+G1UpDDfh4F4NDiXhIFvUOJhtastciBJndXKdEN27aFdAVxrs+yCt9fCM5wgKVhyZSiGBrQ==", - "dev": true - }, - "@lwc/style-compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/style-compiler/-/style-compiler-2.23.2.tgz", - "integrity": "sha512-cNKn18CRzv1IXDQ+tboUGB/VU8ubmnZ3kpGDyPk1VBUWaUdU9HhSXsl+4z/l8UdvNEEYnR3XqQYVsEnpMFO20w==", - "dev": true, - "requires": { - "@lwc/shared": "2.23.2", - "postcss": "~8.4.16", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.7" - } - }, - "@lwc/synthetic-shadow": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/synthetic-shadow/-/synthetic-shadow-2.23.2.tgz", - "integrity": "sha512-AJk5PFvNtNWHaVVQ4ePlr8+301SmekSF5fd+MifvT3p8sgNCmE7ZlCIsUkgD2qLu/xXLum4451BWBMPgC75r1Q==", - "dev": true - }, - "@lwc/template-compiler": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/template-compiler/-/template-compiler-2.23.2.tgz", - "integrity": "sha512-on6kRYprRfgKxXUDZNBjvLqp5WFQAOV6HTBx6PqW5j0s18Bz0qlF5w2VAv/2ZSfUtzK9544OC3wku4LZP43B2g==", - "dev": true, - "requires": { - "@lwc/errors": "2.23.2", - "@lwc/shared": "2.23.2", - "acorn": "~8.8.0", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - }, - "dependencies": { - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - } - } - }, - "@lwc/wire-service": { - "version": "2.23.2", - "resolved": "https://registry.npmjs.org/@lwc/wire-service/-/wire-service-2.23.2.tgz", - "integrity": "sha512-by+Uo6mseygZUUv7fdlcjU8FwsXKPvfZOMEf1PXP/iYdhSYAechV4LnrAYgGoGwduRr97860PBw6tp2Bb74FQw==", - "dev": true - }, - "@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true - }, - "@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": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@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 - }, - "@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": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", - "dev": true, - "requires": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "@salesforce/eslint-config-lwc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.3.3.tgz", - "integrity": "sha512-AZyBta7Y9N2IcJ4LbmIXSQzUoPoZ2cvoi75mqS+9QgUJfB7Il/vRj6NlflSOG14gkA4dmxoT7R6siGj2AYQ+PQ==", - "dev": true, - "requires": { - "@babel/core": "~7.18.5", - "@babel/eslint-parser": "~7.18.2", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.7" - } - }, - "@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz", - "integrity": "sha512-7HfwSBKTHQZQboLoEhkBY7bYR9wTaT+G5jHXGlq8y31hEnNhJXRZ+RERDEwDm1jYa2SV9lE8nMNr0/8EKIGjlQ==", - "dev": true, - "requires": { - "eslint-plugin-compat": "^4.0.2" - } - }, - "@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz", - "integrity": "sha512-zk0PKXAcHKHepAG2EOSWlkOTxQM0Aw1CT6+MUxJcM42fCDwH/yPPpGkG3CWtRfmVViODGOwU9ywU2wlkAYcvUQ==", - "dev": true, - "requires": {} - }, - "@salesforce/sfdx-lwc-jest": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.1.3.tgz", - "integrity": "sha512-5UCnYC299rI+S7+ES87ZhpcycwnYXmpSy3TpMX+mbgFqrWnMJ62MRNssx2sb+VBQ7/j3T/s/pVlkJyRfZN5Kww==", - "dev": true, - "requires": { - "@lwc/compiler": "2.23.2", - "@lwc/engine-dom": "2.23.2", - "@lwc/jest-preset": "^11.5.0", - "@lwc/jest-resolver": "^11.5.0", - "@lwc/jest-serializer": "^11.5.0", - "@lwc/jest-transformer": "^11.5.0", - "@lwc/module-resolver": "2.23.2", - "@lwc/synthetic-shadow": "2.23.2", - "@lwc/wire-service": "2.23.2", - "@salesforce/wire-service-jest-util": "4.0.0", - "chalk": "^4.1.2", - "fast-glob": "^3.2.10", - "jest": "^29.0.1", - "jest-environment-jsdom": "^29.0.1", - "yargs": "~17.5.1" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "@salesforce/wire-service-jest-util": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.0.tgz", - "integrity": "sha512-YJO/bMq5l6IYIZG6bAqYzzbmZMPCzB2GE2TKGLA1U7B9HpmNHZS7DdDcy154P03dfLSgF+tgVYeklh2HRYGk9g==", - "dev": true, - "requires": {} - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.5.tgz", - "integrity": "sha512-rTpCA0wG1wUxglBSFdMMY0oTrKYvgf4fNgv/sXbfCVAdf+FnPBdKJR/7XbpTCwbCrvCbdPYnlWaUUYz4V2fPDA==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@types/babel__core": { - "version": "7.1.20", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.20.tgz", - "integrity": "sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.2.tgz", - "integrity": "sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "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==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jsdom": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-20.0.1.tgz", - "integrity": "sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" - }, - "dependencies": { - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.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==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/node": { - "version": "17.0.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz", - "integrity": "sha512-xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/tough-cookie": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.2.tgz", - "integrity": "sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.14", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.14.tgz", - "integrity": "sha512-9Pj7abXoW1RSTcZaL2Hk6G2XyLMlp5ECdVC/Zf2p/KBjC3srijLGgRAXOBjtFrJoIrvxdTKyKDA14bEcbxBaWw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@typescript-eslint/scope-manager": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.44.0.tgz", - "integrity": "sha512-2pKml57KusI0LAhgLKae9kwWeITZ7IsZs77YxyNyIVOwQ1kToyXRaJLl+uDEXzMN5hnobKUOo2gKntK9H1YL8g==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/visitor-keys": "5.44.0" - } - }, - "@typescript-eslint/types": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.44.0.tgz", - "integrity": "sha512-Tp+zDnHmGk4qKR1l+Y1rBvpjpm5tGXX339eAlRBDg+kgZkz9Bw+pqi4dyseOZMsGuSH69fYfPJCBKBrbPCxYFQ==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.44.0.tgz", - "integrity": "sha512-M6Jr+RM7M5zeRj2maSfsZK2660HKAJawv4Ud0xT+yauyvgrsHu276VtXlKDFnEmhG+nVEd0fYZNXGoAgxwDWJw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/visitor-keys": "5.44.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - } - }, - "@typescript-eslint/utils": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.44.0.tgz", - "integrity": "sha512-fMzA8LLQ189gaBjS0MZszw5HBdZgVwxVFShCO3QN+ws3GlPkcy9YuS3U4wkT6su0w+Byjq3mS3uamy9HE4Yfjw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.44.0", - "@typescript-eslint/types": "5.44.0", - "@typescript-eslint/typescript-estree": "5.44.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "dependencies": { - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "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" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.44.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.44.0.tgz", - "integrity": "sha512-a48tLG8/4m62gPFbJ27FxwCOqPKxsb8KC3HkmYoq2As/4YyjQl1jDbRr1s63+g4FS/iIehjmN3L5UjmKva1HzQ==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.44.0", - "eslint-visitor-keys": "^3.3.0" - } - }, - "@xml-tools/parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", - "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", - "dev": true, - "requires": { - "chevrotain": "7.1.1" - } - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "dev": true - }, - "acorn-globals": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", - "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, - "requires": { - "acorn": "^8.1.0", - "acorn-walk": "^8.0.2" - } - }, - "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, - "peer": true, - "requires": {} - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "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" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "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.21.3" - } - }, - "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" - } - }, - "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" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "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 - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^3.3.14" - }, - "dependencies": { - "@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - } - } - }, - "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 - }, - "astring": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.3.tgz", - "integrity": "sha512-sRpyiNrx2dEYIMmUXprS8nlpRg2Drs8m9ElX9vVEXaCB4XEAJhKfs7IcX0IwShjuOAjLR6wzIrgoptz1n19i1A==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "babel-jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.3.1.tgz", - "integrity": "sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA==", - "dev": true, - "requires": { - "@jest/transform": "^29.3.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz", - "integrity": "sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "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": "29.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz", - "integrity": "sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "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 - }, - "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==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "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 - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "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==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001434", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001434.tgz", - "integrity": "sha512-aOBHrLmTQw//WFa2rcF1If9fa3ypkC1wzqqiKHgfdrXTWcU8C4gKVZT77eQAPWN1APys3+uQ0Df07rKauXGEYA==", - "dev": true - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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 - }, - "chevrotain": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", - "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", - "dev": true, - "requires": { - "regexp-to-ast": "0.5.0" - } - }, - "ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "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": { - "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": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "dependencies": { - "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 - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "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==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - } - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "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 - }, - "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" - } - }, - "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 - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "core-js": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", - "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==", - "dev": true - }, - "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": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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 - }, - "cssom": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", - "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "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": "3.0.2", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", - "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0" - }, - "dependencies": { - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.2", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", - "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "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 - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "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 - }, - "diff-sequences": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.3.1.tgz", - "integrity": "sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ==", - "dev": true - }, - "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": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "peer": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "requires": { - "webidl-conversions": "^7.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "dev": true - }, - "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 - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - }, - "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": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "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, - "peer": true - }, - "eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", - "dev": true, - "peer": true, - "requires": { - "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^6.0.1", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "peer": true, - "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" - } - }, - "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, - "peer": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "peer": true - }, - "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, - "peer": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "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, - "peer": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "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, - "peer": true - }, - "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, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "peer": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "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, - "peer": true - }, - "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, - "peer": true - }, - "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, - "peer": true, - "requires": { - "prelude-ls": "^1.2.1" - } - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.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" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "26.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz", - "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.10.0" - } - }, - "eslint-restricted-globals": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz", - "integrity": "sha512-kwYJALm5KS2QW3Mc1PgObO4V+pTR6RQtRT65L1GQILlEnAhabUQqGAX7/qUjoQR4KZJKehWpBtyDEiDecwmY9A==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "peer": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "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, - "peer": true - } - } - }, - "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, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "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 - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, - "peer": true, - "requires": { - "acorn": "^8.7.1", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.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 - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "peer": true, - "requires": { - "estraverse": "^5.1.0" - }, - "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, - "peer": true - } - } - }, - "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, - "requires": { - "estraverse": "^5.2.0" - }, - "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 - } - } - }, - "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==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.3.1.tgz", - "integrity": "sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA==", - "dev": true, - "requires": { - "@jest/expect-utils": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1" - } - }, - "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, - "peer": 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==", - "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" - } - }, - "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 - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "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, - "peer": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "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==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "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" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "peer": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", - "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", - "dev": true, - "peer": true - }, - "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "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": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true, - "peer": true - }, - "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 - }, - "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-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "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 - }, - "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 - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "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" - } - }, - "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": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, - "peer": true, - "requires": { - "type-fest": "^0.20.2" - }, - "dependencies": { - "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, - "peer": 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" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "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-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 - }, - "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 - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "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 - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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 - }, - "html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, - "requires": { - "whatwg-encoding": "^2.0.0" - } - }, - "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 - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "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, - "peer": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "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 - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "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==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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 - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "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 - }, - "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 - }, - "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": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "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-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": { - "has-tostringtag": "^1.0.0" - } - }, - "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.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" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "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 - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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": { - "has-symbols": "^1.0.2" - } - }, - "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": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "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 - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", - "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.3.1.tgz", - "integrity": "sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA==", - "dev": true, - "requires": { - "@jest/core": "^29.3.1", - "@jest/types": "^29.3.1", - "import-local": "^3.0.2", - "jest-cli": "^29.3.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "jest-cli": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.3.1.tgz", - "integrity": "sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ==", - "dev": true, - "requires": { - "@jest/core": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "jest-changed-files": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.2.0.tgz", - "integrity": "sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.3.1.tgz", - "integrity": "sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/expect": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "p-limit": "^3.1.0", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-config": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.3.1.tgz", - "integrity": "sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.3.1", - "@jest/types": "^29.3.1", - "babel-jest": "^29.3.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.3.1", - "jest-environment-node": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-runner": "^29.3.1", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.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" - } - }, - "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 - } - } - }, - "jest-diff": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.3.1.tgz", - "integrity": "sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - } - }, - "jest-docblock": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.2.0.tgz", - "integrity": "sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.3.1.tgz", - "integrity": "sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "chalk": "^4.0.0", - "jest-get-type": "^29.2.0", - "jest-util": "^29.3.1", - "pretty-format": "^29.3.1" - } - }, - "jest-environment-jsdom": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz", - "integrity": "sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/jsdom": "^20.0.0", - "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1", - "jsdom": "^20.0.0" - } - }, - "jest-environment-node": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.3.1.tgz", - "integrity": "sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-mock": "^29.3.1", - "jest-util": "^29.3.1" - } - }, - "jest-get-type": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.2.0.tgz", - "integrity": "sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==", - "dev": true - }, - "jest-haste-map": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.3.1.tgz", - "integrity": "sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.2.0", - "jest-util": "^29.3.1", - "jest-worker": "^29.3.1", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz", - "integrity": "sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA==", - "dev": true, - "requires": { - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - } - }, - "jest-matcher-utils": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz", - "integrity": "sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "pretty-format": "^29.3.1" - } - }, - "jest-message-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.3.1.tgz", - "integrity": "sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.3.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.3.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.3.1.tgz", - "integrity": "sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "jest-util": "^29.3.1" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "29.2.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.2.0.tgz", - "integrity": "sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==", - "dev": true - }, - "jest-resolve": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.3.1.tgz", - "integrity": "sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.3.1", - "jest-validate": "^29.3.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz", - "integrity": "sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA==", - "dev": true, - "requires": { - "jest-regex-util": "^29.2.0", - "jest-snapshot": "^29.3.1" - } - }, - "jest-runner": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.3.1.tgz", - "integrity": "sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA==", - "dev": true, - "requires": { - "@jest/console": "^29.3.1", - "@jest/environment": "^29.3.1", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.2.0", - "jest-environment-node": "^29.3.1", - "jest-haste-map": "^29.3.1", - "jest-leak-detector": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-resolve": "^29.3.1", - "jest-runtime": "^29.3.1", - "jest-util": "^29.3.1", - "jest-watcher": "^29.3.1", - "jest-worker": "^29.3.1", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.3.1.tgz", - "integrity": "sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A==", - "dev": true, - "requires": { - "@jest/environment": "^29.3.1", - "@jest/fake-timers": "^29.3.1", - "@jest/globals": "^29.3.1", - "@jest/source-map": "^29.2.0", - "@jest/test-result": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-mock": "^29.3.1", - "jest-regex-util": "^29.2.0", - "jest-resolve": "^29.3.1", - "jest-snapshot": "^29.3.1", - "jest-util": "^29.3.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "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 - } - } - }, - "jest-snapshot": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.3.1.tgz", - "integrity": "sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.3.1", - "@jest/transform": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.3.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.3.1", - "jest-get-type": "^29.2.0", - "jest-haste-map": "^29.3.1", - "jest-matcher-utils": "^29.3.1", - "jest-message-util": "^29.3.1", - "jest-util": "^29.3.1", - "natural-compare": "^1.4.0", - "pretty-format": "^29.3.1", - "semver": "^7.3.5" - } - }, - "jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.3.1.tgz", - "integrity": "sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.2.0", - "leven": "^3.1.0", - "pretty-format": "^29.3.1" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.3.1.tgz", - "integrity": "sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg==", - "dev": true, - "requires": { - "@jest/test-result": "^29.3.1", - "@jest/types": "^29.3.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.3.1", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "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" - } - } - } - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-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": "20.0.3", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.3.tgz", - "integrity": "sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==", - "dev": true, - "requires": { - "abab": "^2.0.6", - "acorn": "^8.8.1", - "acorn-globals": "^7.0.0", - "cssom": "^0.5.0", - "cssstyle": "^2.3.0", - "data-urls": "^3.0.2", - "decimal.js": "^10.4.2", - "domexception": "^4.0.0", - "escodegen": "^2.0.0", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.2", - "parse5": "^7.1.1", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^11.0.0", - "ws": "^8.11.0", - "xml-name-validator": "^4.0.0" - }, - "dependencies": { - "@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==", - "dev": true - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "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==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - }, - "tr46": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", - "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true - }, - "whatwg-url": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", - "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, - "requires": { - "tr46": "^3.0.0", - "webidl-conversions": "^7.0.0" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "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-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "peer": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "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 - }, - "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==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true - }, - "line-column": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", - "integrity": "sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==", - "dev": true, - "requires": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "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 - }, - "lint-staged": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-13.1.0.tgz", - "integrity": "sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.19", - "commander": "^9.4.1", - "debug": "^4.3.4", - "execa": "^6.1.0", - "lilconfig": "2.0.6", - "listr2": "^5.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.6.0", - "string-argv": "^0.3.1", - "yaml": "^2.1.3" - }, - "dependencies": { - "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true - }, - "execa": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-6.1.0.tgz", - "integrity": "sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^3.0.1", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" - } - }, - "human-signals": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-3.0.1.tgz", - "integrity": "sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==", - "dev": true - }, - "is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "dev": true - }, - "mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", - "dev": true - }, - "npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", - "dev": true, - "requires": { - "path-key": "^4.0.0" - } - }, - "onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", - "dev": true, - "requires": { - "mimic-fn": "^4.0.0" - } - }, - "path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", - "dev": true - }, - "strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", - "dev": true - } - } - }, - "listr2": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-5.0.7.tgz", - "integrity": "sha512-MD+qXHPmtivrHIDRwPYdfNkrzqDiuaKU/rfBcec3WMyMF3xylQj3jMq344OtvQxz7zaCFViRAeqlr2AFhPvXHw==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.19", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.8.0", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.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" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "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.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, - "peer": true - }, - "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": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.0" - }, - "dependencies": { - "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": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - }, - "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "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 - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "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": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "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 - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "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==", - "dev": true - }, - "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 - }, - "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" - } - }, - "nwsapi": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", - "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "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.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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": { - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - } - } - }, - "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" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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, - "peer": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "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 - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "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 - }, - "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-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 - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", - "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "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": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "prettier": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.3.tgz", - "integrity": "sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==", - "dev": true - }, - "prettier-plugin-apex": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-apex/-/prettier-plugin-apex-1.13.0.tgz", - "integrity": "sha512-QeGHrNOR6EXoH0Mto385FDrRC+XSCc/8zvtqNvhEaFovEMC7InDp2Mn5WxjJzQUdgtUYoXL+NYcSm3nxMqsymQ==", - "dev": true, - "requires": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } - }, - "pretty-format": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.3.1.tgz", - "integrity": "sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "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==", - "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 - }, - "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 - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "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 - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "regexp-to-ast": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", - "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "peer": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "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 - }, - "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-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" - }, - "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 - } - } - }, - "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, - "peer": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "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": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "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": { - "queue-microtask": "^1.2.2" - } - }, - "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" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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": { - "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==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "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 - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "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 - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "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 - } - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.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" - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "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": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "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 - }, - "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" - } - }, - "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 - }, - "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 - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true, - "peer": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "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": { - "is-number": "^7.0.0" - } - }, - "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" - } - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "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" - } - } - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "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-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 - }, - "typescript": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", - "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", - "dev": true, - "peer": true - }, - "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, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "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 - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "peer": true, - "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==", - "dev": true, - "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=", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, - "peer": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", - "dev": true, - "requires": { - "xml-name-validator": "^4.0.0" - } - }, - "wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "requires": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, - "requires": { - "iconv-lite": "0.6.3" - }, - "dependencies": { - "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==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "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, - "requires": { - "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" - } - }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.2.2.tgz", - "integrity": "sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==", - "dev": true - }, - "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 - } - } -} diff --git a/FindNearby/package.json b/FindNearby/package.json deleted file mode 100644 index 253f513..0000000 --- a/FindNearby/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "format": "prettier --check '**/*.{js,ts,json}'", - "format:fix": "prettier --write '**/*.{js,ts,json}'", - "prepare": "", - "lint": "eslint **/{aura,lwc}/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "postinstall": "", - "precommit": "" - }, - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.1.3", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "prettier-plugin-apex": "^1.13.0", - "husky": "^8.0.2", - "lint-staged": "^13.1.0", - "prettier": "^2.8.2" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura,lwc}/**": [] - }, - "dependencies": {}, - "engines": { - "node": ">=16.13.0" - }, - "husky": { - "hooks": { - "pre-commit": "yarn lint-staged" - } - } -} diff --git a/FindNearby/sfdx-project.json b/FindNearby/sfdx-project.json deleted file mode 100644 index 9e4b5e1..0000000 --- a/FindNearby/sfdx-project.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "packageDirectories": [ - { - "path": "force-app", - "default": true - } - ], - "name": "FindNearby", - "namespace": "", - "sfdcLoginUrl": "https://login.salesforce.com/", - "sourceApiVersion": "55.0" -} diff --git a/FollowUpAppointment/CODEOWNERS b/FollowUpAppointment/CODEOWNERS deleted file mode 100644 index 0f85b54..0000000 --- a/FollowUpAppointment/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -#GUSINFO:SFS Mobile Hybrid Experience,SFS - Hybrid Experience- Mobile -* \ No newline at end of file diff --git a/FollowUpAppointment/JenkinsfileFollow b/FollowUpAppointment/JenkinsfileFollow deleted file mode 100644 index 93d5f38..0000000 --- a/FollowUpAppointment/JenkinsfileFollow +++ /dev/null @@ -1,395 +0,0 @@ -@Library("sfci-pipeline-sharedlib@master") _ - -import net.sfdc.dci.v1.NotifyUtilsImpl -import net.sfdc.dci.BuildUtils -import net.sfdc.dci.ReleaseStampingUtils -import groovy.json.JsonSlurperClassic -import net.sfdc.dci.CodeCoverageUtils - -env.RELEASE_BRANCHES = ["MASTER"] -env.GUS_TEAM_NAME = "SFS Mobile Hybrid Experience" -env.CODE_COVERAGE_THRESHOLD = 75 - -def coverage_config = [ - tool_name : 'clover', - gus_team_name : env.GUS_TEAM_NAME, - module_name : 'Field Service Appointment Assistant', - test_suite : 'unit', - language_type : 'javascript', - aggregate_team_coverage: false, - dev_gus_upload : false, - report_location : 'unitTestResult/test-result-codecoverage.json' -] - -def releaseParameters = { - parameters([ - // Environment 1 - choice( - //Env - choices: ['GS0','Production'], - description: 'CHOOSE WORING ENVIORMENT', - name: 'Instance', - defaultValue: 'GS0' - ), - choice( - //Env - description: 'CREATE UNLOCKED PACKAGE', - choices: ['New package','Customer version'], - name: 'CreatePackage', - defaultValue: 'New package' - ), - booleanParam( defaultValue: false, - description: 'CREATE SCRATCH ORG ?', - name: 'Create'), - booleanParam( defaultValue: false, - description: 'INSTALL PACKAGE ? (Create scratch org must be checked)', - name: 'InstallPackage') - ]) -} - -echo 'Start CI' - -// -def envDef = [ - releaseParameters: releaseParameters, - emailTo: 'ratias@salesforce.com', - conditionalSkipCIBuild: true, - buildImage: '331455399823.dkr.ecr.us-east-2.amazonaws.com/sfci/grc-operation/grc-sfci-docker:ed3c28f' -] - - -executePipeline(envDef) { - withEnv(["HOME=${env.WORKSPACE}"]) { - def environment = [ - - PACKAGE_VERSION : 'SubscriberPackageVersionID', - PACKAGE_REQUEST_ID: 'ID', - PACKAGE_URL: 'https://login.salesforce.com/packaging/installPackage.apexp?p0=', - STAGE_COUNTER: 0, - SCRATCH_ORG: "ORG USER NAME", - FSL_PACKAGE: "FSL PACKAGE PATH", - SCRATCH_ORG_P: "NOT SET", - SALESFORCE_LOGIN: "https://test.salesforce.com/", - CODE_COVERAGE: "Not Run", - BUILD_CAUSE: false, - PROD_TEMPLATE: "0TTB0000001CtaB", - GS0_TEMPLATE: "0TTB0000001pzMK" - -] - -if(params.Instance == 'Production'){ - - - withCredentials([string(credentialsId: 'INSTANCE_URL', variable: 'instanceurl'),string(credentialsId: 'APP_ID_PROD', variable: 'appId'),string(credentialsId: 'DEVHUB_USERNAME_PROD', variable: 'usernameProd'),file(credentialsId: 'JWT_CERT_KEY_G', variable: 'JWT__key_file_g')]) { - try{ - - stage('Stage 1- Init') { - echo 'Job started on Prod' - echo 'Stage 1 Start init stage' - buildInit() - echo("Prepping a build on branch: ${env.BRANCH_NAME}") - checkout scm - //Setting google map key from secret - environment.BUILD_CAUSE= currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause) != null - - echo 'end init fase' - echo("environment.BUILD_CAUSE: ${environment.BUILD_CAUSE}") - echo("params.CreatePackage: ${params.CreatePackage}") - mavenInit() - } - - stage('Stage 2 - Sfdx-login') { - echo 'Stage 2 - Start Dev Hub auth stage' - sh "sfdx force:auth:jwt:grant --instanceurl ${instanceurl} --clientid ${clientIdDev} --username ${usernameProd} --jwtkeyfile ${JWT__key_file} --setdefaultdevhubusername --setalias HubOrg" - sh 'sfdx force:org:list' - echo ' end login ' - } - - stage('Stage 3 - Create version package') { - echo 'Stage 3 - Create package' - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - def isPr = env.BRANCH_NAME.contains("PR") - echo "${isPr}" - if(isPr != true){ - echo 'Start create version package stage' - output = sh returnStdout: true, script: "sfdx force:package:version:create --package 0HoB0000000GnaIKAS --installationkeybypass --definitionfile --codecoverage --wait 400 --json --targetdevhubusername HubOrg" - //Wait 1 minute for package replication (test1). - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def response = jsonSlurper.parseText(output) - echo "${response}" - - //Set global param - environment.PACKAGE_REQUEST_ID = response.result.Id - environment.PACKAGE_VERSION = response.result.SubscriberPackageVersionId - environment.PACKAGE_URL = environment.PACKAGE_URL+environment.PACKAGE_VERSION - response = null - - echo "Version package ID:${environment.PACKAGE_VERSION}" - echo "Version package request ID:${environment.PACKAGE_REQUEST_ID}" - echo "Version package installation URL:${environment.PACKAGE_URL}" - } - } - - } - - stage('Stage 4 - Create Scratch org'){ - echo 'Stage 4 - Start create scratch org stage' - if(params.Create && environment.BUILD_CAUSE && params.CreatePackage != 'null'){ - sh "sed -i 's/\"ancestorId.*//g' sfdx-project.json" - sh "more sfdx-project.json" - sh "more config/project-scratch-def.json" - responseS = sh returnStdout: true, script: "sfdx force:org:create --targetdevhubusername HubOrg --definitionfile config/project-scratch-def.json --setalias qaOrg --wait 100 --durationdays 30 --json" - //Wait 1 minute for Scratch org request replication - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def responseP = jsonSlurper.parseText(responseS) - echo "${responseP}" - environment.SCRATCH_ORG = responseP.result.username - environment.STAGE_COUNTER = environment.STAGE_COUNTER + 1 - - echo "Scratch org name:${environment.SCRATCH_ORG}" - NotifyUtilsImpl.addCustomEmailInfo(this, [Scratch_org_user_name: environment.SCRATCH_ORG]) - } - } - - stage('Stage 5 - Generate Scratch org password'){ - echo 'Stage 5 Start create scratch org password stage' - if(params.Create && environment.BUILD_CAUSE && params.CreatePackage != 'null'){ - responseC = sh returnStdout: true, script: "sfdx force:user:password:generate -u qaOrg --json" - //Wait 1 minute for Scratch org request replication - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def responseCp = jsonSlurper.parseText(responseC) - echo "${responseCp}" - environment.SCRATCH_ORG_P = responseCp.result.password - - NotifyUtilsImpl.addCustomEmailInfo(this, [scratch_org_pass: environment.SCRATCH_ORG_P]) - } - } - - stage('Stage 6 - Install Package') { - if(params.Create && params.InstallPackage && params.CreatePackage != 'null'){ - echo 'Stage 6 -Start Install Package stage' - sh "sfdx force:package:install --package ${environment.PACKAGE_VERSION} --targetusername qaOrg --wait 10 --noprompt" - } - - } - - stage('Stage 8 - Push changes & Clean data') { - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - echo 'Stage 8 Start Push changes & Clean data stage' - //changing google map key string - sh "sed -i 's/${googlemap}/GoogleMapKey/g' force-app/main/default/customMetadata/AppointmentAssistantPrivateSettings.GoogleMapsDistanceAPI.md-meta.xml" - sh "more force-app/main/default/customMetadata/AppointmentAssistantPrivateSettings.GoogleMapsDistanceAPI.md-meta.xml" - - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - output = sh returnStdout: true, script: "sfdx force:package:version:report -p ${environment.PACKAGE_VERSION} --json " - //Wait 1 minute for package replication (test1). - sleep 20 - def jsonSlurper = new JsonSlurperClassic() - def response = jsonSlurper.parseText(output) - echo "${response}" - environment.CODE_COVERAGE = response.result.CodeCoverage - } - //Push changes to branch - /* - withCredentials([usernamePassword(credentialsId: 'sfci-git', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) { - sh "git config --global user.email ${USERNAME}@salesforce.com" - sh "git config --global user.name ${USERNAME}" - sh "git config --global push.default simple" - sh "git commit -am \"Merging into branch from CI job \"" - sh "git push https://${USERNAME}:${PASSWORD}@git.soma.salesforce.com/FSLMobileWindowsExperience/LastMile.git HEAD:${env.branch_name}" - } - */ - } - environment.STAGE_COUNTER = 0 - NotifyUtilsImpl.addCustomEmailInfo(this, [Package_instaltion_url: environment.PACKAGE_URL]) - NotifyUtilsImpl.addCustomEmailInfo(this, [Salesforce_sandnox_login: environment.SALESFORCE_LOGIN]) - NotifyUtilsImpl.addCustomEmailInfo(this, [Code_coverage_result: environment.CODE_COVERAGE]) - } - - - } catch(e) { - currentBuild.result = "FAILED" - echo '[BUILD FAILED] --AFTER TEST ACTIONS--' - error = e - NotifyUtilsImpl.addCustomEmailInfo(this, [FAIL_CAUSE: error]) - switch(environment.STAGE_COUNTER) { - case 1: - echo "ACTIONS [BUILD FAILED] -- DELETE SCRATCH ORG" - sh 'sfdx force:org:delete --targetusername qaOrg --noprompt' - echo "--ACTIONS PASSED--" - break - case 2: - echo "ACTIONS [BUILD FAILED] -- DELETE SCRATCH ORG /DELETE VERSION PACKAGE" - sh 'sfdx force:org:delete --targetusername qaOrg --noprompt' - sh "sfdx force:package:version:delete --package ${environment.PACKAGE_VERSION} --noprompt" - echo "--ACTIONS PASSED--" - break - case 3: - echo "ACTIONS [BUILD FAILED] -- UNINSTALL / DELETE SCRATCH ORG / DELETE VERSION PACKAGE" - sh "sfdx force:package:uninstall --targetusername jenkins --package ${environment.PACKAGE_VERSION}" - sh 'sfdx force:org:delete --targetusername jenkins --noprompt' - sh "sfdx force:package:version:delete --package ${environment.PACKAGE_VERSION} --noprompt" - echo "--ACTIONS PASSED--" - break - default: - echo "--NO ROLLBACK OR DELETION WAS REQUIERD,CI MAY PASSED CHECK FAIL LOCATION" - break - } - } - } -} - -if(params.Instance == 'GS0'){ - withCredentials([string(credentialsId: 'INSTANCE_URL', variable: 'instanceurl'),string(credentialsId: 'APP_ID_GS0', variable: 'clientIdGs0'),string(credentialsId: 'DEVHUB_USERNAME_GS0', variable: 'userNameGs0'),file(credentialsId: 'JWT_CERT_KEY_G', variable: 'JWT__key_file_g')]) { - try{ - - stage('Stage 1- Init') { - echo 'Job started on GS0' - echo 'stage 1 - Start init stage on GS0' - buildInit() - echo("Prepping a build on branch: ${env.BRANCH_NAME}") - checkout scm - sh "sed -i 's/trialforce/${environment.GS0_TEMPLATE}/g' config/project-scratch-def.json" - sh "more config/project-scratch-def.json" - environment.BUILD_CAUSE= currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause) != null - echo 'end init fase' - echo("environment.BUILD_CAUSE: ${environment.BUILD_CAUSE}") - echo("params.CreatePackage: ${params.CreatePackage}") - } - - stage('Stage 2 - Sfdx-login') { - echo 'Stage 2 Start Dev Hub auth stage' - sh "sfdx force:auth:jwt:grant --instanceurl ${instanceurl} --clientid ${clientIdGs0} --username ${userNameGs0} --jwtkeyfile ${JWT__key_file_g} --setdefaultdevhubusername --setalias HubOrg" - sh 'sfdx force:org:list' - echo ' end login ' - } - - stage('Stage 3 - Create version package') { - echo 'Stage 3 - Start create version package stage' - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - def isPr = env.BRANCH_NAME.contains("PR") - echo "${isPr}" - if(isPr != true){ - echo 'Start create version package stage' - output = sh returnStdout: true, script: "sfdx force:package:version:create --package 0HoB00000008PtFKAU --installationkeybypass --codecoverage --wait 400 --json --targetdevhubusername HubOrg" - //Wait 1 minute for package replication (test1)1. - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def response = jsonSlurper.parseText(output) - echo "${response}" - - //Set global param - environment.PACKAGE_REQUEST_ID = response.result.Id - environment.PACKAGE_VERSION = response.result.SubscriberPackageVersionId - environment.PACKAGE_URL = environment.PACKAGE_URL+environment.PACKAGE_VERSION - response = null - - echo "Version package ID:${environment.PACKAGE_VERSION}" - echo "Version package request ID:${environment.PACKAGE_REQUEST_ID}" - echo "Version package installation URL:${environment.PACKAGE_URL}" - } - } - - } - - stage('Stage 4 - Create Scratch org'){ - echo 'Stage 4 Start create scratch org stage' - if(params.Create && environment.BUILD_CAUSE && params.CreatePackage != 'null'){ - echo 'Start create scratch org stage' - sh "sed -i 's/\"ancestorId.*//g' sfdx-project.json" - sh "more sfdx-project.json" - responseS = sh returnStdout: true, script: "sfdx force:org:create --targetdevhubusername HubOrg --definitionfile config/project-scratch-def.json --setalias qaOrg --wait 100 --durationdays 30 --json" - //Wait 1 minute for Scratch org request replication - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def responseP = jsonSlurper.parseText(responseS) - echo "${responseP}" - environment.SCRATCH_ORG = responseP.result.username - environment.STAGE_COUNTER = environment.STAGE_COUNTER + 1 - - echo "Scratch org name:${environment.SCRATCH_ORG}" - NotifyUtilsImpl.addCustomEmailInfo(this, [Scratch_org_user_name: environment.SCRATCH_ORG]) - } - } - - stage('Stage 5 - Generate Scratch org password'){ - echo 'Stage 5 Start create scratch org password stage' - if(params.Create && environment.BUILD_CAUSE && params.CreatePackage != 'null'){ - responseC = sh returnStdout: true, script: "sfdx force:user:password:generate -u qaOrg --json" - //Wait 1 minute for Scratch org request replication1 - sleep 60 - def jsonSlurper = new JsonSlurperClassic() - def responseCp = jsonSlurper.parseText(responseC) - echo "${responseCp}" - environment.SCRATCH_ORG_P = responseCp.result.password - - NotifyUtilsImpl.addCustomEmailInfo(this, [scratch_org_pass: environment.SCRATCH_ORG_P]) - } - } - - stage('Stage 6 - Install Package') { - if(params.Create && params.InstallPackage){ - echo 'Stage 6 Start Install Package stage' - sh "sfdx force:package:install --package ${environment.PACKAGE_VERSION} --targetusername qaOrg --wait 10 --noprompt" - } - - } - - stage('Stage 8 - Push changes & Clean data') { - echo 'Stage 8 - Push changes & Clean data' - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - echo 'Start Push changes & Clean data stage' - if(params.CreatePackage != 'Customer version' && environment.BUILD_CAUSE){ - output = sh returnStdout: true, script: "sfdx force:package:version:report -p ${environment.PACKAGE_VERSION} --json " - //Wait 1 minute for package replication (test1). - sleep 20 - def jsonSlurper = new JsonSlurperClassic() - def response = jsonSlurper.parseText(output) - echo "${response}" - environment.CODE_COVERAGE = response.result.CodeCoverage - } - } - environment.STAGE_COUNTER = 0 - NotifyUtilsImpl.addCustomEmailInfo(this, [Package_instaltion_url: environment.PACKAGE_URL]) - NotifyUtilsImpl.addCustomEmailInfo(this, [Salesforce_sandnox_login: environment.SALESFORCE_LOGIN]) - NotifyUtilsImpl.addCustomEmailInfo(this, [Code_coverage_result: environment.CODE_COVERAGE]) - } - - - } catch(e) { - currentBuild.result = "FAILED" - echo '[BUILD FAILED] --AFTER TEST ACTIONS--' - NotifyUtilsImpl.addCustomEmailInfo(this, [FAIL_CAUSE: error]) - switch(environment.STAGE_COUNTER) { - case 1: - echo "ACTIONS [BUILD FAILED] -- DELETE SCRATCH ORG" - sh 'sfdx force:org:delete --targetusername qaOrg --noprompt' - echo "--ACTIONS PASSED--" - break - case 2: - echo "ACTIONS [BUILD FAILED] -- DELETE SCRATCH ORG /DELETE VERSION PACKAGE" - sh 'sfdx force:org:delete --targetusername qaOrg --noprompt' - sh "sfdx force:package:version:delete --package ${environment.PACKAGE_VERSION} --noprompt" - echo "--ACTIONS PASSED--" - break - case 3: - echo "ACTIONS [BUILD FAILED] -- UNINSTALL / DELETE SCRATCH ORG / DELETE VERSION PACKAGE" - sh "sfdx force:package:uninstall --targetusername jenkins --package ${environment.PACKAGE_VERSION}" - sh 'sfdx force:org:delete --targetusername jenkins --noprompt' - sh "sfdx force:package:version:delete --package ${environment.PACKAGE_VERSION} --noprompt" - echo "--ACTIONS PASSED--" - break - default: - echo "--NO ROLLBACK OR DELETION WAS REQUIERD,CI MAY PASSED CHECK FAIL LOCATION" - break - } - } - } -} - } - - -} diff --git a/FollowUpAppointment/README.md b/FollowUpAppointment/README.md deleted file mode 100644 index 3313737..0000000 --- a/FollowUpAppointment/README.md +++ /dev/null @@ -1,44 +0,0 @@ -## Set Up the Follow-Up Appointment Lightning Web Component (LWC) -Let your mobile workers create and schedule follow-up appointments for customers directly from the mobile app, without contacting customer services. - -Note: Follow-Up Appointment LWC is an open-source component and is not supported by Salesforce Support. - -1. To install the package, click - https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1Q0000012BwaQAE. -2. Enable access to LWCs. See [Define a Permission Set for Your Org](https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/quickstart_lwc_action_org_setup.htm#quickstart_lwc_action_org_setup_create_permset). -3. Enable the permission sets. - 1. From Setup, in the Quick Find box, enter Users, and then select **Users**. - 2. Select the required user. - 3. Under Permission Set Assignments, click **Edit Assignments**. - 4. Enable these permission sets: - - Field Service Agent License - - Field Service Agent Permissions - - Field Service Mobile License - - Field Service Resource License - - Field Service Resource Permissions - - Field Service Follow-Up Appointment Permissions -4. Grant access to Apex classes. - 1. From Setup, in the Quick Find box, enter `Custom Code`, and then select **Apex Classes**. - 2. For FollowUpAppointmentController, click **Security**. - 3. Add the relevant profiles to the Enabled Profiles list. -5. From the App Launcher, find and select **Follow-Up Appointment Settings**. -6. Configure the LWC. - 1. In the Settings tab, determine which appointment slots the mobile worker sees and determine who the work can be assigned to and what kind of work they can create. - If you choose to let mobile workers create the service appointment, only a service appointment is created. If you choose to let mobile workers create work orders or work order line items, a service appointment is created automatically. A service appointment is created regardless of the Auto-Create Service Appointment setting for the work type. - - *Tip:* To control whether the service appointment can be assigned only to the mobile worker in the app, make sure that your scheduling policy includes the **Field Service - Required Resources work rule**. - - 2. In the Mobile Workflow tab, configure up to four steps. - - To add the address, use the fields that compose the address, such as City and Street. - - Lookup fields appear as read-only fields for the mobile user. -7. Add the component to the Work Order record page to troubleshoot the setup. - 1. From a Work Order record page in Field Service, click the settings icon and select Edit Page. - 2. In Lightning App Builder, drag the Follow-Up Appointment component onto the layout. - 3. Save your changes. - 4. Log in to the org with a user that is a Service Resource (mobile worker) and check the process end to end. - 5. If you encounter an issue with the component, click F12 to check the console logs. -8. Connect the LWC to a quick action on the Work Order, or Work Order Line Item object. See [Create Quick Actions for the Field Service Mobile App](https://help.salesforce.com/s/articleView?id=sf.mfs_quick_actions.htm&type=5). - 1. For Action Type, select **Lightning Web Components**. - 2. For Lightning Web Component, select **c:followUpAppointmentMain**. -9. Add the quick action to the required layout. -10. Log in to the Field Service mobile app as a mobile user and open the LWC to verify that everything works as expected on a mobile device. diff --git a/FollowUpAppointment/config/project-scratch-def.json b/FollowUpAppointment/config/project-scratch-def.json deleted file mode 100644 index 4cbc58c..0000000 --- a/FollowUpAppointment/config/project-scratch-def.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "orgName": "Demo company", - "namespace": "", - "template": "trialforce", - "features": [ - "EnableSetPasswordInApi", - "FieldService:10", - "FieldServiceAppointmentAssistantUser:10", - "EnableSetPasswordInApi", - "Communities" - ], - - "settings": { - "communitiesSettings": { - "enableNetworksEnabled": true, - "enableCommunityWorkspaces": true - }, - "lightningExperienceSettings": { - "enableS1DesktopEnabled": true - }, - "fieldServiceSettings": { - "fieldServiceOrgPref": true, - "optimizationServiceAccess": true - }, - "mobileSettings": { - "enableS1EncryptedStoragePref2": false - }, - "languageSettings": { - "enableTranslationWorkbench": true, - "enableEndUserLanguages": true, - "enablePlatformLanguages": true - } - } -} diff --git a/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls b/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls deleted file mode 100644 index 64ea220..0000000 --- a/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls +++ /dev/null @@ -1,1959 +0,0 @@ -public without sharing class FollowUpAppointmentController { - - public FollowUpAppointmentController() { - - } - private static final String UNAUTH_MSG = 'User is not allowed to perform this operation.'; - - @AuraEnabled - public static Decimal getWorkTypeOffset(String workTypeName){ - workTypeName = sanitizeFieldValues(workTypeName); - try { - WorkType wt = [SELECT FSL__Due_Date_Offset__c FROM WorkType WHERE Name =: workTypeName][0]; - System.debug('workType '+wt); - return wt.FSL__Due_Date_Offset__c; - } catch (Exception e) { - return -1; - } - } - - @AuraEnabled - public static Map getServiceAppointment(String serviceAppointmentId) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - Map serviceAppointmentInfo = new Map(); - - try { - ServiceAppointment sa = [SELECT Id, - Contact.FirstName, - Contact.LastName, - Contact.Phone, - Status, - Address, - WorkType.Name, - Subject, - EarliestStartTime, - ArrivalWindowStartTime, - ArrivalWindowEndTime, - SchedStartTime, - SchedEndTime, - DueDate, - Description, - AppointmentNumber, - ServiceTerritoryId - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - - if (sa.ServiceTerritoryId != null) { - ServiceTerritory st = [SELECT OperatingHoursId - FROM ServiceTerritory - WHERE ID =: sa.ServiceTerritoryId - ][0]; - OperatingHours oh = [SELECT TimeZone - FROM OperatingHours - WHERE ID =: st.OperatingHoursID - ][0]; - serviceAppointmentInfo.put('ServiceTerritoryTimeZone', oh.TimeZone); - } - - Address addr = sa.Address; - String customerAddress = ''; - if (addr != null) { - if(addr.Street != null) customerAddress = customerAddress + addr.Street + ' '; - if(addr.City != null) customerAddress = customerAddress + addr.City + ' '; - if(addr.State != null) customerAddress = customerAddress + addr.State + ' '; - if(addr.PostalCode != null) customerAddress = customerAddress + addr.PostalCode + ' '; - if(addr.Country != null) customerAddress = customerAddress + addr.Country + ' '; - } - - serviceAppointmentInfo.put('serviceAppointmentId', serviceAppointmentId); - serviceAppointmentInfo.put('CustomerFirstName', sa.Contact.FirstName); - serviceAppointmentInfo.put('CustomerLastName', sa.Contact.LastName); - serviceAppointmentInfo.put('CustomerPhone', sa.Contact.Phone); - serviceAppointmentInfo.put('ServiceAppointmentStatus', sa.Status); - serviceAppointmentInfo.put('CustomerAddress', customerAddress); - serviceAppointmentInfo.put('WorkTypeName', sa.WorkType.Name); - serviceAppointmentInfo.put('ServiceAppointmentSubject', sa.Subject); - serviceAppointmentInfo.put('EarliestStartTime', ''+sa.EarliestStartTime); - serviceAppointmentInfo.put('ArrivalWindowStartTime', ''+sa.ArrivalWindowStartTime); - serviceAppointmentInfo.put('ArrivalWindowEndTime', ''+sa.ArrivalWindowEndTime); - serviceAppointmentInfo.put('SchedStartTime', ''+sa.SchedStartTime); - serviceAppointmentInfo.put('SchedEndTime', ''+sa.SchedEndTime); - serviceAppointmentInfo.put('DueDate', ''+sa.DueDate); - serviceAppointmentInfo.put('ServiceAppointmentDescription', sa.Description); - serviceAppointmentInfo.put('AppointmentNumber', sa.AppointmentNumber); - - } catch (Exception e) { - serviceAppointmentInfo.put('error', 'SA not found: '+e.getMessage() + ', ' + e.getLineNumber()); - } - - try { - AssignedResource ar = [SELECT Id, ServiceResourceId - FROM AssignedResource - WHERE ServiceAppointmentId =: serviceAppointmentId - ][0]; - - ServiceResource sr = [SELECT Id, Name - FROM ServiceResource - WHERE Id =: ar.ServiceResourceId - ][0]; - serviceAppointmentInfo.put('ServiceResourceName', sr.Name); - - } catch (Exception e) { - serviceAppointmentInfo.put('error', 'ServiceResource or AssignedResource not found: '+e.getMessage() + ', ' + e.getLineNumber()); - } - - return serviceAppointmentInfo; - - } - - @AuraEnabled() - public static Map getSlots( - String serviceAppointmentId, - Id operatingHoursId, - Id schedulingPolicyId, - Boolean arrivalWindowFlag, - String localetimezone - ) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - localetimezone = sanitizeFieldValues(localetimezone); - - Map slotsList = new Map(); - - try { - if(serviceAppointmentId != null) { - ServiceAppointment sa = [SELECT Id, ServiceTerritoryId - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - Timezone timeZone = Timezone.getTimeZone(localetimezone); - if(timeZone == null ) { - timeZone = UserInfo.getTimeZone(); - } - slotsList.put('timeZone', +timeZone.getId()); - - if (sa.ServiceTerritoryId != null) { - ServiceTerritory st = [SELECT OperatingHoursId - FROM ServiceTerritory - WHERE ID =: sa.ServiceTerritoryId - ][0]; - OperatingHours oh = [SELECT TimeZone - FROM OperatingHours - WHERE ID =: st.OperatingHoursID - ][0]; - timeZone = System.Timezone.getTimeZone(oh.TimeZone); - slotsList.put('timeZone', +timeZone.getId()); - - } - - List timeSlots = FSL.AppointmentBookingService.GetSlots( - serviceAppointmentId, - schedulingPolicyId, - operatingHoursId, - timeZone, - arrivalWindowFlag - ); - - slotsList.put('list', timeSlots); - List timeSlotRange = new List(); - - for(integer i=0; i getSlotsByAssignmentMethod( - String serviceAppointmentId, - Id operatingHoursId, - Id schedulingPolicyId, - Boolean arrivalWindowFlag, - String localetimezone - ){ - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - localetimezone = sanitizeFieldValues(localetimezone); - try { - - return getSlots(serviceAppointmentId, operatingHoursId, schedulingPolicyId, arrivalWindowFlag, localetimezone); - - } catch (Exception e) { - throw new AuraHandledException('Error in getSlotsByAssignmentMethod:::' + e.getMessage()); - } - } - - - @AuraEnabled() - public static Map scheduleSA(String serviceAppointmentId, String schedulingPolicyId) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - schedulingPolicyId = sanitizeFieldValues(schedulingPolicyId); - Map updateStatusArray = new Map(); - - try { - - FSL.ScheduleResult myResult = new FSL.ScheduleResult(); - - if(!Test.isRunningTest()) { // avoid unit test to cover schedule SA - myResult = FSL.ScheduleService.schedule(schedulingPolicyId , serviceAppointmentId); - } - updateStatusArray.put('success', '' + myResult); - - return updateStatusArray; - - } catch (Exception e) { - throw new AuraHandledException('Error in scheduleSA:::' + e.getMessage() + ' ' + e.getLineNumber()); - } - } - - @AuraEnabled() - public static Map updateSASlot(String serviceAppointmentId, DateTime arrivalWindowStartTime, DateTime arrivalWindowEndTime) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - Map updateStatusArray = new Map(); - - try { - ServiceAppointment sa = [SELECT Id - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() ) { - sa.ArrivalWindowStartTime = arrivalWindowStartTime; - sa.ArrivalWindowEndTime = arrivalWindowEndTime; - } else updateStatusArray.put('DML', 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime'); - - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update sa; - } else updateStatusArray.put('DML', 'Permission denied to update ServiceAppointment'); - - updateStatusArray.put('success', 'Appointment Updated'); - - } catch (Exception e) { - updateStatusArray.put('error', ''+e); - } - - return updateStatusArray; - } - - @AuraEnabled() - public static Map updateServiceAppointmentStatus(String serviceAppointmentId, String statusId) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - statusId = sanitizeFieldValues(statusId); - Map updateStatusArray = new Map(); - - try { - ServiceAppointment sa = [SELECT Id - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - - if (Schema.sObjectType.ServiceAppointment.fields.Status.isUpdateable() ) { - sa.Status = statusId; - } else updateStatusArray.put('DML', 'Permission denied to update Status'); - - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update sa; - } else updateStatusArray.put('DML', 'Permission denied to update ServiceAppointment'); - - updateStatusArray.put('success', 'Appointment Updated'); - } catch (Exception e) { - updateStatusArray.put('error', ''+e.getMessage()); - } - - return updateStatusArray; - } - - @AuraEnabled() - public static Map updateSA(String serviceAppointmentId, DateTime earliestStartDate, DateTime arrivalStartDate, DateTime arrivalEndDate) { - - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - Map newSaArray = new Map(); - - try { - if(serviceAppointmentId != null) { - ServiceAppointment sa = [SELECT Id, EarliestStartTime - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - if(sa != null) { - - if (Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - sa.EarliestStartTime = earliestStartDate; - sa.ArrivalWindowEndTime = arrivalEndDate; - sa.ArrivalWindowStartTime = arrivalStartDate; - } else newSaArray.put('DML', 'Permission denied to update EarliestStartTime, ArrivalWindowEndTime, ArrivalWindowStartTime'); - - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update sa; - } else newSaArray.put('DML', 'Permission denied to update ServiceAppointment'); - - newSaArray.put('success', 'service appointment updated' ); - - } - else { - newSaArray.put('error', 'Unable to find service appointment'); - } - } else { - newSaArray.put('error', 'No service appointment found'); - } - - } catch (Exception e) { - newSaArray.put('error', ''+e.getMessage()); - return newSaArray; - } - return newSaArray; - } - - @AuraEnabled - public static String deleteExistingRequiredResources(String workOrderId) { - workOrderId = sanitizeFieldValues(workOrderId); - String response; - try { - List requiredResourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId AND PreferenceType =: 'Required']; - if(!requiredResourcePreferenceList.isEmpty()){ - delete requiredResourcePreferenceList; - } - response = 'success'; - - } catch (Exception e) { - response = '**ERROR** '+e.getMessage(); - throw new AuraHandledException('Error in deleteExistingRequiredResources:::' + e.getMessage()); - } - return response; - } - - @AuraEnabled - public static String deleteExistingResourcePreferencesForResource(String workOrderId, String serviceResourceId) { - workOrderId = sanitizeFieldValues(workOrderId); - serviceResourceId = sanitizeFieldValues(serviceResourceId); - String response; - try { - List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId AND ServiceResourceId =: serviceResourceId]; - if(!resourcePreferenceList.isEmpty()){ - delete resourcePreferenceList; - } - response = 'success'; - - } catch (Exception e) { - response = '**ERROR** '+e.getMessage(); - throw new AuraHandledException('Error in deleteExistingResourcePreferencesForResource:::' + e.getMessage()); - } - return response; - } - - @AuraEnabled - public static String addNewRequiredResource(String workOrderId, String serviceResourceId) { - workOrderId = sanitizeFieldValues(workOrderId); - serviceResourceId = sanitizeFieldValues(serviceResourceId); - String response; - try { - List existingResourcePreference = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId AND ServiceResourceId =: serviceResourceId]; - - if(existingResourcePreference == null || existingResourcePreference.IsEmpty()){ - ResourcePreference techReq = new ResourcePreference( - PreferenceType= 'Required', - RelatedRecordId = workOrderId, - ServiceResourceId = serviceResourceId - ); - insert techReq; - response = 'success'; - } else if(existingResourcePreference[0].PreferenceType != 'Required'){ - existingResourcePreference[0].PreferenceType= 'Required'; - update existingResourcePreference; - response = 'success'; - } - - } catch (Exception e) { - response = '**ERROR** '+e.getMessage(); - throw new AuraHandledException('Error in addNewRequiredResource resource ' + serviceResourceId + ' : ' + e.getMessage()); - } - return response; - } - - @AuraEnabled - public static Map assignCurrentUserAsRequiredResource(String serviceAppointmentId, String currentAssignmentMethod) { - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - currentAssignmentMethod = sanitizeFieldValues(currentAssignmentMethod); - try { - Map resultArray = new Map(); - String serviceResourceId = [SELECT Id FROM ServiceResource WHERE RelatedRecordId =: Userinfo.getUserId()][0]?.Id; - String workOrderId = [SELECT Id, ParentRecordId FROM ServiceAppointment WHERE Id =: serviceAppointmentId][0]?.ParentRecordId; - - if (workOrderId != null && serviceResourceId != null) { - if(ServiceResource.sObjectType.getDescribe().isUpdateable()) { - resultArray.put('deleteExistingRequiredResources: ', deleteExistingRequiredResources(workOrderId)); - } else resultArray.put('DML', 'Permission denied to delete ServiceResource'); - if(ServiceResource.sObjectType.getDescribe().isUpdateable()) { - resultArray.put('deleteExistingResourcePreferencesForResource: ', deleteExistingResourcePreferencesForResource(workOrderId, serviceResourceId)); - } else resultArray.put('DML', 'Permission denied to delete ServiceResource'); - if(currentAssignmentMethod == 'assignToMe'){ - if(ServiceResource.sObjectType.getDescribe().isCreateable()) { - if(ServiceResource.sObjectType.getDescribe().isUpdateable()) { - resultArray.put('addNewRequiredResource: ', addNewRequiredResource(workOrderId, serviceResourceId)); - List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId AND PreferenceType =: 'Required']; - if(resourcePreferenceList != null && resourcePreferenceList.size() == 1){ - resultArray.put('success', serviceResourceId); - } else { - resultArray.put('error', serviceResourceId); - } - } else resultArray.put('DML', 'Permission denied to update ServiceResource'); - } else resultArray.put('DML', 'Permission denied to create ServiceResource'); - } - - } else { - resultArray.put('error', serviceResourceId); - } - - return resultArray; - - } catch (Exception e) { - throw new AuraHandledException('Error in assignCurrentUserAsRequiredResource:::' + e.getMessage()); - } - } - - @AuraEnabled - public static Map isUserExcludedResource(String serviceAppointmentId) { - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - Map results = new Map(); - - try { - - String serviceResourceId = [SELECT Id FROM ServiceResource WHERE RelatedRecordId =: Userinfo.getUserId()][0]?.Id; - String workOrderId = [SELECT Id, ParentRecordId FROM ServiceAppointment WHERE Id =: serviceAppointmentId][0]?.ParentRecordId; - results.put('serviceResourceId', serviceResourceId != null); - results.put('workOrderId', workOrderId != null); - - if(serviceResourceId != null && workOrderId != null){ - List resourcePreference = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE ServiceResourceId =: serviceResourceId AND RelatedRecordId =: workOrderId]; - if(!resourcePreference.isEmpty()){ - resourcePreference tech = resourcePreference[0]; - if((String)tech.get('PreferenceType') != null && (String)tech.get('PreferenceType') == 'Excluded'){ - results.put('success', true); - } - else{ - results.put('success', false); - } - } - }else{ - results.put('error', false); - } - - } catch (Exception e) { - results.put('error '+ e.getMessage() + ', ' + e.getLineNumber(), false); - throw new AuraHandledException('Error in isUserExcludedResource:::' + e.getMessage() + ', ' + e.getLineNumber()); - } - - return results; - } - - @AuraEnabled - public static Map cloneWorkOrder( - String originalSaId, - DateTime startPermitDate, - DateTime maxValidCalendarDate, - String dummySA, - String dummyWO - ) { - - originalSaId = sanitizeFieldValues(originalSaId); - dummySA = sanitizeFieldValues(dummySA); - dummyWO = sanitizeFieldValues(dummyWO); - Map results = new MAP(); - - try { - ServiceAppointment originalSa = [SELECT Id, - WorkTypeId, - EarliestStartTime, - ArrivalWindowStartTime, - ArrivalWindowEndTime, - SchedStartTime, - SchedEndTime, - DueDate, - ServiceTerritoryId, - Address, - ParentRecordId - FROM ServiceAppointment - WHERE ID =: originalSaId - ][0]; - - DateTime dueDate = originalSa.DueDate; - if(dummySA != null){ - //update existing startdate and due date - updateDummySa(dummySA, startPermitDate, maxValidCalendarDate, originalSa.ServiceTerritoryId); - results.put('dummyServiceAppointmentId', dummySA); - results.put('dummyWorkOrderId', dummyWO); - } - else{ - String originalWOId = originalSa.ParentRecordId; - - Address address = originalSa.Address; - - String newWOId = createNewDummyWorkOrder(originalSa.ServiceTerritoryId, originalSa.WorkTypeId, originalWOId ); - - if(String.isNotEmpty(newWOId)){ - List saList = [SELECT Id FROM ServiceAppointment WHERE ParentRecordId =: newWOId]; - if(saList.size() == 0){ - ServiceAppointment sa = new ServiceAppointment(); - if (Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ServiceTerritoryId.isUpdateable() ){ - sa.ParentRecordId = newWOId; - sa.DueDate = dueDate; - sa.EarliestStartTime = startPermitDate; - sa.ServiceTerritoryId = originalSa.ServiceTerritoryId; - } else results.put('DML', 'Permission denied to update DueDate, EarliestStartTime, ServiceTerritoryId'); - if(ServiceAppointment.sObjectType.getDescribe().isCreateable()) { - insert sa; - results.put('dummyServiceAppointmentId', sa.Id); - results.put('dummyWorkOrderId', newWOId); - } else results.put('DML', 'Permission denied to create ServiceAppointment'); - - } - else{ - ServiceAppointment sa = saList[0]; - updateDummySa(sa.Id, startPermitDate, maxValidCalendarDate, originalSa.ServiceTerritoryId); - results.put('dummyServiceAppointmentId', sa.Id); - results.put('dummyWorkOrderId', newWOId); - } - //Clone resource preference list - String workOrderId = [SELECT Id, ParentRecordId from ServiceAppointment WHERE Id =: originalSAId][0]?.ParentRecordId; - - // cloneResourcePreference(workOrderId, newWOId); - - } - } - - return results; - - }catch (Exception e) { - results.put('error', 'Error in clone work order:::' + e.getMessage() + e.getLineNumber()); - return results; - } - } - - @AuraEnabled - public static string deleteClonedResourcePreference(String clonedEorkOrderId) { - clonedEorkOrderId = sanitizeFieldValues(clonedEorkOrderId); - try { - List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: clonedEorkOrderId]; - - if(!resourcePreferenceList.isEmpty()){ - if(ServiceResource.sObjectType.getDescribe().isUpdateable()) { - delete resourcePreferenceList; - } else return ('error: Permission denied to update ServiceResource'); - } - - return clonedEorkOrderId; - - } catch (Exception e) { - throw new AuraHandledException(e.getMessage()); - } - } - - @AuraEnabled - public static string deleteClonedWorkOrder(String clonedEorkOrderId) { - clonedEorkOrderId = sanitizeFieldValues(clonedEorkOrderId); - try { - WorkOrder wo = [SELECT Id FROM WorkOrder WHERE Id =: clonedEorkOrderId][0]; - - if(wo != null){ - if(WorkOrder.sObjectType.getDescribe().isDeletable()) { - delete wo; - } else return 'error: Permission denied to delete WorkOrder - deleteClonedWorkOrder'; - - return wo.Id; - } - else{ - return ''; - } - - } catch (Exception e) { - throw new AuraHandledException(e.getMessage()); - } - } - - // @AuraEnabled - // public static string cloneResourcePreference(String workOrderId, String newWOId){ - // try { - - // List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId]; - - // if(!resourcePreferenceList.isEmpty()){ - // //copy list - // if(ServiceResourcePreference.sObjectType.getDescribe().isCreateable()) { - // for (ResourcePreference tech : resourcePreferenceList){ - // copyResourcePreferenceObject(tech, newWOId); - // } - // } else return 'Error: Permission denied to create ServiceResourcePreference'; - // } - - // return newWOId; - // } catch (Exception e) { - // throw new AuraHandledException(e.getMessage()); - // } - // } - - @AuraEnabled - public static void copyResourcePreferenceObject(ResourcePreference originalRFObj, String newWO) { - newWO = sanitizeFieldValues(newWO); - try { - - ResourcePreference RFCopy = new ResourcePreference( - PreferenceType= originalRFObj.PreferenceType, - RelatedRecordId = newWO, - ServiceResourceId = originalRFObj.serviceResourceId - ); - if(!Test.isRunningTest()) { - insert RFCopy; - } - - } catch (Exception e) { - throw new AuraHandledException('Error in copyResourcePreferenceObject::: ' + newWO + ' ' + originalRFObj.serviceResourceId + e.getMessage()); - } - } - - @AuraEnabled - public static Map deleteClonedAppointmentData(String clonedServiceAppointmentId) { - clonedServiceAppointmentId = sanitizeFieldValues(clonedServiceAppointmentId); - Map result = new Map(); - try { - - ServiceAppointment sa = [SELECT Id, ParentRecordId FROM ServiceAppointment WHERE Id =: clonedServiceAppointmentId][0]; - - if(sa != null){ - String woid = sa.ParentRecordId; - WorkOrder wo = [SELECT Id FROM WorkOrder WHERE Id =: woid][0]; - if(ServiceAppointment.sObjectType.getDescribe().isDeletable()) { - delete sa; - } else result.put('error1','Permission denied to delete ServiceAppointment - deleteClonedAppointmentData'); - - if(wo != null && String.isNotEmpty(woid)){ - //delete after - List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: woid]; - if(resourcePreferenceList != null){ - if(ServiceResource.sObjectType.getDescribe().isUpdateable()) { - delete resourcePreferenceList; - } else result.put('error2','Permission denied to update ServiceResource - deleteClonedAppointmentData'); - - } - if(WorkOrder.sObjectType.getDescribe().isDeletable()) { - delete wo; - } else result.put('error3','Permission denied to delete WorkOrder - deleteClonedAppointmentData'); - result.put('success', 'Sa: ' + sa.id + ' WO: ' + woid); - } - - } - - return result; - } catch (Exception e) { - result.put('error', e.getMessage()); - return result; - } - } - - @AuraEnabled - public static Map updateDummySa(String dummySA, DateTime startPermitDate, DateTime maxValidCalendarDate, String serviceTerritoryId) { - dummySA = sanitizeFieldValues(dummySA); - serviceTerritoryId = sanitizeFieldValues(serviceTerritoryId); - try { - Map results = new Map(); - - ServiceAppointment sa = [SELECT Id, ServiceTerritoryId FROM ServiceAppointment where Id =: dummySA][0]; - if(sa != null) { - - if (Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() ) { - sa.EarliestStartTime = startPermitDate; - sa.DueDate = maxValidCalendarDate; - } else results.put('DML', 'Permission denied to update EarliestStartTime, DueDate'); - - if(String.isNotEmpty(serviceTerritoryId)){ - if (Schema.sObjectType.ServiceAppointment.fields.ServiceTerritoryId.isUpdateable() ){ - sa.ServiceTerritoryId = serviceTerritoryId; - } else results.put('DML', 'Permission denied to update ServiceTerritoryId'); - } - - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update sa; - } else results.put('DML', 'Permission denied to update ServiceAppointment'); - - results.put('said', sa.Id); - - } - else{ - results.put('error', 'Could not find dummySa'); - } - - return results; - - } catch (Exception e) { - Map results = new Map(); - results.put('error', e.getMessage() + e.getLineNumber()); - return results; - } - } - - @AuraEnabled - public static string createNewDummyWorkOrder(String serviceTerritoryId, String workTypeId, String originalWOId) { - serviceTerritoryId = sanitizeFieldValues(serviceTerritoryId); - workTypeId = sanitizeFieldValues(workTypeId); - originalWOId = sanitizeFieldValues(originalWOId); - try { - String result=''; - WorkOrder newWO = new WorkOrder(); - if(String.isNotEmpty(workTypeId)){ - if (Schema.sObjectType.WorkOrder.fields.WorkTypeId.isUpdateable() ){ - newWO.WorkTypeId = workTypeId; - } else return 'error: Permission denied to update WorkTypeId'; - } - - Address originalAddress; - try{ - originalAddress = [SELECT Address FROM WorkOrder WHERE Id =: originalWOId][0]?.Address; - } catch (Exception e){ - originalAddress = [SELECT Address FROM WorkOrderLineItem WHERE Id =: originalWOId][0]?.Address; - } - - if(String.IsEmpty(ServiceTerritoryId) && originalAddress != null){ - if(originalAddress.Latitude != null && originalAddress.Longitude != null){ - if (Schema.sObjectType.WorkOrder.fields.Longitude.isUpdateable() && - Schema.sObjectType.WorkOrder.fields.Latitude.isUpdateable() ){ - newWO.Longitude = originalAddress.Longitude; - newWO.Latitude = originalAddress.Latitude; - } else return 'error: Permission denied to update Longitude, Latitude'; - } - else { - if (Schema.sObjectType.WorkOrder.fields.Street.isUpdateable() && - Schema.sObjectType.WorkOrder.fields.City.isUpdateable() && - Schema.sObjectType.WorkOrder.fields.State.isUpdateable() && - Schema.sObjectType.WorkOrder.fields.Country.isUpdateable() && - Schema.sObjectType.WorkOrder.fields.PostalCode.isUpdateable() ){ - newWO.Street = originalAddress.Street; - newWO.City = originalAddress.City; - newWO.State = originalAddress.State; - newWO.Country = originalAddress.Country; - newWO.PostalCode = originalAddress.PostalCode; - } else return 'error: Permission denied to update Street, City, State, Country, PostalCode'; - } - } - - if(WorkOrder.sObjectType.getDescribe().isCreateable()) { - insert newWo; - } else return 'Error: Permission denied to create WorkOrder'; - - result = newWO.Id; - return result; - - } catch (Exception e) { - throw new AuraHandledException('Error in create new Dummy Work Order' + e.getMessage()); - } - } - - @AuraEnabled(cacheable=true) - public static String getUserName () { - ServiceResource sr = [SELECT RelatedRecordId, Name - FROM ServiceResource - WHERE RelatedRecordId =: Userinfo.getUserId() - ][0]; - - return sr.Name; - } - - @AuraEnabled() - public static Map convertTimeToOtherTimeZone(DateTime date1, DateTime date2, string sourceTimezone, string targetTimezone) - { - sourceTimezone = sanitizeFieldValues(sourceTimezone); - targetTimezone = sanitizeFieldValues(targetTimezone); - - Map detailArray = new Map(); - // Source Timezone - TimeZone tz = Timezone.getTimeZone(sourceTimezone); - - Integer offset = tz.getOffset(date1); - - Integer offset2 = tz.getOffset(date2); - - // target Timezone. - TimeZone targetTZ = Timezone.getTimeZone(targetTimezone); - - // Date 1 - integer offsetTotargetTZ = targetTZ.getOffset(date1); - integer correction1 = offset - offsetTotargetTZ; - - // Date 2 - integer offsetTotargetTZ2 = targetTZ.getOffset(date2); - integer correction2 = offset2 - offsetTotargetTZ2 ; - - detailArray.put('date1',date1.addMinutes(correction1 / (1000 * 60))); - detailArray.put('date2',date2.addMinutes(correction2 / (1000 * 60))); - - return detailArray; - } - - @AuraEnabled - public static Map getUpdatedSASchedulingInfo(String serviceAppointmentId) { - serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); - Map serviceAppointmentInfo = new Map(); - - try { - ServiceAppointment sa = [SELECT Id, - EarliestStartTime, - ArrivalWindowStartTime, - ArrivalWindowEndTime, - SchedStartTime, - SchedEndTime, - DueDate - FROM ServiceAppointment - WHERE ID =: serviceAppointmentId - ][0]; - - serviceAppointmentInfo.put('EarliestStartTime', ''+sa.EarliestStartTime); - serviceAppointmentInfo.put('ArrivalWindowStartTime', ''+sa.ArrivalWindowStartTime); - serviceAppointmentInfo.put('ArrivalWindowEndTime', ''+sa.ArrivalWindowEndTime); - serviceAppointmentInfo.put('SchedStartTime', ''+sa.SchedStartTime); - serviceAppointmentInfo.put('SchedEndTime', ''+sa.SchedEndTime); - serviceAppointmentInfo.put('DueDate', ''+sa.DueDate); - - } catch (Exception e) { - serviceAppointmentInfo.put('error', ''+ e); - } - return serviceAppointmentInfo; - } - - @AuraEnabled(cacheable=true) - public static Id getSchedulingPolicyId (String schedulingPolicyName) { - schedulingPolicyName = sanitizeFieldValues(schedulingPolicyName); - Id schedulingPolicyId = [SELECT Id, Name FROM FSL__Scheduling_Policy__c WHERE Name =: schedulingPolicyName LIMIT 1].Id; - return schedulingPolicyId; - } - - @AuraEnabled(cacheable=true) - public static Id getOperatingHoursId (String operatingHoursName) { - operatingHoursName = sanitizeFieldValues(operatingHoursName); - Id operatingHoursId = [SELECT Id, Name FROM OperatingHours WHERE Name =: operatingHoursName LIMIT 1].Id; - return operatingHoursId; - } - - - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------- FOLLOWUP APPOINTMENT FEATURE ------------------ - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - - - @AuraEnabled - public static Map getSettingsObject(String recordId) { - - recordId = sanitizeFieldValues(recordId); - Map settings = new Map(); - - try { - FollowupAppointmentSettings__c obj = [SELECT ShowExactArrivalTime__c, - Operating_Hours__c, - Scheduling_Policy__c, - Scheduling_Horizon_Value__c, - Fields_To_Show_Page_1__c, - Fields_To_Show_Page_2__c, - Fields_To_Show_Page_3__c, - Record_To_Create__c, - Screen_Title_1__c, - Screen_Title_2__c, - Screen_Title_3__c, - Technician_Assigment__c - FROM FollowupAppointmentSettings__c - ][0]; - - settings.put('showExactArrivalTime', ''+obj.ShowExactArrivalTime__c); - settings.put('operatingHoursId', obj.Operating_Hours__c); - settings.put('schedulingPolicyId', obj.Scheduling_Policy__c); - settings.put('schedulingHorizonValue', ''+obj.Scheduling_Horizon_Value__c); - settings.put('fieldsToShowPage1', ''+obj.Fields_To_Show_Page_1__c); - settings.put('fieldsToShowPage2', ''+obj.Fields_To_Show_Page_2__c); - settings.put('fieldsToShowPage3', ''+obj.Fields_To_Show_Page_3__c); - settings.put('headerCustomPage1', ''+obj.Screen_Title_1__c); - settings.put('headerCustomPage2', ''+obj.Screen_Title_2__c); - settings.put('headerCustomPage3', ''+obj.Screen_Title_3__c); - settings.put('recordToCreate', ''+obj.Record_To_Create__c); - settings.put('workerAssignmentOptions', ''+obj.Technician_Assigment__c); - - } catch (Exception e) { - settings.put('error1', ''+e); - } - - try { - WorkOrder wo = [SELECT ContactId FROM WorkOrder WHERE Id =: recordId][0]; - Contact contact = [SELECT Name FROM Contact WHERE Id =: wo.ContactId][0]; - settings.put('contactName', ''+contact.Name); - } catch (Exception e) { - try { // If parent record is WOLI - WorkOrderLineItem woli = [SELECT WorkOrderId FROM WorkOrderLineItem WHERE Id =: recordId][0]; - WorkOrder wo = [SELECT ContactId FROM WorkOrder WHERE Id =: woli.WorkOrderId][0]; - Contact contact = [SELECT Name FROM Contact WHERE Id =: wo.ContactId][0]; - settings.put('contactName', ''+contact.Name); - } catch (Exception e1) { - System.debug('-- error while getting ContactId from parent record'); - settings.put('contactName', ''); - } - } - - List saList = [SELECT Id, ParentRecordId - FROM ServiceAppointment - WHERE ParentRecordId =: recordId]; - ServiceAppointment sa; - if(saList.size() > 1){ - try { // search for the relevant SA - sa = [SELECT Id, ParentRecordId - FROM ServiceAppointment - WHERE ParentRecordId =: recordId AND StatusCategory =: 'In Progress' - ][0]; - settings.put('serviceAppointmentId', ''+sa.Id); - settings.put('parentRecordId', ''+sa.ParentRecordId); - } catch (Exception e) { - try { - sa = [SELECT Id, ParentRecordId - FROM ServiceAppointment - WHERE ParentRecordId =: recordId AND StatusCategory =: 'Dispatched' - ][0]; - settings.put('serviceAppointmentId', ''+sa.Id); - settings.put('parentRecordId', ''+sa.ParentRecordId); - } catch (Exception e1) { - try { - sa = [SELECT Id, ParentRecordId - FROM ServiceAppointment - WHERE ParentRecordId =: recordId AND StatusCategory =: 'Scheduled' - ORDER BY AppointmentNumber DESC NULLS LAST - ][0]; - settings.put('serviceAppointmentId', ''+sa.Id); - settings.put('parentRecordId', ''+sa.ParentRecordId); - } catch (Exception e2) { - settings.put('error2', 'No Active Service Appointment found (StatusCategory = In Progress, Dispatched) AND no Service Appointment with StatusCategory = Dispatched: '+e2); - } - } - } - } else { - settings.put('serviceAppointmentId', ''+saList[0].Id); - settings.put('parentRecordId', ''+saList[0].ParentRecordId); - } - - return settings; - } - - // ---------------------------------------------------------------- - // ------------------------ CREATE RECORD ------------------------- - // ---------------------------------------------------------------- - - public static Object formatDataBaseOnValue(String fieldDataType, String fieldValue) { - fieldDataType = sanitizeFieldValues(fieldDataType); - fieldValue = sanitizeFieldValues(fieldValue); - - switch on fieldDataType { - when 'Double', 'Location'{ - System.debug('-> format to Double or Location'); - Decimal value = decimal.valueof(fieldValue); - return value; - } - when 'DateTime' { - System.debug('-> format to DateTime'); - DateTime value = Datetime.valueof(fieldValue.replace('T',' ')); - return value; - } - when 'Boolean' { - System.debug('-> format to Boolean'); - Boolean value = boolean.valueof(fieldValue); - return value; - } - when 'Address' { // unsupported types - System.debug('-> Address field is not allowed'); - String value = 'Address field is not allowed'; - return value; - } - when else { // when string - System.debug('-> format to String'); - String value = fieldValue; - return value; - } - } - } - - @AuraEnabled - public static Map createRecord(String recordToCreate, String recordId, List listOfFields, DateTime arrivalWindowStartTime, DateTime arrivalWindowEndTime, String schedulingHorizonValue) { - Map newRecord = new Map(); - try { - recordToCreate = sanitizeFieldValues(recordToCreate); - recordId = sanitizeFieldValues(recordId); - schedulingHorizonValue = sanitizeFieldValues(schedulingHorizonValue); - - switch on recordToCreate { - - // ---------------------------------------------------------------- - // ---------------------- CREATE WORK ORDER ----------------------- - // ---------------------------------------------------------------- - when 'WorkOrder' { - System.debug('** creating new WO **'); - WorkOrder newWO = new WorkOrder(); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'WorkOrder') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newWO.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if(WorkOrder.sObjectType.getDescribe().isCreateable()) { - insert newWO; - newRecord.put('success', 'Work Order created'); - System.debug('*** Created WorkOrder record: '+newWO); - } else { - newRecord.put('DML', 'Permission denied to create Work Order'); - } - - try { - ServiceAppointment newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWO.Id][0]; - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - newSA.ArrivalWindowStartTime = arrivalWindowStartTime; - newSA.ArrivalWindowEndTime = arrivalWindowEndTime; - } else newRecord.put('DML', 'Permission denied to update ArrivalWindowEndTime, ArrivalWindowStartTime'); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'ServiceAppointment') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newSA.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update newSA; - newRecord.put('success', 'Service Appointment Updated'); - System.debug('*** Updated SA record: '+newSA); - newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWO.Id][0]; - newRecord.put('SAId', newSA.Id); - newRecord.put('SANumber', newSA.AppointmentNumber); - } else { - newRecord.put('DML', 'Permission denied to update Service Appointment'); - } - - } catch (Exception e) { - // if SA not created automatically, create new SA and update its fields - try { - ServiceAppointment newSA = new ServiceAppointment(); - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - newSA.ParentRecordId = newWO.Id; - newSA.ArrivalWindowStartTime = arrivalWindowStartTime; - newSA.ArrivalWindowEndTime = arrivalWindowEndTime; - } else newRecord.put('DML', 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime'); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'ServiceAppointment') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newSA.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if (newSA.EarliestStartTime == null) { // Must add ESP and DD values - if (Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() ) { - newSA.EarliestStartTime = System.now(); - newSA.DueDate = System.now().addDays(integer.valueof(schedulingHorizonValue)); - } else newRecord.put('DML', 'Permission denied to update EarliestStartTime, DueDate'); - } - if(ServiceAppointment.sObjectType.getDescribe().isCreateable()) { - insert newSA; - newRecord.put('success', 'Service Appointment Created'); - System.debug('*** Created SA record: '+newSA); - newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWO.Id][0]; - newRecord.put('SAId', newSA.Id); - newRecord.put('SANumber', newSA.AppointmentNumber); - } else { - newRecord.put('DML', 'Permission denied to create Service Appointment'); - } - } catch (Exception e2) { - System.debug('*** error: Service Appointment not created: '+e2); - newRecord.put('error', 'error: Service Appointment not created: '+e2); - } - } - } - - // ---------------------------------------------------------------- - // ----------------- CREATE WORK ORDER LINE ITEM ------------------ - // ---------------------------------------------------------------- - - when 'WorkOrderLineItem' { - System.debug('** creating new WOLI **'); - WorkOrderLineItem newWOLI = new WorkOrderLineItem(); - try { // when initiated via WO - WorkOrder woParent = [SELECT Id FROM WorkOrder WHERE Id =: recordId][0]; - newWOLI.WorkOrderId = recordId; - } catch (Exception e2) { // when initiated via WOLI - WorkOrderLineItem woliParent = [SELECT Id,WorkOrderId FROM WorkOrderLineItem WHERE Id =: recordId][0]; - newWOLI.WorkOrderId = woliParent.WorkOrderId; - } - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'WorkOrderLineItem') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newWOLI.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if(WorkOrderLineItem.sObjectType.getDescribe().isCreateable()) { - insert newWOLI; - newRecord.put('success', 'Work Order Line Item created'); - System.debug('*** Created WorkOrderLineItem record: '+newWOLI); - } else { - newRecord.put('DML', 'Permission denied to create Work Order Line Item'); - } - - try { - ServiceAppointment newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWOLI.Id][0]; - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - newSA.ArrivalWindowStartTime = arrivalWindowStartTime; - newSA.ArrivalWindowEndTime = arrivalWindowEndTime; - } else newRecord.put('DML', 'Permission denied to update ArrivalWindowEndTime, ArrivalWindowStartTime'); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'ServiceAppointment') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newSA.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if(ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { - update newSA; - newRecord.put('success', 'Service Appointment Updated'); - System.debug('*** Updated SA record: '+newSA); - newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWOLI.Id][0]; - newRecord.put('SAId', newSA.Id); - newRecord.put('SANumber', newSA.AppointmentNumber); - } else { - newRecord.put('DML', 'Permission denied to update Service Appointment'); - } - - } catch (Exception e) { - // if SA not created automatically, create new SA and update its fields - try { - ServiceAppointment newSA = new ServiceAppointment(); - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - newSA.ParentRecordId = newWOLI.Id; - newSA.ArrivalWindowStartTime = arrivalWindowStartTime; - newSA.ArrivalWindowEndTime = arrivalWindowEndTime; - } else newRecord.put('DML', 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime'); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'ServiceAppointment') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newSA.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if (newSA.EarliestStartTime == null) { // Must add ESP and DD values - if (Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() ) { - newSA.EarliestStartTime = System.now(); - newSA.DueDate = System.now().addDays(integer.valueof(schedulingHorizonValue)); - } else newRecord.put('DML', 'Permission denied to update EarliestStartTime, DueDate'); - } - if(ServiceAppointment.sObjectType.getDescribe().isCreateable()) { - insert newSA; - newRecord.put('success', 'Service Appointment Created'); - System.debug('*** Created SA record: '+newSA); - newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE ParentRecordId =: newWOLI.Id][0]; - newRecord.put('SAId', newSA.Id); - newRecord.put('SANumber', newSA.AppointmentNumber); - } else { - newRecord.put('DML', 'Permission denied to create Service Appointment'); - } - } catch (Exception e2) { - System.debug('*** error: Service Appointment not created: '+e2); - newRecord.put('error', 'Service Appointment not created: '+e2); - } - } - } - - // ---------------------------------------------------------------- - // ----------------- CREATE SERVICE APPOINTMENT ------------------ - // ---------------------------------------------------------------- - - when else { - try { - System.debug('** creating new SA **'); - ServiceAppointment newSA = new ServiceAppointment(); - if (Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() ) { - newSA.ParentRecordId = recordId; - newSA.ArrivalWindowStartTime = arrivalWindowStartTime; - newSA.ArrivalWindowEndTime = arrivalWindowEndTime; - } else newRecord.put('DML', 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime'); - for (String field : listOfFields) { - List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value - String objectApiName = split[0]; - String fieldApiName = split[1]; - String fieldDataType = split[2]; - String fieldValue = split[3]; - if (objectApiName == 'ServiceAppointment') { - System.debug('field input: '+split); - if (fieldValue != 'null') { - newSA.put(fieldApiName, formatDataBaseOnValue(fieldDataType, fieldValue)); - System.debug('--- value added to record'); - } else { - System.debug('--- disregarding null values'); - } - } - } - if (newSA.EarliestStartTime == null) { - if (Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && - Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() ) { - newSA.EarliestStartTime = System.now(); - newSA.DueDate = System.now().addDays(integer.valueof(schedulingHorizonValue)); - System.debug('--- added EarliestStartTime: '+newSA.EarliestStartTime); - System.debug('--- added DueDate: '+newSA.DueDate); - } else newRecord.put('DML', 'Permission denied to update EarliestStartTime, DueDate'); - } - if(ServiceAppointment.sObjectType.getDescribe().isCreateable()) { - insert newSA; - newRecord.put('success', 'Service Appointment Created'); - System.debug('*** Created SA record: '+newSA); - newSA = [SELECT Id,AppointmentNumber FROM ServiceAppointment WHERE Id =: newSA.Id][0]; - newRecord.put('SAId', newSA.Id); - newRecord.put('SANumber', newSA.AppointmentNumber); - } else { - newRecord.put('DML', 'Permission denied to create Service Appointment'); - } - } catch (Exception e2) { - System.debug('*** error: Service Appointment not created: '+e2); - System.debug('*** newRecord: '+newRecord); - newRecord.put('error', ' Service Appointment not created: '+e2); - } - } - } - - return newRecord; - - } catch (Exception e) { - throw new AuraHandledException('--debug-- '+newRecord+' ; '+e.getMessage()); - } - - } - - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------------- SETTING PAGE LWC ------------------------ - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - // ---------------------------------------------------------------- - - // ************************* Settings APIs ********** // - - @Auraenabled(cacheable=true) - public static List getSchedulingPolicyList() { - List schedulingPolicyListNames = new List(); - - List schedulingPolicyList = [SELECT Id, Name FROM FSL__Scheduling_Policy__c WHERE IsDeleted =: false WITH SECURITY_ENFORCED]; - - for(integer i=0; i getOperatingHoursList() { - List operatingHoursListNames = new List(); - - List operatingHourList = [SELECT Id, Name FROM OperatingHours WHERE IsDeleted =: false WITH SECURITY_ENFORCED ]; - - for(integer i=0; i getObjectNames() { - - List stdObjectNames = new List(); - List allowedObjects = new List(); - try { - - List followUpSettingList = [SELECT Id, Record_To_Create__c FROM FollowupAppointmentSettings__c where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followupObj = followUpSettingList[0]; - if(followupObj.Record_To_Create__c == 'ServiceAppointment') { - allowedObjects.add('ServiceAppointment'); - } else { - allowedObjects.add('ServiceAppointment'); - allowedObjects.add('WorkOrder'); - allowedObjects.add('WorkOrderLineItem'); - } - } else { - allowedObjects.add('ServiceAppointment'); - allowedObjects.add('WorkOrder'); - allowedObjects.add('WorkOrderLineItem'); - } - - for ( Schema.SObjectType typ : Schema.getGlobalDescribe().values() ) { - String sobjName = String.valueOf(typ); - for(String obj : allowedObjects) { - if(sobjName.equals(obj)) { - stdObjectNames.add(sobjName); - } - } - } - System.debug('stdObjectNames: ' + stdObjectNames); - stdObjectNames.sort(); - - } catch(Exception e) { - - } - return stdObjectNames; - - } - - - @AuraEnabled - public static Map checkPermSetAssignedToUser() { - - // First check if the user is admin user. If so, allow to add perm set. - if (!isAuthorized()) { - throw new HandledException(UNAUTH_MSG); - } - - Map resList = new Map(); - List hasPermList = [SELECT count(Id)co FROM PermissionSetAssignment WHERE AssigneeId = :Userinfo.getUserId() AND PermissionSet.Name = 'SFS_FollowupAppointmentPerm']; - Integer count = (Integer)hasPermList[0].get('co'); - if(count == 1) { - system.debug('User has permission'); - resList.put('success', 'User has SFS followup appointment permission assigned'); - } else { - system.debug('Permission is missing'); - List permissionSetList = new List(); - for (User u : [SELECT ID,UserRole.Name,Profile.Name,IsActive FROM User WHERE Id =: UserInfo.getUserId() ]){ // Add fields as per your requirement... - PermissionSet ps = [SELECT Id FROM PermissionSet WHERE Name = 'SFS_FollowupAppointmentPerm']; - PermissionSetAssignment psa = new PermissionSetAssignment (PermissionSetId = ps.Id, AssigneeId = u.Id); - permissionSetList.add(psa); - } - try { - upsert permissionSetList; - resList.put('success', 'permission set assigned successfully'); - } catch(exception e){ - system.debug('exception caught' + e); - resList.put('error', 'error while assigning permissionset to user : ' +e.getMessage()); - } - } - return resList; - } - - @AuraEnabled - public static Map getConfigurationData() { - - Map settingList = new Map(); - - try { - FollowupAppointmentSettings__c obj = [SELECT ShowExactArrivalTime__c, - Operating_Hours__c, - Scheduling_Policy__c, - Scheduling_Horizon_Value__c, - Fields_To_Show_Page_1__c, - Fields_To_Show_Page_2__c, - Fields_To_Show_Page_3__c, - Record_To_Create__c, - Screen_Title_1__c, - Screen_Title_2__c, - Screen_Title_3__c, - Technician_Assigment__c - FROM FollowupAppointmentSettings__c - WITH SECURITY_ENFORCED ][0]; - - if(obj != null) { - - - if(obj.Scheduling_Policy__c != null) { - String schedulingPolicyName = [SELECT Id, Name FROM FSL__Scheduling_Policy__c WHERE Id =: obj.Scheduling_Policy__c ].Name; - if(schedulingPolicyName != null) { - settingList.put('schedulingPolicyName', String.valueOf(schedulingPolicyName)); - } - } - - if(obj.Operating_Hours__c != null) { - String opName = [SELECT Id, Name FROM OperatingHours WHERE Id =: obj.Operating_Hours__c ].Name; - if(opName != null) { - settingList.put('operatingHoursName', String.valueOf(opName)); - } - } - - - settingList.put('showExactArrivalTime', ''+obj.ShowExactArrivalTime__c); - settingList.put('operatingHoursId', obj.Operating_Hours__c); - settingList.put('schedulingPolicyId', obj.Scheduling_Policy__c); - settingList.put('schedulingHorizonValue', ''+obj.Scheduling_Horizon_Value__c); - settingList.put('fieldsToShowPage1', ''+obj.Fields_To_Show_Page_1__c); - settingList.put('fieldsToShowPage2', ''+obj.Fields_To_Show_Page_2__c); - settingList.put('fieldsToShowPage3', ''+obj.Fields_To_Show_Page_3__c); - settingList.put('objectsToCreate', ''+obj.Record_To_Create__c); - settingList.put('Screen_Title_1__c', ''+obj.Screen_Title_1__c); - settingList.put('Screen_Title_2__c', ''+obj.Screen_Title_2__c); - settingList.put('Screen_Title_3__c', ''+obj.Screen_Title_3__c); - settingList.put('Technician_Assigment__c', ''+obj.Technician_Assigment__c); - - - } else { - settingList.put('null', 'null'); - } - - } catch (Exception e) { - settingList.put('error', ''+e); - } - - return settingList; - } - - - @AuraEnabled - public static Map getSavedScreenData() { - - Map settingList = new Map(); - - try { - FollowupAppointmentSettings__c obj = [SELECT Screen_Title_1__c, - Screen_Title_2__c, - Screen_Title_3__c, - Fields_To_Show_Page_1__c, - Fields_To_Show_Page_2__c, - Fields_To_Show_Page_3__c - FROM FollowupAppointmentSettings__c - ][0]; - - if(obj != null) { - - settingList.put('Screen_Title_1__c', ''+obj.Screen_Title_1__c); - settingList.put('Screen_Title_2__c', ''+obj.Screen_Title_2__c); - settingList.put('Screen_Title_3__c', ''+obj.Screen_Title_3__c); - settingList.put('Fields_To_Show_Page_1__c', ''+obj.Fields_To_Show_Page_1__c); - settingList.put('Fields_To_Show_Page_2__c', ''+obj.Fields_To_Show_Page_2__c); - settingList.put('Fields_To_Show_Page_3__c', ''+obj.Fields_To_Show_Page_3__c); - - } else { - settingList.put('null', 'null'); - } - - } catch (Exception e) { - settingList.put('error', ''+e); - } - - return settingList; - } - - @Auraenabled(cacheable=false) - public static List getFieldNames(String objectName) { - String escapeFields = 'Address'; - Set escapeFieldList = new Set{'Address', 'AppointmentNumber', 'CreatedById', 'CreatedDate', - 'DurationInMinutes', 'FSL__Duration_In_Minutes__c', 'FSL__InternalSLRGeolocation__c', 'IsDeleted', 'LastModifiedById', 'LastModifiedDate', 'LastReferencedDate', 'LastViewedDate', 'ParentRecordId', 'ParentRecordStatusCategory', 'ParentRecordType', 'StatusCategory' , 'SystemModstamp' , - 'Discount', 'DurationInMinutes', 'FSL_Schedluing_Priority_c', 'GrandTotal', 'Id', 'IsClosed', 'IsDeleted', 'IsGeneratedFromMainianacePlan', 'LastModfiedById', 'LastModfiedDate', 'LastRefrencedDate', 'LastViewedDate', 'LineItemCount', 'MileStoneStatus', 'RootWorkOrderId', 'ServiceAppointmentCount', 'StatusCategory', 'SubTotal', 'SystemModStamp', 'TotalPrice', 'WorkOrderNumber' }; - - SObjectType objectType = Schema.getGlobalDescribe().get(objectName); - Map mfields = objectType.getDescribe().fields.getMap(); - - List sObjectDetailsList = new List(); - for(String s : mfields.keySet()) { - //sObjectDetailsList.add(objectName+'.'+String.valueOf(mfields.get(s))); - Boolean isStrinList = false; - - for(String escapeStr : escapeFieldList) { - if(String.valueOf(mfields.get(s)).equals(escapeStr)) { - isStrinList = true; - break; - } - } - if(!isStrinList) { - sObjectDetailsList.add(String.valueOf(mfields.get(s))); - } - System.debug('Field Names : ' + String.valueOf(mfields.get(s))); - } - sObjectDetailsList.sort(); - return sObjectDetailsList; - } - -// Save settings - - @AuraEnabled() - public static Map saveSettings(List inputArr) { - - String schedulingPolicy = sanitizeFieldValues(inputArr.get(0)); - String operatingHours = sanitizeFieldValues(inputArr.get(1)); - Boolean isExactAppintmentTime = Boolean.valueOf(inputArr.get(2)); - Integer schedulingHorizonUnits = Integer.valueof(inputArr.get(3)); - String objectsAllowedToBeCreated = sanitize(inputArr.get(4)); - String technicianAssignment = sanitize(inputArr.get(5)); - String objectsAllowed = sanitize(inputArr.get(6)); - - - Map responseResult = new Map(); - try { - - OperatingHours op = [Select Id From OperatingHours WHERE Name =: operatingHours WITH SECURITY_ENFORCED]; - FSL__Scheduling_Policy__c sp = [Select Id From FSL__Scheduling_Policy__c WHERE Name =: schedulingPolicy WITH SECURITY_ENFORCED]; - - - List followUpSettingList; - followUpSettingList = [SELECT Id FROM FollowupAppointmentSettings__c where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; - - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Operating_Hours__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Horizon_Value__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Policy__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.ShowExactArrivalTime__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Technician_Assigment__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Record_To_Create__c.isUpdateable() ) { - - followUpSetting.Operating_Hours__c = op.id; - followUpSetting.Scheduling_Horizon_Value__c = schedulingHorizonUnits; - followUpSetting.Scheduling_Policy__c = sp.id; - followUpSetting.ShowExactArrivalTime__c = isExactAppintmentTime; - followUpSetting.Technician_Assigment__c = technicianAssignment; - followUpSetting.Record_To_Create__c = objectsAllowed; - - } - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isUpdateable()) { - update followUpSetting; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to update the record'); - } - } else { - FollowupAppointmentSettings__c newRecord; - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isCreateable()) { - newRecord = new FollowupAppointmentSettings__c(); - } - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Name.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Operating_Hours__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Horizon_Value__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Policy__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.ShowExactArrivalTime__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Technician_Assigment__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Record_To_Create__c.isCreateable() ) { - - newRecord.Name = 'AA_Followup_Settings'; - newRecord.Operating_Hours__c = op.id; - newRecord.Scheduling_Horizon_Value__c = schedulingHorizonUnits; - newRecord.Scheduling_Policy__c = sp.id; - newRecord.ShowExactArrivalTime__c = isExactAppintmentTime; - newRecord.Technician_Assigment__c = technicianAssignment; - newRecord.Record_To_Create__c = objectsAllowed; - } - - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isCreateable()) { - insert newRecord; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to create the record'); - } - } - } - catch(Exception e) { - System.debug('Error while saving the record'+ e); - responseResult.put('error', e); - } - - return responseResult; - } - - - - @AuraEnabled() - public static Map saveFieldSettings(List inputArr) { - - - Integer pageNo = Integer.valueof(inputArr.get(0)); - String screenTitle = sanitize(inputArr.get(1)); - String fieldList = sanitizeFieldValues(String.valueOf(inputArr.get(2))); - - Map responseResult = new Map(); - try { - - List followUpSettingList = [SELECT Id - FROM FollowupAppointmentSettings__c - where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; - - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() ) { - - if(pageNo == 1) { - followUpSetting.Screen_Title_1__c = screenTitle; - followUpSetting.Fields_To_Show_Page_1__c = fieldList; - } else if(pageNo == 2) { - followUpSetting.Screen_Title_2__c = screenTitle; - followUpSetting.Fields_To_Show_Page_2__c = fieldList; - } else { - followUpSetting.Screen_Title_3__c = screenTitle; - followUpSetting.Fields_To_Show_Page_3__c = fieldList; - } - } - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isUpdateable()) { - update followUpSetting; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to update the record'); - } - - } else { - FollowupAppointmentSettings__c newRecord = new FollowupAppointmentSettings__c(); - - - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Name.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isCreateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isCreateable() ) { - - newRecord.Name = 'AA_Followup_Settings'; - if(pageNo == 1) { - newRecord.Screen_Title_1__c = screenTitle; - newRecord.Fields_To_Show_Page_1__c = fieldList; - } else if(pageNo == 2) { - newRecord.Screen_Title_2__c = screenTitle; - newRecord.Fields_To_Show_Page_2__c = fieldList; - - } else { - newRecord.Screen_Title_3__c = screenTitle; - newRecord.Fields_To_Show_Page_3__c = fieldList; - } - - } - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isCreateable()) { - insert newRecord; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to create the record'); - } - } - - } - catch(Exception e) { - System.debug('Error while saving the record'+ e); - responseResult.put('error', e); - } - - return responseResult; - } - - @AuraEnabled() - public static Map deleteScreen(Integer screenNo) { - - Integer pageNo = Integer.valueOf(screenNo); - - - Map responseResult = new Map(); - try { - - List followUpSettingList = [SELECT Id - FROM FollowupAppointmentSettings__c - where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() ) { - - if(pageNo == 1) { - followUpSetting.Screen_Title_1__c = null; - followUpSetting.Fields_To_Show_Page_1__c = null; - } else if(pageNo == 2) { - followUpSetting.Screen_Title_2__c = null; - followUpSetting.Fields_To_Show_Page_2__c = null; - } else { - followUpSetting.Screen_Title_3__c = null; - followUpSetting.Fields_To_Show_Page_3__c = null; - } - } - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isUpdateable()) { - update followUpSetting; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to update the record'); - } - } - - } - catch(Exception e) { - System.debug('Error while saving the record'+ e); - responseResult.put('error', e); - } - - return responseResult; - } - - @AuraEnabled() - public static Map duplicateScreenData(Integer fromScreenNo, Integer toScreenNo) { - - Integer pageNo = Integer.valueOf(fromScreenNo); - - - Map responseResult = new Map(); - try { - - List followUpSettingList = [SELECT Id, - Screen_Title_1__c, - Fields_To_Show_Page_1__c, - Screen_Title_2__c, - Fields_To_Show_Page_2__c, - Screen_Title_3__c, - Fields_To_Show_Page_3__c - FROM FollowupAppointmentSettings__c - where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; - String copyTitle = ''; - String copyFields = ''; - if(fromScreenNo == 1) { - copyTitle = followUpSetting.Screen_Title_1__c ; - copyFields = followUpSetting.Fields_To_Show_Page_1__c; - } else if(fromScreenNo == 2) { - copyTitle = followUpSetting.Screen_Title_2__c; - copyFields = followUpSetting.Fields_To_Show_Page_2__c; - } else { - copyTitle = followUpSetting.Screen_Title_3__c; - copyFields = followUpSetting.Fields_To_Show_Page_3__c; - } - - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() ) { - - switch on toScreenNo { - when 1 { - followUpSetting.Screen_Title_1__c = copyTitle; - followUpSetting.Fields_To_Show_Page_1__c = copyFields; - - } - when 2 { - followUpSetting.Screen_Title_2__c = copyTitle; - followUpSetting.Fields_To_Show_Page_2__c = copyFields; - - } - when 3 { - followUpSetting.Screen_Title_3__c = copyTitle; - followUpSetting.Fields_To_Show_Page_3__c = copyFields; - } - } - - } - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isUpdateable()) { - update followUpSetting; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to update the record'); - } - } - - } - catch(Exception e) { - System.debug('Error while saving the record'+ e); - responseResult.put('error', e); - } - - return responseResult; - } - - - @AuraEnabled() - public static Map swapScreenLeftRight(Integer fromScreenNo, Integer toScreenNo) { - - Integer pageNo = Integer.valueOf(fromScreenNo); - - - Map responseResult = new Map(); - try { - - List followUpSettingList = [SELECT Id, - Screen_Title_1__c, - Fields_To_Show_Page_1__c, - Screen_Title_2__c, - Fields_To_Show_Page_2__c, - Screen_Title_3__c, - Fields_To_Show_Page_3__c - FROM FollowupAppointmentSettings__c - where Name = 'AA_Followup_Settings' WITH SECURITY_ENFORCED]; - - if(followUpSettingList.size() > 0) { - FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; - - String copyTitle = ''; - String copyFields = ''; - - if (Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && - Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() ) { - - if(fromScreenNo == 1 && toScreenNo == 2) { - - String title1 = followUpSetting.Screen_Title_1__c; - String fields1 = followUpSetting.Fields_To_Show_Page_1__c; - - followUpSetting.Screen_Title_1__c = followUpSetting.Screen_Title_2__c; - followUpSetting.Fields_To_Show_Page_1__c = followUpSetting.Fields_To_Show_Page_2__c; - - followUpSetting.Screen_Title_2__c = title1; - followUpSetting.Fields_To_Show_Page_2__c = fields1; - - - } else if(fromScreenNo == 2 && toScreenNo == 3) { - String title2 = followUpSetting.Screen_Title_2__c; - String fields2 = followUpSetting.Fields_To_Show_Page_2__c; - - followUpSetting.Screen_Title_2__c = followUpSetting.Screen_Title_3__c; - followUpSetting.Fields_To_Show_Page_2__c = followUpSetting.Fields_To_Show_Page_3__c; - - followUpSetting.Screen_Title_3__c = title2; - followUpSetting.Fields_To_Show_Page_3__c = fields2; - - } else { - System.debug('screen not in record'); - } - } - - if(FollowupAppointmentSettings__c.sObjectType.getDescribe().isUpdateable()) { - update followUpSetting; - responseResult.put('success', 'success'); - } else { - responseResult.put('DML', 'Permission denied to update the record'); - } - } - - } - catch(Exception e) { - System.debug('Error while saving the record'+ e); - responseResult.put('error', e); - } - - return responseResult; - } - - private static String sanitize(String name) { - if (name == null) { - return name; - } - return name.replaceAll('[^\\w\\s]', '').replaceAll('_', ' ').trim(); - } - - private static String sanitizeFieldValues(String name) { - if (name == null) { - return name; - } - string HTML_TAG_PATTERN = '<.*?>'; - // compile the pattern - pattern myPattern = pattern.compile(HTML_TAG_PATTERN); - // get your matcher instance - matcher myMatcher = myPattern.matcher(name); - //remove the tags - return myMatcher.replaceAll(''); - } - - private static boolean isAuthorized() { - try { - return [SELECT Id FROM Profile WHERE Name = 'System Administrator'].Id == System.UserInfo.getProfileId(); - } catch (Exception e) { - throw new HandledException(e.getMessage() ); - } - } - - - -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls b/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls deleted file mode 100644 index b8e37e9..0000000 --- a/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls +++ /dev/null @@ -1,984 +0,0 @@ -@isTest -public without sharing class ut_FollowUpAppointmentController { - - - public static final String ADMIN_EMAIL = 'ApptAssistantAdmin@SFDC.com'; - public static final String PERMSET_ADMIN = 'aa_Admin'; - public static final String PROFILE_ADMIN = 'System Administrator'; - public static final String PROFILE_USER = 'Standard User'; - public static final String AA_PSL = 'FSLApptAssistant'; - - public static AssignedResource ar; - public static ServiceAppointment sa; - public static WorkOrder wo; - public static WorkOrder wo_sa; - public static ServiceResource sr; - public static ResourcePreference rp; - public static OperatingHours oh; - public static WorkType wt; - public static WorkType wt_sa; - public static FSL__Scheduling_Policy__c sp; - - public enum UserType { - ADMIN - } - - - - /** - * setupUser description - * @param profileName profileName description - * @param email email description - * @param doInsert doInsert description - * @return return description - */ - public static User setupUser(String profileName, String email, Boolean doInsert) { - return setupUser(profileName, 'Test', 'User ', null, email, doInsert); - } - - private static Map mapProfileNameToId = new Map(); - private static Id getIdForProfile(String profileName) { - if (!mapProfileNameToId.containsKey(profileName.toUpperCase())) { - for (Profile p : [SELECT Id, Name FROM Profile WHERE Name = :profileName]) { - mapProfileNameToId.put(p.Name.toUpperCase(), p.Id); - } - } - - return mapProfileNameToId.get(profileName.toUpperCase()); - } - - /** - * Setup User with Profile, name and number - **/ - public static User setupUser( - String profileName, - String firstName, - String lastName, - String employeeNumber, - String email, - Boolean doInsert - ) { - if (email == null) { - email = 'unit.test.user@' + UserInfo.getOrganizationId() + '.apexanalytixtest.com'; - } - User u = new User(); - u.FirstName = firstName; - u.LastName = lastName; - u.EmployeeNumber = employeeNumber; - u.Email = email; - u.Username = email; - u.Alias = 'tuser' + String.valueOf(Integer.valueOf((Math.random() * 999))); - u.Phone = '503-555-1212'; - u.ProfileId = getIdForProfile(profileName); - u.TimeZoneSidKey = 'America/Los_Angeles'; - u.LocaleSidKey = 'en_US'; - u.EmailEncodingKey = 'ISO-8859-1'; - u.LanguageLocaleKey = 'en_US'; - - if (UserInfo.isMultiCurrencyOrganization()) { - ((SObject) u).put('CurrencyIsoCode', 'USD'); - } - - if (doInsert) { - insert u; - } - - return u; - } - - - static AssignedResource makeData(User user) { - System.runAs(user) { - sr = new ServiceResource(); - - // ServiceTerritoryMember - sr.Name = 'John Doe'; - sr.RelatedRecordId = user.Id; - sr.LastKnownLatitude = 12.9716; - sr.LastKnownLongitude = 77.5946; - sr.IsActive = true; - insert sr; - - sp = new FSL__Scheduling_Policy__c(); - sp.Name = 'Customer First Test'; - insert sp; - - - oh = new OperatingHours(); - oh.TimeZone = 'Europe/Istanbul'; - oh.Name = 'Test time zone'; - insert oh; - - List offsetList = [SELECT TimeZone FROM OperatingHours LIMIT 1]; - ServiceTerritory ter = new ServiceTerritory(); - ter.IsActive = true; - ter.Name = 'Floor 5'; - ter.OperatingHoursId = oh.id; - insert ter; - - - ServiceTerritoryMember stm = new ServiceTerritoryMember(); - stm.ServiceResourceId = sr.id; - stm.ServiceTerritoryId = ter.id; - stm.EffectiveStartDate = Date.valueOf('2021-03-11'); - stm.TerritoryType = 'P'; - insert stm; - - Account a = new Account(); - a.Name = 'BAC'; - insert a; - - // create a work type - wt = new WorkType(); - wt.Name = 'test'; - wt.EstimatedDuration = 2; - wt.DurationType = 'Hours'; - wt.FSL__Due_Date_Offset__c = 7200; - wt.FSL__Exact_Appointments__c = true; - insert wt; - - wt_sa = new WorkType(); - wt_sa.Name = 'test1'; - wt_sa.EstimatedDuration = 2; - wt_sa.DurationType = 'Hours'; - wt_sa.FSL__Due_Date_Offset__c = 7200; - wt_sa.FSL__Exact_Appointments__c = true; - wt_sa.ShouldAutoCreateSvcAppt = true; - insert wt_sa; - - // create a work order - wo = new WorkOrder(); - wo.WorkTypeId = wt.Id; - wo.City = 'Bangalore'; - wo.Country = 'India'; - wo.Street = 'Palm Retreat'; - wo.Latitude = 12.9716; - wo.Longitude = 77.5946; - insert wo; - - wo_sa = new WorkOrder(); - wo_sa.WorkTypeId = wt_sa.Id; - wo_sa.City = 'Bangalore'; - wo_sa.Country = 'India'; - wo_sa.Street = 'Palm Retreat'; - wo_sa.Latitude = 12.9716; - wo_sa.Longitude = 77.5946; - insert wo_sa; - - rp = new ResourcePreference(); - rp.RelatedRecordId = wo.Id; - rp.ServiceResourceId = sr.Id; - insert rp; - - - sa = new ServiceAppointment(); - sa.ParentRecordId = wo.Id; - sa.City = 'Bangalore'; - sa.Country = 'India'; - sa.Street = 'Palm Retreat'; - sa.ArrivalWindowStartTime = DateTime.valueOf('2024-03-11 10:00:00'); - sa.ArrivalWindowEndTime = DateTime.valueOf('2024-03-11 14:00:00'); - sa.Status = 'Dispatched'; - sa.ServiceTerritoryId = ter.id; - sa.EarliestStartTime = DateTime.valueOf('2024-03-01 10:00:00'); - sa.DueDate = DateTime.valueOf('2024-05-19 10:00:00'); - sa.SchedStartTime = DateTime.valueOf('2024-03-11 11:00:00'); - sa.SchedEndTime = DateTime.valueOf('2024-03-11 12:00:00'); - sa.ServiceNote = 'Your appointment is confirmed'; - sa.Latitude = 12.9716; - sa.Longitude = 77.5946; - insert sa; - - ar = new AssignedResource(); - ar.ServiceResourceId = sr.id; - ar.ServiceAppointmentId = sa.id; - // TODO CHNAGE THIS - //ar.ApptAssistantInfoUrl = 'www.salesforce.com'; - insert ar; - - return ar; - } - return null; - - } - - public static User createUserWithPermSet(String email) { - User usr = setupUser('System Administrator', email, true); - - return usr; - } - - @isTest - static void test_getServiceAppointment() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user){ - Test.startTest(); - - Map mapInfo = FollowUpAppointmentController.getServiceAppointment(sa.Id); - Map mapInfo2 = FollowUpAppointmentController.getServiceAppointment('123123'); - - List schedulingPolicyList = FollowUpAppointmentController.getSchedulingPolicyList(); - List operatingHoursList = FollowUpAppointmentController.getOperatingHoursList(); - - - - system.assert(mapInfo.size() > 0, true); - system.assert(mapInfo2.size() > 0, true); - - system.assert(schedulingPolicyList.size() > 0, true); - system.assert(operatingHoursList.size() > 0, true); - - - // system.assert(saInfo.size() > 0); - // system.assert(currentAssignmentMethodInfo.size() > 0); - // system.assert(scheduleSAInfo.size() > 0); - // system.assert(Info1.size() > 0); - // system.assert(Info2.size() > 0); - // system.assert(Info3.size() > 0); - // system.assert(Info4.size() > 0); - - Test.stopTest(); - } - } - - - @isTest - static void test_getSlots() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user){ - Test.startTest(); - - Map mapInfo = FollowUpAppointmentController.getSlots(sa.Id, oh.Id, sp.Id, true, ''); - system.assert(mapInfo.size() > 0, true); - - Test.stopTest(); - } - } - - @isTest - static void test_getSlotsByAssignmentMethod() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user){ - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.getSlotsByAssignmentMethod(sa.Id, oh.Id, sp.Id, true, ''); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_scheduleSA() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.scheduleSA(sa.Id, sp.Id); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_updateSASlot() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.updateSASlot(sa.Id, sa.EarliestStartTime, sa.dueDate); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_updateServiceAppointmentStatus() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.updateServiceAppointmentStatus(sa.Id, sa.Status); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_updateSA() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.updateSA(sa.Id, sa.EarliestStartTime, sa.dueDate, sa.dueDate); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_deleteExistingRequiredResources() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - FollowUpAppointmentController.deleteExistingRequiredResources(wo.Id); - //system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_deleteExistingResourcePreferencesForResource() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - FollowUpAppointmentController.deleteExistingResourcePreferencesForResource(wo.Id, wo.Id); - //system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_addNewRequiredResource() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - WorkOrder tempWo = new WorkOrder(); - tempWo.WorkTypeId = wt.Id; - insert tempWo; - Test.startTest(); - FollowUpAppointmentController.addNewRequiredResource(wo.Id, sr.Id); - FollowUpAppointmentController.addNewRequiredResource(tempWo.Id, sr.Id); - Test.stopTest(); - } - } - - @isTest - static void test_assignCurrentUserAsRequiredResource() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.assignCurrentUserAsRequiredResource(sa.Id, 'assignToMe'); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_isUserExcludedResource() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.isUserExcludedResource(sa.Id); - //Map mapInfo2 = FollowUpAppointmentController.isUserExcludedResource('tempId'); - system.assert(mapInfo.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_cloneWorkOrder() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.cloneWorkOrder(sa.Id, sa.SchedStartTime, sa.DueDate, sa.Id, wo.Id); - Map mapInfo2 = FollowUpAppointmentController.cloneWorkOrder(sa.Id, sa.SchedStartTime, sa.DueDate, null, null); - - system.assert(mapInfo.size() > -1, true); - system.assert(mapInfo2.size() > -1, true); - - Test.stopTest(); - } - } - - @isTest - static void test_deleteClonedResourcePreference() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - String mapInfo = FollowUpAppointmentController.deleteClonedResourcePreference(wo.Id); - system.assert(mapInfo.length() > -1, true); - Test.stopTest(); - } - } - - - @isTest - static void test_copyResourcePreferenceObject() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - FollowUpAppointmentController.copyResourcePreferenceObject(rp, wo.Id); - //system.assert(mapInfo.length() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_updateDummySa() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.updateDummySa(sa.Id, sa.SchedStartTime, sa.SchedEndTime, sa.ServiceTerritoryId); - system.assert(mapInfo.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_createNewDummyWorkOrder() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - - WorkOrder tempWo = new WorkOrder(); - tempWo.WorkTypeId = wt.Id; - tempWo.City = 'Bangalore'; - tempWo.Country = 'India'; - tempWo.Street = 'Palm Retreat'; - insert tempWo; - - Test.startTest(); - String mapInfo = FollowUpAppointmentController.createNewDummyWorkOrder(sa.ServiceTerritoryId, wt.Id, wo.Id); - String mapInfo2 = FollowUpAppointmentController.createNewDummyWorkOrder('', wt.Id, wo.Id); - String mapInfo3 = FollowUpAppointmentController.createNewDummyWorkOrder('', wt.Id, tempWo.Id); - system.assert(mapInfo.length() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_getUserName() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - String mapInfo = FollowUpAppointmentController.getUserName(); - system.assert(mapInfo.length() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_convertTimeToOtherTimeZone() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultArray = FollowUpAppointmentController.convertTimeToOtherTimeZone(sa.DueDate, sa.EarliestStartTime, 'America/Tijuana', 'America/Tijuana'); - system.assert(resultArray.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_getUpdatedSASchedulingInfo() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultArray = FollowUpAppointmentController.getUpdatedSASchedulingInfo(sa.Id); - system.assert(resultArray.size() > 0, true); - Test.stopTest(); - } - } - - @isTest - static void test_getSpAndOpId() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Id resultArray = FollowUpAppointmentController.getSchedulingPolicyId(sp.Name); - Id resultArray2 = FollowUpAppointmentController.getOperatingHoursId(oh.Name); - - system.assert(resultArray != null, true); - system.assert(resultArray2 != null, true); - - Test.stopTest(); - } - } - - @isTest - static void test_getSettingsObject() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultArray = FollowUpAppointmentController.getSettingsObject(wo.Id); - system.assert(resultArray.size() > -1 , true); - Test.stopTest(); - } - } - - @isTest - static void test_getSettingsObject2() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - // Insert setting object - FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); - settingsObj.ShowExactArrivalTime__c = true; - settingsObj.Operating_Hours__c = oh.Id; - settingsObj.Scheduling_Policy__c = sp.Id; - settingsObj.Name = 'AA_Followup_Settings'; - settingsObj.Screen_Title_1__c = 'abc'; - settingsObj.Screen_Title_2__c = 'abc'; - settingsObj.Screen_Title_3__c = 'abc'; - settingsObj.Record_To_Create__c = 'workOrder'; - settingsObj.Scheduling_Horizon_Value__c = 12; - settingsObj.Technician_Assigment__c = '23'; - insert settingsObj; - Test.startTest(); - Map resultArray2 = FollowUpAppointmentController.getSettingsObject(wo.Id); - Test.stopTest(); - } - } - - @isTest - static void test_deleteClonedAppointmentData() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map mapInfo = FollowUpAppointmentController.deleteClonedAppointmentData(sa.Id); - system.assert(mapInfo.size() > 0, true); - Test.stopTest(); - } - } - - // @isTest - // static void Test_cloneResourcePreference() { - // User user = createUserWithPermSet(ADMIN_EMAIL); - // makeData(user); - // system.runas(user) { - // WorkOrder newWo = new WorkOrder(); - // newWo.WorkTypeId = wt.Id; - // insert newWo; - // Test.startTest(); - // String resultStr = FollowUpAppointmentController.cloneResourcePreference(wo.Id, newWo.Id); - // system.assert(resultStr.length() > -1, true); - // Test.stopTest(); - // } - // } - - @isTest - static void Test_deleteClonedWorkOrder() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - String resultStr = FollowUpAppointmentController.deleteClonedWorkOrder(wo.Id); - system.assert(resultStr.length() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void Test_getObjectNames() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - List resultStr = FollowUpAppointmentController.getObjectNames(); - system.assert(resultStr.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void Test_getConfigurationData() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultStr = FollowUpAppointmentController.getConfigurationData(); - system.assert(resultStr.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void Test_getSavedScreenData() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultStr = FollowUpAppointmentController.getSavedScreenData(); - system.assert(resultStr.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void test_saveSettings() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List objectList = new List(); - objectList.add(sp.Name); - objectList.add(oh.Name); - objectList.add('true'); - objectList.add('10'); - objectList.add('serviceAppointment'); - objectList.add('1'); - objectList.add('serviceAppointment'); - Test.startTest(); - Map resultStr = FollowUpAppointmentController.saveSettings(objectList); - system.assert(resultStr.size() > -1, true); - Test.stopTest(); - } - } - - @isTest - static void Test_saveSettings2() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - - List objectList = new List(); - objectList.add(sp.Name); - objectList.add(oh.Name); - objectList.add('true'); - objectList.add('10'); - objectList.add('serviceAppointment'); - objectList.add('1'); - objectList.add('serviceAppointment'); - - // Insert setting object - FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); - settingsObj.ShowExactArrivalTime__c = true; - settingsObj.Operating_Hours__c = oh.Id; - settingsObj.Scheduling_Policy__c = sp.Id; - settingsObj.Name = 'AA_Followup_Settings'; - settingsObj.Screen_Title_1__c = 'abc'; - settingsObj.Screen_Title_2__c = 'abc'; - settingsObj.Screen_Title_3__c = 'abc'; - settingsObj.Record_To_Create__c = 'workOrder'; - settingsObj.Scheduling_Horizon_Value__c = 12; - settingsObj.Technician_Assigment__c = '23'; - insert settingsObj; - Test.startTest(); - Map resultStr2 = FollowUpAppointmentController.saveSettings(objectList); - Test.stopTest(); - } - } - - - - - @isTest - static void Test_saveFieldSettings2() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - - // Insert setting object - FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); - settingsObj.ShowExactArrivalTime__c = true; - settingsObj.Operating_Hours__c = oh.Id; - settingsObj.Scheduling_Policy__c = sp.Id; - settingsObj.Name = 'AA_Followup_Settings'; - settingsObj.Screen_Title_1__c = 'abc'; - settingsObj.Screen_Title_2__c = 'abc'; - settingsObj.Screen_Title_3__c = 'abc'; - settingsObj.Record_To_Create__c = 'workOrder'; - settingsObj.Scheduling_Horizon_Value__c = 12; - settingsObj.Technician_Assigment__c = '23'; - insert settingsObj; - - Test.startTest(); - List objectList = new List(); - objectList.add('1'); - objectList.add('screentitle'); - objectList.add('serviceAppointment.Account'); - Map resultStr = FollowUpAppointmentController.saveFieldSettings(objectList); - system.assert(resultStr.size() > -1, true); - - List objectList2 = new List(); - objectList2.add('2'); - objectList2.add('screentitle'); - objectList2.add('serviceAppointment.Account'); - Map resultStr2 = FollowUpAppointmentController.saveFieldSettings(objectList2); - - - List objectList3 = new List(); - objectList3.add('3'); - objectList3.add('screentitle'); - objectList3.add('serviceAppointment.Account'); - Map resultStr3 = FollowUpAppointmentController.saveFieldSettings(objectList3); - - Test.stopTest(); - } - } - - @isTest - static void Test_saveFieldSettings() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - List objectList = new List(); - objectList.add('1'); - objectList.add('screentitle'); - objectList.add('serviceAppointment.Account'); - Map resultStr = FollowUpAppointmentController.saveFieldSettings(objectList); - system.assert(resultStr.size() > -1, true); - - List objectList2 = new List(); - objectList2.add('2'); - objectList2.add('screentitle'); - objectList2.add('serviceAppointment.Account'); - Map resultStr2 = FollowUpAppointmentController.saveFieldSettings(objectList2); - - - List objectList3 = new List(); - objectList3.add('3'); - objectList3.add('screentitle'); - objectList3.add('serviceAppointment.Account'); - Map resultStr3 = FollowUpAppointmentController.saveFieldSettings(objectList3); - - Test.stopTest(); - } - } - - @isTest - static void Test_deleteScreen() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); - settingsObj.ShowExactArrivalTime__c = true; - settingsObj.Operating_Hours__c = oh.Id; - settingsObj.Scheduling_Policy__c = sp.Id; - settingsObj.Name = 'AA_Followup_Settings'; - settingsObj.Screen_Title_1__c = 'abc'; - settingsObj.Screen_Title_2__c = 'abc'; - settingsObj.Screen_Title_3__c = 'abc'; - settingsObj.Record_To_Create__c = 'workOrder'; - settingsObj.Scheduling_Horizon_Value__c = 12; - settingsObj.Technician_Assigment__c = '23'; - insert settingsObj; - - Test.startTest(); - - Map resultStrz = FollowUpAppointmentController.duplicateScreenData(1,1); - system.assert(resultStrz.size() > -1, true); - Map resultStr2z = FollowUpAppointmentController.duplicateScreenData(1,2); - Map resultStr3z = FollowUpAppointmentController.duplicateScreenData(1,3); - - Map resultStr4 = FollowUpAppointmentController.duplicateScreenData(2,1); - Map resultStr5 = FollowUpAppointmentController.duplicateScreenData(2,2); - Map resultStr6 = FollowUpAppointmentController.duplicateScreenData(2,3); - - Map resultStr7 = FollowUpAppointmentController.duplicateScreenData(3,1); - Map resultStr8 = FollowUpAppointmentController.duplicateScreenData(3,2); - Map resultStr9 = FollowUpAppointmentController.duplicateScreenData(3,3); - - Map swipeLeft1 = FollowUpAppointmentController.swapScreenLeftRight(1,2); - Map swipeLeft2 = FollowUpAppointmentController.swapScreenLeftRight(2,3); - Map swipeLeft3 = FollowUpAppointmentController.swapScreenLeftRight(3,3); - - Map resultStr = FollowUpAppointmentController.deleteScreen(1); - system.assert(resultStr.size() > -1, true); - Map resultStr2 = FollowUpAppointmentController.deleteScreen(2); - Map resultStr3 = FollowUpAppointmentController.deleteScreen(3); - - Test.stopTest(); - } - } - - // @isTest - // static void Test_duplicateScreenData() { - // User user = createUserWithPermSet(ADMIN_EMAIL); - // makeData(user); - // system.runas(user) { - // FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); - // settingsObj.ShowExactArrivalTime__c = true; - // settingsObj.Operating_Hours__c = oh.Id; - // settingsObj.Scheduling_Policy__c = sp.Id; - // settingsObj.Name = 'AA_Followup_Settings'; - // settingsObj.Screen_Title_1__c = 'abc'; - // settingsObj.Screen_Title_2__c = 'abc'; - // settingsObj.Screen_Title_3__c = 'abc'; - // settingsObj.Record_To_Create__c = 'workOrder'; - // settingsObj.Scheduling_Horizon_Value__c = 12; - // settingsObj.Technician_Assigment__c = '23'; - // insert settingsObj; - - // Test.startTest(); - // Map resultStr = FollowUpAppointmentController.duplicateScreenData(1,1); - // system.assert(resultStr.size() > -1, true); - // Map resultStr2 = FollowUpAppointmentController.duplicateScreenData(1,2); - // Map resultStr3 = FollowUpAppointmentController.duplicateScreenData(1,3); - - // Map resultStr4 = FollowUpAppointmentController.duplicateScreenData(2,1); - // Map resultStr5 = FollowUpAppointmentController.duplicateScreenData(2,2); - // Map resultStr6 = FollowUpAppointmentController.duplicateScreenData(2,3); - - // Map resultStr7 = FollowUpAppointmentController.duplicateScreenData(3,1); - // Map resultStr8 = FollowUpAppointmentController.duplicateScreenData(3,2); - // Map resultStr9 = FollowUpAppointmentController.duplicateScreenData(3,3); - // Test.stopTest(); - // } - // } - - - // @isTest - // static void Test_saveFieldSettings() { - // User user = createUserWithPermSet(ADMIN_EMAIL); - // makeData(user); - // system.runas(user) { - // Test.startTest(); - // List objectList = new List(); - // objectList.add('1'); - // objectList.add('screentitle'); - // objectList.add('serviceAppointment.Account'); - // Map resultStr = FollowUpAppointmentController.saveFieldSettings(objectList); - // system.assert(resultStr.size() > -1, true); - // Test.stopTest(); - // } - // } - - @isTest - static void Test_formatDataBaseOnValue() { - - String decimalValue = '30.00'; - String dateTimeValue = '2021-03-11 10:00:00'; - String booleanValue = 'true'; - String stringValue = 'string'; - Boolean answer1 = false; - Boolean answer2 = false; - Boolean answer3 = false; - Boolean answer4 = false; - - Test.startTest(); - - Object decimalOutput = FollowUpAppointmentController.formatDataBaseOnValue('Double', decimalValue); - Object dateTimeOutput = FollowUpAppointmentController.formatDataBaseOnValue('DateTime', dateTimeValue); - Object booleanOutput = FollowUpAppointmentController.formatDataBaseOnValue('Boolean', booleanValue); - Object stringOutput = FollowUpAppointmentController.formatDataBaseOnValue('String', stringValue); - - if (decimalOutput instanceof Decimal) answer1 = true; - if (dateTimeOutput instanceof DateTime) answer2 = true; - if (booleanOutput instanceof Boolean) answer3 = true; - if (stringOutput instanceof String) answer4 = true; - - system.assert(answer1 , true); - system.assert(answer2 , true); - system.assert(answer3 , true); - system.assert(answer4 , true); - - Test.stopTest(); - } - - @isTest - static void test_createRecord_WO() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List arr = new List(); - arr.add('ServiceAppointment,Duration,Double,60'); - arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); - arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); - Test.startTest(); - Map resultArray = FollowUpAppointmentController.createRecord('WorkOrder', wo.Id, arr, sa.ArrivalWindowStartTime, sa.ArrivalWindowEndTime, '10' ); - Test.stopTest(); - } - } - - @isTest - static void test_createRecord_WO_SA() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List arr = new List(); - arr.add('WorkOrder,WorkTypeId,Reference,'+wt_sa.Id); - arr.add('ServiceAppointment,Duration,Double,60'); - arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); - arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); - Test.startTest(); - Map resultArray = FollowUpAppointmentController.createRecord('WorkOrder', wo_sa.Id, arr, sa.ArrivalWindowStartTime, sa.ArrivalWindowEndTime, '10' ); - Test.stopTest(); - } - } - - @isTest - static void test_createRecord_WOLI() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List arr = new List(); - arr.add('ServiceAppointment,Duration,Double,60'); - arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); - arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); - Test.startTest(); - Map resultArray = FollowUpAppointmentController.createRecord('WorkOrderLineItem', wo.Id, arr, sa.ArrivalWindowStartTime, sa.ArrivalWindowEndTime, '10' ); - Test.stopTest(); - } - } - - @isTest - static void test_createRecord_WOLI_SA() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List arr = new List(); - arr.add('WorkOrderLineItem,WorkTypeId,Reference,'+wt_sa.Id); - arr.add('ServiceAppointment,Duration,Double,60'); - arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); - arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); - Test.startTest(); - Map resultArray = FollowUpAppointmentController.createRecord('WorkOrderLineItem', wo_sa.Id, arr, sa.ArrivalWindowStartTime, sa.ArrivalWindowEndTime, '10' ); - Test.stopTest(); - } - } - - @isTest - static void test_createRecord_SA() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - List arr = new List(); - arr.add('ServiceAppointment,Duration,Double,60'); - arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); - arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); - Test.startTest(); - Map resultArray = FollowUpAppointmentController.createRecord('ServiceAppointment', wo.Id, arr, sa.ArrivalWindowStartTime, sa.ArrivalWindowEndTime, '10' ); - Test.stopTest(); - } - } - - - @isTest - static void test_checkPermissionSetAssignment() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Map resultArray = FollowUpAppointmentController.checkPermSetAssignedToUser(); - Test.stopTest(); - } - } - - @isTest - static void test_getWorkTypeOffset() { - User user = createUserWithPermSet(ADMIN_EMAIL); - makeData(user); - system.runas(user) { - Test.startTest(); - Decimal offset = FollowUpAppointmentController.getWorkTypeOffset(wt.Name); - Test.stopTest(); - } - } - -} diff --git a/FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json b/FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json deleted file mode 100644 index a28f942..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "extends": ["@salesforce/eslint-config-lwc/recommended", "prettier"], - "overrides": [ - { - "files": ["*.test.js"], - "rules": { - "@lwc/lwc/no-unexpected-wire-adapter-usages": "off" - } - } - ] -} diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js deleted file mode 100644 index e027c9e..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js +++ /dev/null @@ -1,88 +0,0 @@ -import { createElement } from 'lwc'; -import FollowUpAppointmentCustomToastNotifications from 'c/followUpAppointmentCustomToastNotifications'; - -let element; -describe('c-follow-up-appointment-custom-toast-notifications', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - beforeEach(() => { - element = createElement('c-follow-up-appointment-custom-toast-notifications', { - is: FollowUpAppointmentCustomToastNotifications, - }); - - element.timeout = 3000; - element.sticky = true; - element.toastId = 0; - element.closeModal = jest.fn(); - element.handleClose = jest.fn(); - element.showToast = jest.fn(); - - //document.body.appendChild(element); - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - element = createElement('c-follow-up-appointment-custom-toast-notifications', { - is: FollowUpAppointmentCustomToastNotifications, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); - - it('Call close modal', async () => { - //element.toastList = element.toastList2; - - let t = [ - { - type: 'success', - headerMessage: 'success', - message: 'message', - id: 1, - iconName: 'utility:success', - headerClass: 'slds-notify slds-notify_toast slds-theme_success', - }, - { - type: 'success', - headerMessage: 'success', - message: 'message', - id: 3, - iconName: 'utility:success', - headerClass: 'slds-notify slds-notify_toast slds-theme_success', - }, - ]; - element.toastList = [...t]; - element.sticky = true; - document.body.appendChild(element); - - return Promise.resolve().then(() => { - const action = element.shadowRoot.querySelector('lightning-button-icon'); - action.click(); - expect(action.handleClose).toHaveBeenCalledWith(evt2); - // const spy = jest.spyOn(element, "handleClose"); - // console.log(spy); - // element.dispatchEvent(new CustomEvent("click")); - // expect(spy).toBeCalledTimes(0); - }); - }); - - it('should call moveCardDown when edit clicked', async () => { - element.showToast(); - - const methodNameFake = jest.spyOn(element, 'showToast'); - // const wrapper = mount(); - expect(methodNameFake).toHaveBeenCalledTimes(1); - // return Promise.resolve().then(() => { - // expect(element.toastId).toBe(0); - // }); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/__tests__/followUpAppointmentMain.test.js b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/__tests__/followUpAppointmentMain.test.js deleted file mode 100644 index dfd6121..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/__tests__/followUpAppointmentMain.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import SettingsContainer from 'c/settingsContainer'; - -describe('c-settings-container', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-settings-container', { - is: SettingsContainer, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css deleted file mode 100644 index bb6c76f..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css +++ /dev/null @@ -1,108 +0,0 @@ -.mainContainer { - margin-top: 60px; - background: #FFFFFF; -} -.mainTitle { - font-style: normal; - font-weight: 400; - font-size: 18px; - line-height: 21px; - color: #181818; - margin-top: -3px; -} -.stepsTitle { - font-style: normal; - font-weight: 400; - font-size: 14px; - line-height: 18px; - color: #444444; -} -.headerDiv { - position: fixed; - top: 0; - left: 0; - border-top: 1px solid #e1e1e1; - padding: 16px; - height: 66px; - width: 100%; - background: linear-gradient(0deg, #F3F3F3, #F3F3F3), - linear-gradient(0deg, #F3F3F3, #F3F3F3); - z-index: 100; -} -.backButton { - height: 35px; - display: flex; - width: 34px; - align-items: center; - margin-left: 0; - justify-items: center; -} -.customPageDiv { - padding: 16px 11px 86px 11px; -} -.nextButton { - width: 100%; - height: 100%; - font-size: 1rem; - border-radius: 12px; - font-style: normal; - font-weight: 600; - font-size: 16px; - line-height: 22px; - background-color: #0176d3; - --slds-c-button-brand-color-background-hover: #0176d3; -} -.nextButtonDiv { - position: fixed; - bottom: 0; - left: 0; - border-top: 1px solid #e1e1e1; - padding: 16px; - height: 80px; - width: 100%; - background-color: #fff; - z-index: 98; -} -.empty-slots-container{ - background-color: white; - display: flex; - flex-direction: column; - align-items: center; - padding: 200px 16px; - margin-top: 10px; -} -.endPageMainTitle { - margin-top: 20px; - font-style: normal; - font-weight: 600; - font-size: 16px; - line-height: 22px; -} -.endPageSecondTitle { - margin-top: 20px; - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 22px; - width: 250px; - text-align: center; -} -/* CSS Overrides */ -.spinner{ - position: relative; - display: inline-block; - text-align: center; -} -.slds-spinner { - position: fixed; -} -.slds-spinner_container { - position: fixed; -} -.slds-faux-input, -.slds-input, -.slds-select_container .slds-select, -.slds-textarea { - border: 2px solid #C9C9C9; - border-radius: 12px; -} diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html deleted file mode 100644 index 9e29414..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html +++ /dev/null @@ -1,152 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js deleted file mode 100644 index 6e70089..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js +++ /dev/null @@ -1,19 +0,0 @@ -import FollowUpAppointments_StepTitle1 from '@salesforce/label/c.FollowUpAppointments_StepTitle1'; -import FollowUpAppointments_StepTitle2 from '@salesforce/label/c.FollowUpAppointments_StepTitle2'; -import FollowUpAppointments_NextButtonText from '@salesforce/label/c.FollowUpAppointments_NextButtonText'; -import FollowUpAppointments_EndPageApprovalText1 from '@salesforce/label/c.FollowUpAppointments_EndPageApprovalText1'; -import FollowUpAppointments_EndPageApprovalText2 from '@salesforce/label/c.FollowUpAppointments_EndPageApprovalText2'; -import FollowUpAppointments_SlotsPageTitle from '@salesforce/label/c.FollowUpAppointments_SlotsPageTitle'; -import FollowUpAppointments_NoSetupError from '@salesforce/label/c.FollowUpAppointments_NoSetupError'; - -const customLabels = { - FollowUpAppointments_StepTitle1, - FollowUpAppointments_StepTitle2, - FollowUpAppointments_NextButtonText, - FollowUpAppointments_EndPageApprovalText1, - FollowUpAppointments_EndPageApprovalText2, - FollowUpAppointments_SlotsPageTitle, - FollowUpAppointments_NoSetupError, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js deleted file mode 100644 index bfad18d..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js +++ /dev/null @@ -1,63 +0,0 @@ -import { createElement } from 'lwc'; -import followUpAppointmentSettingsContainer from 'c/followUpAppointmentSettingsContainer'; - -let element; -describe('c-follow-up-appointment-settings-container', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - beforeEach(() => { - element = createElement('c-follow-up-appointment-settings-container', { - is: followUpAppointmentSettingsContainer, - }); - - element.showDeleteDialogBox = true; - element.handleSaveEvent = jest.fn(); - element.handleCancelEvent = jest.fn(); - document.body.appendChild(element); - }); - - it('should show correct info', () => { - const fieldServiceLabel = element.shadowRoot.querySelector('.fieldservicelabel'); - expect(fieldServiceLabel.textContent).toBe('c.FollowUpAppointments_field_service_title'); - - const mainTitleElement = element.shadowRoot.querySelector('.followupmaintitle'); - expect(mainTitleElement.textContent).toBe('c.FollowUpAppointments_setting_page_title'); - - const pageTitle = element.shadowRoot.querySelector('.pageTitle'); - expect(pageTitle.textContent).toBe('c.FollowUpAppointments_setting_sub_title'); - - const pageDescription = element.shadowRoot.querySelector('.pageDescription'); - expect(pageDescription.textContent).toBe('c.FollowUpAppointments_setting_description_text'); - }); - - it('test on save button', async () => { - console.log('Element is : ' + element.shadowRoot); - const action = element.shadowRoot.querySelector('[data-id="saveBtn"]'); - console.log('Action is : ' + action); - const spy = jest.spyOn(element, 'handleSaveEvent'); - console.log(spy); - action.dispatchEvent(new CustomEvent('click')); - - return Promise.resolve().then(() => { - expect(spy).toBeCalledTimes(0); - }); - }); - - it('test on cancel button event', async () => { - console.log('Element is : ' + element.shadowRoot); - const action = element.shadowRoot.querySelector('[data-id="cancelBtn"]'); - console.log('Action is : ' + action); - const spy = jest.spyOn(element, 'handleCancelEvent'); - console.log(spy); - action.dispatchEvent(new CustomEvent('click')); - - return Promise.resolve().then(() => { - expect(spy).toBeCalledTimes(0); - }); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css deleted file mode 100644 index eefffd6..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css +++ /dev/null @@ -1,134 +0,0 @@ -.header-icon { - margin-right: 12px; -} - -.comboBox { - margin-top: 25px; - width: 346px; - margin-left: 24px; -} - -.comboBoxBackGround { - background-color: #FFFFFF; -} - -.pageTitle { - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 24px; - margin-left: 24px; - color: #181818; - margin-top: 16px; -} - -.pageDescription { - font-style: normal; - font-weight: 400; - font-size: 13px; - line-height: 20px; - height: 20px; - color: #444444; - margin-left: 24px; - margin-top: 8px; -} - -.lightningCardMain { - padding: 0px; - margin: 0px; - padding-top: 0px; - --slds-c-card-header-spacing-block-end: 0px; - --slds-c-card-header-spacing-block-start: 0px; - /* Removes SF Card body padding/margin top/bottom only */ - --slds-c-card-body-spacing-block-start: 0px; - --slds-c-card-body-spacing-block-end: 0px; -} - -.lightningTabMain { - padding-left: 0px; - --slds-c-card-header-spacing-block-end: 0px; - --slds-c-card-header-spacing-block-start: 0px; - /* Removes SF Card body padding/margin top/bottom only */ - --slds-c-card-body-spacing-block-start: 0px; - --slds-c-card-body-spacing-block-end: 0px; - padding-bottom: 0px; -} - -.footerLayout { - height: 56px; - background-color: #F3F3F3; - padding-right: 100px; - margin-top: 24px; - margin-bottom: 0px; -} - -.saveButton { - margin-top: 11px; -} - -.assignmentPermissionLayout { - margin-top: 10px; - margin-left: 24px; -} - -.permissionText { - margin-top: 25px; - margin-left: 24px; - font-style: normal; - font-size: 16px; - line-height: 24px; - height: 24px; - color: #181818; -} - -.permissionSubText { - margin-top: 8px; - margin-left: 24px; - font-style: normal; - font-size: 13px; - line-height: 20px; - color: #444444; -} - -.mobileWorkerText { - margin-top: 25px; - margin-left: 24px; - font-style: normal; - font-size: 12px; - line-height: 18px; -} - -.horizonUnitsInputField { - margin-top: 25px; - margin-left: 24px; - width: 346px; -} - -.horizonInputField { - width: 100%; -} - -.daysText { - margin-top: 30px; - margin-left: 7px; -} - -.modal { - /* Enable scroll if needed */ - /* Black w/ opacity */ - -webkit-animation-name: fadeIn; - /* Fade in the background */ - -webkit-animation-duration: 1.2s; -} - - -/* Modal Content */ - -.modal-content { - position: fixed; - bottom: 0; - background-color: #fefefe; - -webkit-animation-name: slideIn; - -webkit-animation-duration: 1s; - border-radius: 16px 16px 0px 0px !important; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js b/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js deleted file mode 100644 index 197c75c..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js +++ /dev/null @@ -1,67 +0,0 @@ -import FollowUpAppointments_SchedulingPolicyTitle from '@salesforce/label/c.FollowUpAppointments_SchedulingPolicyTitle'; -import FollowUpAppointments_field_service_title from '@salesforce/label/c.FollowUpAppointments_field_service_title'; -import FollowUpAppointments_OperatingHoursTitle from '@salesforce/label/c.FollowUpAppointments_OperatingHoursTitle'; -import FollowUpAppointments_ShowAppointmentSlotsTitle from '@salesforce/label/c.FollowUpAppointments_ShowAppointmentSlotsTitle'; -import FollowUpAppointments_SchedulingHorizonUnitsTitle from '@salesforce/label/c.FollowUpAppointments_SchedulingHorizonUnitsTitle'; -import FollowUpAppointments_DaysTitle from '@salesforce/label/c.FollowUpAppointments_DaysTitle'; -import FollowUpAppointments_Permissions from '@salesforce/label/c.FollowUpAppointments_Permissions'; -import FollowUpAppointments_AssignmentPermission from '@salesforce/label/c.FollowUpAppointments_AssignmentPermission'; -import FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker from '@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker'; -import FollowUpAppointments_MobileWorkerAsignTo_themselves from '@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_themselves'; -import FollowUpAppointments_MobileWorkerAsignTo_any_worker from '@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_any_worker'; -import FollowUpAppointments_Allow_tech_to_create_object_title from '@salesforce/label/c.FollowUpAppointments_Allow_tech_to_create_object_title'; -import FollowUpAppointments_objectName_ServiceAppointment from '@salesforce/label/c.FollowUpAppointments_objectName_ServiceAppointment'; -import FollowUpAppointments_objectName_WorkOrder from '@salesforce/label/c.FollowUpAppointments_objectName_WorkOrder'; -import FollowUpAppointments_objectName_WorkOrderLineItem from '@salesforce/label/c.FollowUpAppointments_objectName_WorkOrderLineItem'; - -import FollowUpAppointments_arriwal_window_title from '@salesforce/label/c.FollowUpAppointments_arriwal_window_title'; -import FollowUpAppointments_exact_appointment_time_title from '@salesforce/label/c.FollowUpAppointments_exact_appointment_time_title'; - -import FollowUpAppointments_setting_sub_title from '@salesforce/label/c.FollowUpAppointments_setting_sub_title'; -import FollowUpAppointments_setting_description_text from '@salesforce/label/c.FollowUpAppointments_setting_description_text'; - -import FollowUpAppointments_placeHolder_select_an_option from '@salesforce/label/c.FollowUpAppointments_placeHolder_select_an_option'; -import FollowUpAppointments_placeHolder_enter_number from '@salesforce/label/c.FollowUpAppointments_placeHolder_enter_number'; - -import FollowUpAppointments_settingPage_save_message from '@salesforce/label/c.FollowUpAppointments_settingPage_save_message'; -import FollowUpAppointments_settingPage_error_message from '@salesforce/label/c.FollowUpAppointments_settingPage_error_message'; - -import FollowUpAppointments_setting_page_title from '@salesforce/label/c.FollowUpAppointments_setting_page_title'; -import FollowUpAppointments_Permissions_subtext from '@salesforce/label/c.FollowUpAppointments_Permissions_subtext'; - -import FollowUpAppointments_setting_page_save_button_label from '@salesforce/label/c.FollowUpAppointments_setting_page_save_button_label'; -import FollowUpAppointments_setting_page_cancel_button_label from '@salesforce/label/c.FollowUpAppointments_setting_page_cancel_button_label'; -import FollowUpAppointments_settingPage_warning_message from '@salesforce/label/c.FollowUpAppointments_settingPage_warning_message'; - -const customLabels = { - FollowUpAppointments_field_service_title, - FollowUpAppointments_SchedulingPolicyTitle, - FollowUpAppointments_setting_sub_title, - FollowUpAppointments_setting_description_text, - FollowUpAppointments_OperatingHoursTitle, - FollowUpAppointments_ShowAppointmentSlotsTitle, - FollowUpAppointments_SchedulingHorizonUnitsTitle, - FollowUpAppointments_DaysTitle, - FollowUpAppointments_Permissions, - FollowUpAppointments_AssignmentPermission, - FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker, - FollowUpAppointments_MobileWorkerAsignTo_themselves, - FollowUpAppointments_MobileWorkerAsignTo_any_worker, - FollowUpAppointments_Allow_tech_to_create_object_title, - FollowUpAppointments_objectName_ServiceAppointment, - FollowUpAppointments_objectName_WorkOrder, - FollowUpAppointments_objectName_WorkOrderLineItem, - FollowUpAppointments_arriwal_window_title, - FollowUpAppointments_exact_appointment_time_title, - FollowUpAppointments_placeHolder_select_an_option, - FollowUpAppointments_placeHolder_enter_number, - FollowUpAppointments_settingPage_error_message, - FollowUpAppointments_settingPage_save_message, - FollowUpAppointments_setting_page_title, - FollowUpAppointments_Permissions_subtext, - FollowUpAppointments_setting_page_save_button_label, - FollowUpAppointments_setting_page_cancel_button_label, - FollowUpAppointments_settingPage_warning_message, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/jsconfig.json b/FollowUpAppointment/force-app/main/default/lwc/jsconfig.json deleted file mode 100644 index a72666d..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/jsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true - }, - "include": ["**/*", "../../../../.sfdx/typings/lwc/**/*.d.ts"], - "paths": { - "c/*": ["*"] - }, - "typeAcquisition": { - "include": ["jest"] - } -} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/__tests__/mobileAppointmentBookingCalendar.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/__tests__/mobileAppointmentBookingCalendar.test.js deleted file mode 100644 index 512b654..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/__tests__/mobileAppointmentBookingCalendar.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import AaRebookingCalendar from 'c/aaRebookingCalendar'; - -describe('c-mobile-appointment-booking-calendar', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-mobile-appointment-booking-calendar', { - is: AaRebookingCalendar, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js deleted file mode 100644 index e57ab9b..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js +++ /dev/null @@ -1,49 +0,0 @@ -import FollowUpAppointments_MonthName_January from '@salesforce/label/c.FollowUpAppointments_MonthName_January'; -import FollowUpAppointments_MonthName_February from '@salesforce/label/c.FollowUpAppointments_MonthName_February'; -import FollowUpAppointments_MonthName_March from '@salesforce/label/c.FollowUpAppointments_MonthName_March'; -import FollowUpAppointments_MonthName_April from '@salesforce/label/c.FollowUpAppointments_MonthName_April'; -import FollowUpAppointments_MonthName_May from '@salesforce/label/c.FollowUpAppointments_MonthName_May'; -import FollowUpAppointments_MonthName_June from '@salesforce/label/c.FollowUpAppointments_MonthName_June'; -import FollowUpAppointments_MonthName_July from '@salesforce/label/c.FollowUpAppointments_MonthName_July'; -import FollowUpAppointments_MonthName_August from '@salesforce/label/c.FollowUpAppointments_MonthName_August'; -import FollowUpAppointments_MonthName_September from '@salesforce/label/c.FollowUpAppointments_MonthName_September'; -import FollowUpAppointments_MonthName_October from '@salesforce/label/c.FollowUpAppointments_MonthName_October'; -import FollowUpAppointments_MonthName_November from '@salesforce/label/c.FollowUpAppointments_MonthName_November'; -import FollowUpAppointments_MonthName_December from '@salesforce/label/c.FollowUpAppointments_MonthName_December'; - -import FollowUpAppointments_WeekDayShort_Mon from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Mon'; -import FollowUpAppointments_WeekDayShort_Tue from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Tue'; -import FollowUpAppointments_WeekDayShort_Wed from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Wed'; -import FollowUpAppointments_WeekDayShort_Thu from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Thu'; -import FollowUpAppointments_WeekDayShort_Fri from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Fri'; -import FollowUpAppointments_WeekDayShort_Saturday from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Saturday'; -import FollowUpAppointments_WeekDayShort_Sunday from '@salesforce/label/c.FollowUpAppointments_WeekDayShort_Sunday'; -import FollowUpAppointments_Select_a_Date from '@salesforce/label/c.FollowUpAppointments_Select_a_Date'; -import FollowUpAppointments_OK from '@salesforce/label/c.FollowUpAppointments_OK'; - -const customLabels = { - FollowUpAppointments_MonthName_January, - FollowUpAppointments_MonthName_February, - FollowUpAppointments_MonthName_March, - FollowUpAppointments_MonthName_April, - FollowUpAppointments_MonthName_May, - FollowUpAppointments_MonthName_June, - FollowUpAppointments_MonthName_July, - FollowUpAppointments_MonthName_August, - FollowUpAppointments_MonthName_September, - FollowUpAppointments_MonthName_October, - FollowUpAppointments_MonthName_November, - FollowUpAppointments_MonthName_December, - - FollowUpAppointments_WeekDayShort_Mon, - FollowUpAppointments_WeekDayShort_Tue, - FollowUpAppointments_WeekDayShort_Wed, - FollowUpAppointments_WeekDayShort_Thu, - FollowUpAppointments_WeekDayShort_Fri, - FollowUpAppointments_WeekDayShort_Saturday, - FollowUpAppointments_WeekDayShort_Sunday, - FollowUpAppointments_Select_a_Date, - FollowUpAppointments_OK, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css deleted file mode 100644 index f4b809c..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css +++ /dev/null @@ -1,201 +0,0 @@ -.calendar-nav-header{ - margin-top: 10px; - padding-top: 12px; - padding-bottom: 12px; - align-items: center; -} -.selectedDay { - border-radius: 50%; - color: #FFFF; - height: 32px; - width: 32px; - background-color: #0176D3 !important; -} -.unselectedDay { - color: rgb(43, 40, 38); - height: 32px; - width: 32px; -} -.blockDate { - color: rgb(201, 199, 197); - height: 32px; - width: 32px; -} -.currentDay { - color: rgba(1,1,1,1); - border-radius: 50%; - height: 32px; - width: 32px; - border: 1px solid rgba(1,1,1,1) !important; - -} -.currentDayBlocked { - color: rgb(201, 199, 197); - border-radius: 50%; - height: 32px; - width: 32px; - border: 1px solid rgba(159, 170, 181, 0.5) !important; - background-color: #EEEEEE !important; - -} -.btn { - border: none; - cursor: pointer; - display: inline-block; - border: none; - background-color: inherit; - padding: 0px; - margin-top: 6px; - height: 32px; - width: 32px; -} -.monthButton{ - height: 24px; - font-size: 18px; - font-weight: 500; - letter-spacing: 0.38px; - line-height: 24px; - display: flex; - align-items: center; - --slds-c-button-text-color: #0176D3; -} -.full-calendar-month-button{ - font-style: normal; - font-weight: 500; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - color: #181818; - margin-top: 16px; - margin-left: 10px; -} -tr { - text-align: center; -} -td { - text-align: center; - box-sizing: initial; - color: rgb(0, 112, 210); - height: 44px; - font-size: 16px; - font-weight: normal; - letter-spacing: -0.38px; -} -th { - text-align: center; - box-sizing: initial; - color: rgb(112, 110, 107); - font-size: 13px; - font-weight: normal; - letter-spacing: -0.08px; - line-height: 18px; - width: 44px; -} -.table{ - font-size: medium; - vertical-align: middle; -} -*:focus { - outline: none; -} -.rightButton{ - margin-left: 0px; - margin-right: 0px; - padding-left: 0px; - padding-right: 0px; - position: relative; - color: rgb(106, 106, 106); -} -.leftButton{ - margin-left: 0px; - margin-right: 8px; - padding-left: 0px; - padding-right: 0px; - position: relative; - color: rgb(106, 106, 106); -} -.slds-popover{ - z-index: 9000; -} - -.modal { - position: fixed; - top: auto; - bottom: 0px; - left: 0px; - height: 99%; - overflow-y: auto; -} -.breakLine { - margin: 0; - margin: 0 -16px 5px -16px; -} -.full-calendar-close-btn{ - cursor: pointer; -} -.slds-modal__header { - padding: 14px; -} -.select-a-date-title{ - font-style: normal; - font-weight: 600; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - text-align: center; - color: #181818; -} -.modal-footer{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding: 16px; - gap: 16px; - height: 80px; - border-radius: 0px; - flex: none; - order: 3; - align-self: stretch; - flex-grow: 0; - border-top: 1px solid rgba(159, 170, 181, 0.5); - position: fixed; - bottom: 0; - left: 0; - right: 0; - background-color: white; - z-index: 100; - padding-bottom: 24px; -} -.confirmBtn { - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 50px; - font-size: 16px; - border-radius: 12px; - background-color: #0176D3; - font-weight: 500; -} -.dialogContainer{ - padding: 60px 16px 80px 16px; - height: 99vh; -} -@media screen and (orientation:landscape) { - .slds-modal__container{ - height: 130vh !important; - } -} - -.changecolor{ - --lwc-colorTextIconDefault: #0176D3; - fill:#0176D3; - --sds-c-icon-color-foreground-default: #0176D3; -} - -.scrollableweek{ - overflow-y: auto; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html deleted file mode 100644 index 31e14d9..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html +++ /dev/null @@ -1,244 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js deleted file mode 100644 index c091bb4..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import CompactAppointmentInfo from 'c/compactAppointmentInfo'; - -describe('c-compact-appointment-info', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-compact-appointment-info', { - is: CompactAppointmentInfo, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js deleted file mode 100644 index b4f61d6..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js +++ /dev/null @@ -1,7 +0,0 @@ -import Schedule_Appointment_current_appointment_title from '@salesforce/label/c.Schedule_Appointment_current_appointment_title'; - -const customLabels = { - Schedule_Appointment_current_appointment_title, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css deleted file mode 100644 index 57234eb..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css +++ /dev/null @@ -1,57 +0,0 @@ -.container{ - background-color: white; - padding: 16px 16px; -} -.title{ - font-size: 18px; - line-height: 21px; - font-weight: 500; - color: rgb(0,0,0); - margin-bottom: 13px; -} - -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px 16px -16px; -} - -.info{ - font-size: 16px; - line-height: 22px; - color: rgba(68, 68, 68, 1); - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; -} - -.info-emph{ - font-style: normal; - font-weight: 600; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - color: #181818; - margin-bottom: 8px; -} - -.info-date{ - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 22px; - display: flex; - align-items: center; - color: #181818; - margin-bottom: 8px; -} - -.secondary-title{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: #444444; -} - diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html deleted file mode 100644 index c7a17e0..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/__tests__/mobileAppointmentBookingCustomToast.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/__tests__/mobileAppointmentBookingCustomToast.test.js deleted file mode 100644 index 7bb7797..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/__tests__/mobileAppointmentBookingCustomToast.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import CustomToast from 'c/customToast'; - -describe('c-custom-toast', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-custom-toast', { - is: CustomToast, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css deleted file mode 100644 index e3a2400..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css +++ /dev/null @@ -1,10 +0,0 @@ -.custom-toast-container{ - position: absolute; -} - -.toast-close-icon{ - --lwc-colorTextIconDefault: #FFFFFF; -} -.content-container{ - padding-left: 12px; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html deleted file mode 100644 index 55bac79..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html +++ /dev/null @@ -1,19 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/__tests__/mobileAppointmentBookingLanding.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/__tests__/mobileAppointmentBookingLanding.test.js deleted file mode 100644 index 73a2f04..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/__tests__/mobileAppointmentBookingLanding.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import Landing from 'c/landing'; - -describe('c-landing', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-landing', { - is: Landing, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js deleted file mode 100644 index 5dc1f07..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js +++ /dev/null @@ -1,33 +0,0 @@ -import Schedule_Appointment_page_title from '@salesforce/label/c.Schedule_Appointment_page_title'; -import FollowUpAppointments_select_new_date_to_schedule from '@salesforce/label/c.FollowUpAppointments_select_new_date_to_schedule'; -import FollowUpAppointments_select_an_available_appointment_time from '@salesforce/label/c.FollowUpAppointments_select_an_available_appointment_time'; -import FollowUpAppointments_accept_new_appointment_button from '@salesforce/label/c.FollowUpAppointments_accept_new_appointment_button'; -import FollowUpAppointments_next_button_title from '@salesforce/label/c.FollowUpAppointments_next_button_title'; -import FollowUpAppointments_new_appointment_msg from '@salesforce/label/c.FollowUpAppointments_new_appointment_msg'; -import FollowUpAppointments_same_appointment_selected_warning from '@salesforce/label/c.FollowUpAppointments_same_appointment_selected_warning'; -import FollowUpAppointments_confirmation_service_requested from '@salesforce/label/c.FollowUpAppointments_confirmation_service_requested'; -import FollowUpAppointments_selected_appointment_msg from '@salesforce/label/c.FollowUpAppointments_selected_appointment_msg'; -import FollowUpAppointments_toastMessage_appointment_schedule from '@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_schedule'; -import FollowUpAppointments_confirmation_failure_message from '@salesforce/label/c.FollowUpAppointments_confirmation_failure_message'; -import FollowUpAppointments_toastMessage_schedule_appointment_fail_message from '@salesforce/label/c.FollowUpAppointments_toastMessage_schedule_appointment_fail_message'; -import FollowUpAppointments_assigned_to_you from '@salesforce/label/c.FollowUpAppointments_assigned_to_you'; -import FollowUpAppointments_assigned_to_any_available_worker from '@salesforce/label/c.FollowUpAppointments_assigned_to_any_available_worker'; - -const customLabels = { - FollowUpAppointments_select_new_date_to_schedule, - FollowUpAppointments_select_an_available_appointment_time, - FollowUpAppointments_accept_new_appointment_button, - FollowUpAppointments_next_button_title, - FollowUpAppointments_new_appointment_msg, - FollowUpAppointments_same_appointment_selected_warning, - FollowUpAppointments_confirmation_service_requested, - FollowUpAppointments_selected_appointment_msg, - Schedule_Appointment_page_title, - FollowUpAppointments_toastMessage_appointment_schedule, - FollowUpAppointments_confirmation_failure_message, - FollowUpAppointments_toastMessage_schedule_appointment_fail_message, - FollowUpAppointments_assigned_to_you, - FollowUpAppointments_assigned_to_any_available_worker, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css deleted file mode 100644 index 56a909b..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css +++ /dev/null @@ -1,27 +0,0 @@ -.page-header{ - display: flex; -} -.landing-container{ - background-color: #E5E5E5; -} - -.landing-section{ - margin-bottom: 10px; -} - -.test{ - background-color: blue; - height: 300px; -} - -.spinner{ - position: relative; - display: inline-block; - text-align: center; -} -.slds-spinner { - position: fixed; -} -.slds-spinner_container { - position: fixed; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html deleted file mode 100644 index 1df5cf7..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js deleted file mode 100644 index 5cb1451..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js +++ /dev/null @@ -1,17 +0,0 @@ -import FollowUpAppointments_new_appointment_msg from '@salesforce/label/c.FollowUpAppointments_new_appointment_msg'; -import FollowUpAppointments_accept_new_appointment_button from '@salesforce/label/c.FollowUpAppointments_accept_new_appointment_button'; -import FollowUpAppointments_bottom_sheet_success from '@salesforce/label/c.FollowUpAppointments_bottom_sheet_success'; -import FollowUpAppointments_bottom_sheet_failure_title from '@salesforce/label/c.FollowUpAppointments_bottom_sheet_failure_title'; -import FollowUpAppointments_bottom_sheet_failure_body from '@salesforce/label/c.FollowUpAppointments_bottom_sheet_failure_body'; -import FollowUpAppointments_OK from '@salesforce/label/c.FollowUpAppointments_OK'; - -const customLabels = { - FollowUpAppointments_new_appointment_msg, - FollowUpAppointments_accept_new_appointment_button, - FollowUpAppointments_bottom_sheet_success, - FollowUpAppointments_bottom_sheet_failure_title, - FollowUpAppointments_bottom_sheet_failure_body, - FollowUpAppointments_OK, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css deleted file mode 100644 index ae1f781..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css +++ /dev/null @@ -1,187 +0,0 @@ -.main-container{ - padding: 16px; -} - -.modal-container{ - width: 100%; - min-height: 225px; - background: white; - border-top-left-radius: 8px; - border-top-right-radius: 8px; -} - -.spinner-container{ - position: inherit; -} - -.confirmBtn { - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 50px; - border-radius: 12px; - background-color: #0176D3; - font-style: normal; - font-weight: 600; - font-size: 16px; - line-height: 22px; - display: flex; - align-items: center; - text-align: center; - color: #FFFFFF; -} - -.acceptNewAptTitle{ - flex-direction: column; - font-style: normal; - font-weight: 600; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - text-align: center; - color: #181818; -} -.acceptNewAptClose{ - margin-top: 2px; - cursor: pointer; -} -.modal { - position: fixed; - top: auto; - bottom: 0px; - left: 0px; -} - -svg[class*="slds-button__icon_left"]{ - padding-bottom: 2px !important; -} - -.modal-footer{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding: 0 16px 16px 16px; - border-radius: 0px; - flex: none; - order: 3; - align-self: stretch; - flex-grow: 0; - height: 65px; -} - -.modal-title-container{ - border-bottom: 1px solid rgba(159, 170, 181, 0.5); - box-sizing: border-box; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 0px; - isolation: isolate; - height: 48px; - padding: 16px; -} - -.info{ - font-size: 16px; - line-height: 22px; - color: rgba(68, 68, 68, 1); - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; - margin: 16px; -} - -.info-emph{ - font-style: normal; - font-weight: 600; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - color: #181818; - margin-bottom: 8px; -} - -.info-date{ - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 22px; - display: flex; - align-items: center; - color: #181818; - margin-bottom: 8px; -} - -.secondary-title{ - font-style: normal; - font-weight: 400; - font-size: 16px; - line-height: 22px; - display: flex; - align-items: center; - color: #444444; - margin-bottom: 8px; -} - -.contact-name-title { - font-style: normal; - font-weight: 600; - font-size: 16px; - line-height: 22px; - display: flex; - align-items: center; - color: #181818; - margin-bottom: 8px; -} -.scheduling-results-container{ - display: flex; - flex-direction: column; - align-items: center; - padding: 43px 0; -} - -.scheduling-results-title{ - margin-top: 16px; - font-size: 16px; - line-height: 22px; - font-weight: 500; -} - -.scheduling-results-info{ - font-size: 16px; - line-height: 22px; - color: rgba(0, 0, 0, 1); -} - -.schedule-results-header-icon-container{ - display: flex; - justify-content: center; - margin-bottom: 16px; -} - -.schedule-results-header-icon-title{ - margin-left: 8px; - font-size: 16px; - line-height: 22px; - font-weight: 500; -} - -.hide{ - visibility: hidden; -} - -.top-space{ - margin-top: 16px; -} - -.button:active{ - opacity: 25%; -} -.slds-modal__content { - border-radius: 12px; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html deleted file mode 100644 index 9da4880..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html +++ /dev/null @@ -1,105 +0,0 @@ - - diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__tests__/mobileAppointmentBookingResourceAssignment.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__tests__/mobileAppointmentBookingResourceAssignment.test.js deleted file mode 100644 index 2d54afa..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__tests__/mobileAppointmentBookingResourceAssignment.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import ResourceAssignment from 'c/resourceAssignment'; - -describe('c-resource-assignment', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-resource-assignment', { - is: ResourceAssignment, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css deleted file mode 100644 index 2d7c284..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css +++ /dev/null @@ -1,25 +0,0 @@ -.container{ - background-color: white; - margin: 10px 0; - padding: 13px 16px 0px 16px; -} -.title{ - font-size: 18px; - line-height: 21px; - font-weight: 500; - color: rgb(0,0,0); - margin-bottom: 13px; -} -.mobile-worker-content{ - padding-top: 16px; - font-size: 16px; - line-height: 22px; -} -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px; -} -.resourceRadioGroup { - --slds-c-radio-mark-color-foreground: #0176D3; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html deleted file mode 100644 index a19c81d..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html +++ /dev/null @@ -1,24 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js deleted file mode 100644 index 3cd9e03..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js +++ /dev/null @@ -1,48 +0,0 @@ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; - -export default class MobileAppointmentBookingResourceAssignment extends LightningElement { - LABELS = customLabels; - value = 'ASSIGN_TO_ME'; - @api currentAssignmentMethod; - @api userName = ''; - @api selecteddate; - @api isExcluded; - @api showMobileWorkerChoice; - @api excludedMsg = this.LABELS.FollowUpAppointments_cant_select_Mobile_Worker_excluded; - resourceAssignmentTitle = this.LABELS.FollowUpAppointments_Mobile_Worker_radio_title; - - @api get showExcludedMsg() { - return this.isExcluded; - } - - get options() { - return [ - { - label: `${this.LABELS.FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable} (${ - this.userName || ' ' - })`, - value: 'ASSIGN_TO_ME', - }, - { - label: this.LABELS.FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable, - value: 'ASSIGN_TO_ANY_AVIALABLE', - }, - ]; - } - - handleAssignmentMethodChange(event) { - event.preventDefault(); - - console.log('Mobile Worker Method Changed to::: ' + event.target.value); - const assignmentMethodEvent = new CustomEvent('onassignmentmethodchanged', { - detail: { - assignmentMethod: event.target.value, - selecteddate: this.selecteddate, - }, - composed: true, - bubbles: true, - }); - this.dispatchEvent(assignmentMethodEvent); - } -} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/__tests__/mobileAppointmentBookingSchedulingContainer.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/__tests__/mobileAppointmentBookingSchedulingContainer.test.js deleted file mode 100644 index 452e01b..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/__tests__/mobileAppointmentBookingSchedulingContainer.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import SchedulingContainer from 'c/schedulingContainer'; - -describe('c-scheduling-container', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-scheduling-container', { - is: SchedulingContainer, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css deleted file mode 100644 index d24f359..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css +++ /dev/null @@ -1,9 +0,0 @@ -.calendarView { - position: -webkit-sticky; - position: sticky; - top: 66px; - background-color: white; - z-index: 10; - padding: 0 16px; - box-shadow: 0px 4px 0px #E5E5E5; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html deleted file mode 100644 index a545ee6..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html +++ /dev/null @@ -1,49 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/__tests__/mobileAppointmentBookingSlotsContainer.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/__tests__/mobileAppointmentBookingSlotsContainer.test.js deleted file mode 100644 index ad21ea2..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/__tests__/mobileAppointmentBookingSlotsContainer.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import SlotsContainer from 'c/slotsContainer'; - -describe('c-mobile-appointment-booking-slots-container', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-mobile-appointment-booking-slots-container', { - is: SlotsContainer, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js deleted file mode 100644 index 8fb92ea..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js +++ /dev/null @@ -1,58 +0,0 @@ -import FollowUpAppointments_no_available_appointments_msg from '@salesforce/label/c.FollowUpAppointments_no_available_appointments_msg'; -import FollowUpAppointments_MonthName_January from '@salesforce/label/c.FollowUpAppointments_MonthName_January'; -import FollowUpAppointments_MonthName_February from '@salesforce/label/c.FollowUpAppointments_MonthName_February'; -import FollowUpAppointments_MonthName_March from '@salesforce/label/c.FollowUpAppointments_MonthName_March'; -import FollowUpAppointments_MonthName_April from '@salesforce/label/c.FollowUpAppointments_MonthName_April'; -import FollowUpAppointments_MonthName_May from '@salesforce/label/c.FollowUpAppointments_MonthName_May'; -import FollowUpAppointments_MonthName_June from '@salesforce/label/c.FollowUpAppointments_MonthName_June'; -import FollowUpAppointments_MonthName_July from '@salesforce/label/c.FollowUpAppointments_MonthName_July'; -import FollowUpAppointments_MonthName_August from '@salesforce/label/c.FollowUpAppointments_MonthName_August'; -import FollowUpAppointments_MonthName_September from '@salesforce/label/c.FollowUpAppointments_MonthName_September'; -import FollowUpAppointments_MonthName_October from '@salesforce/label/c.FollowUpAppointments_MonthName_October'; -import FollowUpAppointments_MonthName_November from '@salesforce/label/c.FollowUpAppointments_MonthName_November'; -import FollowUpAppointments_MonthName_December from '@salesforce/label/c.FollowUpAppointments_MonthName_December'; - -import FollowUpAppointments_WeekDayLong_Monday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Monday'; -import FollowUpAppointments_WeekDayLong_Tuesday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Tuesday'; -import FollowUpAppointments_WeekDayLong_Wednesday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Wednesday'; -import FollowUpAppointments_WeekDayLong_Thursday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Thursday'; -import FollowUpAppointments_WeekDayLong_Friday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Friday'; -import FollowUpAppointments_WeekDayLong_Saturday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Saturday'; -import FollowUpAppointments_WeekDayLong_Sunday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Sunday'; -import FollowUpAppointments_today_text from '@salesforce/label/c.FollowUpAppointments_today_text'; -import FollowUpAppointments_all_available_appointments from '@salesforce/label/c.FollowUpAppointments_all_available_appointments'; -import FollowUpAppointments_recommended_appointments from '@salesforce/label/c.FollowUpAppointments_recommended_appointments'; -import FollowUpAppointments_empty_state_select_any_available_worker from '@salesforce/label/c.FollowUpAppointments_empty_state_select_any_available_worker'; -import FollowUpAppointments_empty_state_change_the_dates from '@salesforce/label/c.FollowUpAppointments_empty_state_change_the_dates'; - -const customLabels = { - FollowUpAppointments_no_available_appointments_msg, - FollowUpAppointments_today_text, - - FollowUpAppointments_MonthName_January, - FollowUpAppointments_MonthName_February, - FollowUpAppointments_MonthName_March, - FollowUpAppointments_MonthName_April, - FollowUpAppointments_MonthName_May, - FollowUpAppointments_MonthName_June, - FollowUpAppointments_MonthName_July, - FollowUpAppointments_MonthName_August, - FollowUpAppointments_MonthName_September, - FollowUpAppointments_MonthName_October, - FollowUpAppointments_MonthName_November, - FollowUpAppointments_MonthName_December, - - FollowUpAppointments_WeekDayLong_Monday, - FollowUpAppointments_WeekDayLong_Tuesday, - FollowUpAppointments_WeekDayLong_Wednesday, - FollowUpAppointments_WeekDayLong_Thursday, - FollowUpAppointments_WeekDayLong_Friday, - FollowUpAppointments_WeekDayLong_Saturday, - FollowUpAppointments_WeekDayLong_Sunday, - FollowUpAppointments_all_available_appointments, - FollowUpAppointments_recommended_appointments, - FollowUpAppointments_empty_state_select_any_available_worker, - FollowUpAppointments_empty_state_change_the_dates, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css deleted file mode 100644 index 3870c47..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css +++ /dev/null @@ -1,114 +0,0 @@ -.header{ - color: rgb(0, 0, 0); - font-size: 16px; - font-weight: 500; - letter-spacing: -0.38px; - margin-top: 24px; - margin-bottom: 8px; -} -.timeslotButton{ - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 48px; - font-size: 16px; - border-radius: 12px; - border: 2px solid #0176D3; - color: #0176D3; - line-height: 22px; - display: flex; - align-items: center; - text-align: center; - margin: 8px 0; - font-style: normal; - font-weight: 600; -} - -.timeslotButton:active{ - opacity: 25%; -} -.timeslotButton:hover{ - opacity: 25%; -} -.timeslotButton:focus{ - opacity: 25%; -} - -.time-slot-btn-wrapper{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding-top: 8px; - gap: 16px; -} -.noSlotLabel{ - height: 18px; - color: #706e6b; - font-size: 15px; - font-weight: normal; - letter-spacing: -0.36px; -} -.headerBold{ - color: rgb(0, 0, 0); - font-size: 16px; - font-weight: 700; - letter-spacing: -0.38px; -} -.slots-container{ - background-color: white; - padding: 0 16px 16px 16px; -} -.page-title{ - color: rgb(0, 0, 0); - font-size: 18px; - font-weight: 500; - letter-spacing: -0.38px; - margin-top: 10px; - margin-bottom: 4px; - padding-top: 10px; - padding-bottom: 10px; -} - -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px; -} - -.section{ - background-color: rgba(238, 238, 238, 1); - height: 10px; - margin: 16px -16px 0 -16px; -} - -.active-slot{ - opacity: 25%; -} - -.grey-action-icon{ - margin-bottom: 16px; - --sds-c-icon-color-background: #EEEEEE; -} - -.empty-slots-container{ - background-color: white; - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 16px; - margin-top: 10px; -} - -.empty-slos-title{ - font-size: 16px; - line-height: 22px; - font-weight: 500; -} -.empty-slos-body{ - font-size: 16px; - line-height: 22px; - margin-top: 16px; - text-align: center; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html deleted file mode 100644 index 22eea19..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html +++ /dev/null @@ -1,67 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js deleted file mode 100644 index bfabc6a..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js +++ /dev/null @@ -1,45 +0,0 @@ -import FollowUpAppointments_MonthName_January from '@salesforce/label/c.FollowUpAppointments_MonthName_January'; -import FollowUpAppointments_MonthName_February from '@salesforce/label/c.FollowUpAppointments_MonthName_February'; -import FollowUpAppointments_MonthName_March from '@salesforce/label/c.FollowUpAppointments_MonthName_March'; -import FollowUpAppointments_MonthName_April from '@salesforce/label/c.FollowUpAppointments_MonthName_April'; -import FollowUpAppointments_MonthName_May from '@salesforce/label/c.FollowUpAppointments_MonthName_May'; -import FollowUpAppointments_MonthName_June from '@salesforce/label/c.FollowUpAppointments_MonthName_June'; -import FollowUpAppointments_MonthName_July from '@salesforce/label/c.FollowUpAppointments_MonthName_July'; -import FollowUpAppointments_MonthName_August from '@salesforce/label/c.FollowUpAppointments_MonthName_August'; -import FollowUpAppointments_MonthName_September from '@salesforce/label/c.FollowUpAppointments_MonthName_September'; -import FollowUpAppointments_MonthName_October from '@salesforce/label/c.FollowUpAppointments_MonthName_October'; -import FollowUpAppointments_MonthName_November from '@salesforce/label/c.FollowUpAppointments_MonthName_November'; -import FollowUpAppointments_MonthName_December from '@salesforce/label/c.FollowUpAppointments_MonthName_December'; - -import FollowUpAppointments_WeekDayLong_Monday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Monday'; -import FollowUpAppointments_WeekDayLong_Tuesday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Tuesday'; -import FollowUpAppointments_WeekDayLong_Wednesday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Wednesday'; -import FollowUpAppointments_WeekDayLong_Thursday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Thursday'; -import FollowUpAppointments_WeekDayLong_Friday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Friday'; -import FollowUpAppointments_WeekDayLong_Saturday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Saturday'; -import FollowUpAppointments_WeekDayLong_Sunday from '@salesforce/label/c.FollowUpAppointments_WeekDayLong_Sunday'; - -const customLabels = { - FollowUpAppointments_MonthName_January, - FollowUpAppointments_MonthName_February, - FollowUpAppointments_MonthName_March, - FollowUpAppointments_MonthName_April, - FollowUpAppointments_MonthName_May, - FollowUpAppointments_MonthName_June, - FollowUpAppointments_MonthName_July, - FollowUpAppointments_MonthName_August, - FollowUpAppointments_MonthName_September, - FollowUpAppointments_MonthName_October, - FollowUpAppointments_MonthName_November, - FollowUpAppointments_MonthName_December, - - FollowUpAppointments_WeekDayLong_Monday, - FollowUpAppointments_WeekDayLong_Tuesday, - FollowUpAppointments_WeekDayLong_Wednesday, - FollowUpAppointments_WeekDayLong_Thursday, - FollowUpAppointments_WeekDayLong_Friday, - FollowUpAppointments_WeekDayLong_Saturday, - FollowUpAppointments_WeekDayLong_Sunday, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js deleted file mode 100644 index e46fa9e..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js +++ /dev/null @@ -1 +0,0 @@ -export * from './formatHelpers'; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalcHelpers b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalcHelpers deleted file mode 100644 index 56be0e5..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalcHelpers +++ /dev/null @@ -1,46 +0,0 @@ -/* eslint-disable no-undef */ -SCHEDULING_UNIT_DAY = "Days"; -SCHEDULING_UNIT_WEEK = "Weeks"; -SCHEDULING_UNIT_MONTH = "Months"; - -const calculateMaxValidHorizonDate = (schedulingHorizonValue, selectedHorizonUnit, serviceAppointmentDueDate) => { - if (schedulingHorizonValue && selectedHorizonUnit) { - let currentDate = new Date(); - let targetDate; - switch (selectedHorizonUnit) { - case this.SCHEDULING_UNIT_WEEK: - targetDate = new Date(currentDate.setDate(currentDate.getDate() + schedulingHorizonValue * 7)); - break; - case this.SCHEDULING_UNIT_MONTH: - targetDate = new Date(currentDate.setMonth(currentDate.getMonth() + schedulingHorizonValue)); - break; - default: //this.SCHEDULING_UNIT_DAY - targetDate = new Date(currentDate.setDate(currentDate.getDate() + schedulingHorizonValue)); - } - - console.log("Scheduling horizon unit : new date is : " + targetDate); - - if (serviceAppointmentDueDate < targetDate) - return serviceAppointmentDueDate; - - return targetDate; - - } - return serviceAppointmentDueDate; - -} - -const convertDateUTCtoLocal = (date) => { - if (date && date !== 'null') { - return new Date((date.replace(/ /g, "T") + '.000Z')); - } - return ''; - -} - - - -export { - calculateMaxValidHorizonDate, - convertDateUTCtoLocal -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers b/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers deleted file mode 100644 index 2cdd918..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers +++ /dev/null @@ -1,40 +0,0 @@ -const calculateMaxValidHorizonDate = (schedulingHorizonValue, selectedHorizonUnit, serviceAppointmentDueDate) => { - if (schedulingHorizonValue && selectedHorizonUnit) { - let currentDate = new Date(); - let targetDate; - switch (selectedHorizonUnit) { - case "Weeks": - targetDate = new Date(currentDate.setDate(currentDate.getDate() + schedulingHorizonValue * 7)); - break; - case "Months": - targetDate = new Date(currentDate.setMonth(currentDate.getMonth() + schedulingHorizonValue)); - break; - default: //this.SCHEDULING_UNIT_DAY - targetDate = new Date(currentDate.setDate(currentDate.getDate() + schedulingHorizonValue)); - } - - console.log("Scheduling horizon unit : new date is : " + targetDate); - - if (serviceAppointmentDueDate < targetDate) - return serviceAppointmentDueDate; - - return targetDate; - - } - return serviceAppointmentDueDate; - -} - -const convertDateUTCtoLocal = (date) => { - if (date && date !== 'null') { - return new Date((date.replace(/ /g, "T") + '.000Z')); - } - return ''; -} - - - -export { - calculateMaxValidHorizonDate, - convertDateUTCtoLocal -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js deleted file mode 100644 index 14e5335..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js +++ /dev/null @@ -1,113 +0,0 @@ -import { createElement } from 'lwc'; -import MobileWorkFlowPage from 'c/mobileWorkFlowPage'; - -jest.mock( - '@salesforce/apex/FollowUpAppointmentController.saveFieldSettings', - () => { - return { - default: jest.fn(() => ({ - data: 'success', - Asset: 'Asset', - ServiceAppointment: 'Service Appointment', - })), - }; - }, - { virtual: true } -); - -jest.mock( - './labels', - () => { - return { - MobileDashboard_card_filter_titleTime: 'test', - }; - }, - { virtual: true } -); - -let element; -describe('c-mobile-work-flow-page', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - beforeEach(() => { - element = createElement('c-mobile-work-flow-page', { - is: MobileWorkFlowPage, - }); - - element.showDeleteDialogBox = true; - element.handleDeleteEventDialogBox = jest.fn(); - element.handleAddScreenEvent = jest.fn(); - element.showModal = true; - element.saveDetails = jest.fn(); - element.closeModal = jest.fn(); - element.SCREEN1 = 1; - element.SCREEN2 = 2; - element.SCREE3 = 3; - - document.body.appendChild(element); - }); - - it('should show correct info', () => { - const mainInfoText = element.shadowRoot.querySelector('.mainInfoText'); - expect(mainInfoText.textContent).toBe('c.FollowUpAppointments_MobileWorkFlow_Info_text'); - }); - - it('Call handle add screen event', async () => { - console.log('Element is : ' + element.shadowRoot); - const action = element.shadowRoot.querySelector('[data-id="addscreenevent"]'); - console.log('Action is : ' + action); - const spy = jest.spyOn(element, 'handleAddScreenEvent'); - console.log(spy); - action.dispatchEvent(new CustomEvent('click')); - - return Promise.resolve().then(() => { - expect(spy).toBeCalledTimes(0); - }); - }); - - it('Handle save step details', async () => { - console.log('Element is : ' + element.shadowRoot); - let action = element.shadowRoot.querySelector('[data-id="saveDetailsDialog"]'); - console.log('Action is : ' + action); - - action.click(); - - return Promise.resolve().then(() => { - const mainInfoText = element.shadowRoot.querySelector('.mainInfoText'); - expect(mainInfoText.textContent).toBe('c.FollowUpAppointments_MobileWorkFlow_Info_text'); - }); - - // return Promise.resolve() - // .then(async () => { - // expect(spy).toBeCalledTimes(0); - // }) - // .then(() => { - // expect(spy).toBeCalledTimes(0); - // }); - }); - - it('Handle close modal', async () => { - console.log('Element is : ' + element.shadowRoot); - const action = element.shadowRoot.querySelector('[data-id="closeDialog"]'); - console.log('Action is : ' + action); - const spy = jest.spyOn(element, 'closeModal'); - console.log(spy); - action.dispatchEvent(new CustomEvent('click')); - - return Promise.resolve().then(() => { - expect(spy).toBeCalledTimes(0); - }); - }); - - it('Test step title value', () => { - element.currentScreenTitle = 'screenTitle'; - const mainInfoText = element.shadowRoot.querySelector('[data-id="stepTitleId"]'); - console.log('Value of the mainInfoText ' + mainInfoText.value); - expect(mainInfoText.value).toBe(mainInfoText.value); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js deleted file mode 100644 index 3480eba..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js +++ /dev/null @@ -1,64 +0,0 @@ -import FollowUpAppointments_add_step_button_label from '@salesforce/label/c.FollowUpAppointments_add_step_button_label'; -import FollowUpAppointments_edit_step_text_label from '@salesforce/label/c.FollowUpAppointments_edit_step_text_label'; -import FollowUpAppointments_new_step_text_label from '@salesforce/label/c.FollowUpAppointments_new_step_text_label'; -import FollowUpAppointments_step_name_text from '@salesforce/label/c.FollowUpAppointments_step_name_text'; -import FollowUpAppointments_Object_text from '@salesforce/label/c.FollowUpAppointments_Object_text'; -import FollowUpAppointments_placeholder_step_name from '@salesforce/label/c.FollowUpAppointments_placeholder_step_name'; -import FollowUpAppointments_select_fields from '@salesforce/label/c.FollowUpAppointments_select_fields'; -import FollowUpAppointments_button_save from '@salesforce/label/c.FollowUpAppointments_button_save'; -import FollowUpAppointments_button_cancel from '@salesforce/label/c.FollowUpAppointments_button_cancel'; -import FollowUpAppointments_duallist_available_fields from '@salesforce/label/c.FollowUpAppointments_duallist_available_fields'; -import FollowUpAppointments_duallist_selected_fields from '@salesforce/label/c.FollowUpAppointments_duallist_selected_fields'; -import FollowUpAppointments_placeHolder_select_an_option from '@salesforce/label/c.FollowUpAppointments_placeHolder_select_an_option'; -import FollowUpAppointments_placeholder_search_fields from '@salesforce/label/c.FollowUpAppointments_placeholder_search_fields'; - -import FollowUpAppointments_MobileWorkFlow_Info_text from '@salesforce/label/c.FollowUpAppointments_MobileWorkFlow_Info_text'; -import FollowUpAppointments_MobileWorkFlow_info_help_url from '@salesforce/label/c.FollowUpAppointments_MobileWorkFlow_info_help_url'; - -import FollowUpAppointments_delete_step_heading from '@salesforce/label/c.FollowUpAppointments_delete_step_heading'; -import FollowUpAppointments_delete_step_body from '@salesforce/label/c.FollowUpAppointments_delete_step_body'; - -import FollowUpAppointments_delete_cancel_button from '@salesforce/label/c.FollowUpAppointments_delete_cancel_button'; -import FollowUpAppointments_delete_button_title from '@salesforce/label/c.FollowUpAppointments_delete_button_title'; - -import FollowUpAppointments_settings_duplicateScreenToastMessage from '@salesforce/label/c.FollowUpAppointments_settings_duplicateScreenToastMessage'; -import FollowUpAppointments_settings_deleteScreenToastMessage from '@salesforce/label/c.FollowUpAppointments_settings_deleteScreenToastMessage'; -import FollowUpAppointments_settings_createScreenToastMessage from '@salesforce/label/c.FollowUpAppointments_settings_createScreenToastMessage'; - -import FollowUpAppointments_settingPage_error_duplicate_screen from '@salesforce/label/c.FollowUpAppointments_settingPage_error_duplicate_screen'; -import FollowUpAppointments_settingPage_error_delete_screen from '@salesforce/label/c.FollowUpAppointments_settingPage_error_delete_screen'; -import FollowUpAppointments_workflow_addStepFailureMessage from '@salesforce/label/c.FollowUpAppointments_workflow_addStepFailureMessage'; -import FollowUpAppointments_settingPage_save_message from '@salesforce/label/c.FollowUpAppointments_settingPage_save_message'; -import FollowUpAppointments_settingPage_error_message from '@salesforce/label/c.FollowUpAppointments_settingPage_error_message'; - -const customLabels = { - FollowUpAppointments_add_step_button_label, - FollowUpAppointments_edit_step_text_label, - FollowUpAppointments_new_step_text_label, - FollowUpAppointments_step_name_text, - FollowUpAppointments_Object_text, - FollowUpAppointments_placeholder_step_name, - FollowUpAppointments_select_fields, - FollowUpAppointments_button_save, - FollowUpAppointments_button_cancel, - FollowUpAppointments_duallist_available_fields, - FollowUpAppointments_duallist_selected_fields, - FollowUpAppointments_placeHolder_select_an_option, - FollowUpAppointments_placeholder_search_fields, - FollowUpAppointments_MobileWorkFlow_Info_text, - FollowUpAppointments_MobileWorkFlow_info_help_url, - FollowUpAppointments_delete_step_heading, - FollowUpAppointments_delete_step_body, - FollowUpAppointments_delete_cancel_button, - FollowUpAppointments_delete_button_title, - FollowUpAppointments_settings_duplicateScreenToastMessage, - FollowUpAppointments_settings_deleteScreenToastMessage, - FollowUpAppointments_settingPage_error_duplicate_screen, - FollowUpAppointments_settingPage_error_delete_screen, - FollowUpAppointments_settings_createScreenToastMessage, - FollowUpAppointments_workflow_addStepFailureMessage, - FollowUpAppointments_settingPage_save_message, - FollowUpAppointments_settingPage_error_message, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css deleted file mode 100644 index b8d4622..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css +++ /dev/null @@ -1,116 +0,0 @@ -.mainDiv { - height: 500px; - width: 300px; - margin-top: 50px; - margin-left: 30px; -} - -.layoutItem { - height: 500px; - width: 300px; - margin-top: 20px; - margin-left: 30px; -} - -.mainInfoText { - margin-left: 30px; - margin-top: 10px; -} - -.fieldText { - margin-top: 10px; -} - -.newAppointmentTitleLayout {} - -.deleteIcon { - padding-top: 12px; - margin-left: 15px; - width: 10px; - height: 10px; -} - -.permissionText { - padding-top: 15px; - margin-left: 20px; - padding-bottom: 10px; -} - -.screenTitleLayout { - height: 54px; - background-color: #F3F3F3; -} - -.screenTitle1 { - padding-top: 5px; - margin-left: 15px; -} - -.screenTitle2 { - padding-top: 1px; - margin-left: 15px; -} - -.screenFooterDivElement { - margin-top: 340px; - height: 50px; -} - -.inputFieldTitle { - width: 100%; -} - -.layoutMainPage { - width: 100%; -} - -.layoutItem1 { - width: 45%; -} - -.editIcon { - margin-top: 15px; - margin-right: 20px; - background-color: #F3F3F3; - height: 30px; - padding-top: 4px; -} - -.editButton { - margin-top: 15px; - margin-right: 0px; -} - -.leftrightDivLayout { - margin-top: 15px; - margin-left: 20px; -} - -.footerLayout { - height: 48px; - padding-right: 60px; - margin-top: 50px; -} - -.addStepBtn { - margin-top: 15px; - margin-left: 30px; - margin-bottom: 10px; -} - -.saveButton { - margin-top: 10px; -} - -.comboBox { - margin-right: 15px; -} - -.fieldTitle { - margin-top: 15px; -} - -.searchInputField { - width: 42%; - margin-top: 5px; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js deleted file mode 100644 index a5eeadb..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js +++ /dev/null @@ -1,35 +0,0 @@ -import { createElement } from 'lwc'; -import MobileWorkFlowPreviewScreen from 'c/mobileWorkFlowPreviewScreen'; - -let element; -describe('c-mobile-work-flow-preview-screen', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - beforeEach(() => { - element = createElement('c-mobile-work-flow-preview-screen', { - is: MobileWorkFlowPreviewScreen, - }); - - element.screenTitle = 'title1'; - element.screenSubTitle = 'title2'; - element.appointmentDetailTitle = 'appointmentTitle'; - element.currentScreen = 2; - element.screenno = jest.fn(); - document.body.appendChild(element); - }); - it('should have the correct title', () => { - const title = element.shadowRoot.querySelector('.screenTitle1'); - expect(title.textContent).toBe('title1'); - - const screenTitle2 = element.shadowRoot.querySelector('.screenTitle2'); - expect(screenTitle2.textContent).toBe('title2'); - - const appointmentTitle = element.shadowRoot.querySelector('.appointmentTitle'); - expect(appointmentTitle.textContent).toBe('appointmentTitle'); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js deleted file mode 100644 index 2d16936..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js +++ /dev/null @@ -1,17 +0,0 @@ -import FollowUpAppointments_preview_appointmentDateTime_title from '@salesforce/label/c.FollowUpAppointments_preview_appointmentDateTime_title'; -import FollowUpAppointments_preview_appointmentDetails_title from '@salesforce/label/c.FollowUpAppointments_preview_appointmentDetails_title'; -import FollowUpAppointments_preview_mobileWorker_title from '@salesforce/label/c.FollowUpAppointments_preview_mobileWorker_title'; -import FollowUpAppointments_preview_step_not_editable from '@salesforce/label/c.FollowUpAppointments_preview_step_not_editable'; -import FollowUpAppointments_preview_text from '@salesforce/label/c.FollowUpAppointments_preview_text'; -import FollowUpAppointments_preview_step_help_text from '@salesforce/label/c.FollowUpAppointments_preview_step_help_text'; - -const customLabels = { - FollowUpAppointments_preview_appointmentDateTime_title, - FollowUpAppointments_preview_appointmentDetails_title, - FollowUpAppointments_preview_mobileWorker_title, - FollowUpAppointments_preview_step_not_editable, - FollowUpAppointments_preview_text, - FollowUpAppointments_preview_step_help_text, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css deleted file mode 100644 index 265997c..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css +++ /dev/null @@ -1,212 +0,0 @@ -.mainDiv { - height: 500px; - width: 300px; - /* margin-top: 50px; */ - /* margin-left: 30px; */ - position: relative; - border-radius: 2%; -} - -.newAppointmentTitleLayout { - background-color: #f3f3f3; -} - -.deleteIcon { - padding-top: 12px; - margin-left: 15px; - width: 10px; - height: 10px; -} - -.previewText { - padding-top: 5px; - /* margin-left: 20px; */ - padding-bottom: 5px; - background-color: #f3f3f3; -} - -.screenTitleLayout { - margin-top: 15px; - height: 54px; -} - -.screenTitle1 { - padding-top: 5px; - margin-left: 15px; - color: black; -} - -.screenTitle2 { - padding-top: 6px; - margin-left: 15px; - color: black; -} - -.appointmentTitle { - padding-top: 10px; - margin-left: 15px; - color: black; -} - -.smallDividerLayout { - width: 100%; - height: 1px; - background-color: #f3f3f3; - margin-top: 6px; -} - -.smallDividerLayout2 { - width: 100%; - height: 1px; - background-color: #f3f3f3; - margin-top: 6px; -} - -.previewFieldLayout { - margin-left: 10px; - overflow-x: hidden; - overflow-y: auto; -} - -.loadingBar1 { - width: 200px; - height: 6px; - background-color: #e5e5e5; - margin-left: 15px; - margin-top: 8px; - border-radius: 10px; -} - -.loadingBar2 { - width: 169px; - height: 6px; - background-color: #e5e5e5; - margin-left: 15px; - margin-top: 8px; - border-radius: 10px; -} - -.loadingBar3 { - width: 220px; - height: 6px; - background-color: #e5e5e5; - margin-left: 15px; - margin-top: 8px; - border-radius: 10px; -} - -.loadingBar4 { - width: 100px; - height: 6px; - background-color: #0176d3; - margin-top: 8px; - border-radius: 10px; -} - -.calenderTitle { - margin-top: 6px; - height: 27px; -} - -.blueIconDown { - margin-left: 5px; - --sds-c-icon-color-foreground-default: #0176d3; - margin-top: 2px; -} - -.lgc-bg { - margin-top: 5px; - margin-left: 7px; - margin-right: 10px; -} - -.previewFieldOuterLayout { - overflow-x: hidden; - overflow-y: auto; - height: 350px; -} - -.inputFieldPreview { - width: 200px; -} - -.dividerLayout { - width: 100%; - height: 16px; - background-color: #f3f3f3; - margin-top: 10px; -} - -.screenFooterDivElement { - height: 50px; - position: absolute; - bottom: 0; - width: 100%; - background-color: #f3f3f3; -} - -.editIcon { - margin-top: 10px; - margin-right: 20px; - margin-bottom: 5px; - border-radius: 2%; - background-color: #f3f3f3; - /* padding-top: 4px; */ -} - -.lgc-bg { - background-color: white; -} - -.editButton { - /* margin-top: 15px; */ - margin-right: 0px; -} - -.leftrightDivLayout { - margin-top: 10px; - margin-left: 20px; - width: 100%; -} - -.footerLayout { - height: 48px; - background-color: #f3f3f3; - padding-right: 60px; - margin-top: 50px; -} - -.addStepBtn { - margin-top: 15px; - margin-left: 30px; - margin-bottom: 10px; -} - -.saveButton { - margin-top: 10px; -} - -.comboBox { - margin-right: 15px; -} - -.fieldTitle { - margin-top: 15px; -} - -.searchInputField { - width: 150px; -} - -.loadingBarCalender { - width: 26px; - height: 5px; - background-color: #e5e5e5; - border-radius: 10px; -} - -.c-container { - margin-top: 9px; - padding-left: 15px; - padding-right: 15px; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js deleted file mode 100644 index e963f43..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js +++ /dev/null @@ -1,147 +0,0 @@ -import { createElement } from 'lwc'; -import MobileWorkFlowLayout from 'c/mobileWorkFlowScreenLayout'; - -jest.mock( - './labels', - () => { - return { - MobileWorkFlowLayoutLabels: 'test', - }; - }, - { virtual: true } -); - -let element; -describe('c-mobile-work-flow-screen-layout', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - beforeEach(() => { - element = createElement('c-mobile-work-flow-screen-layout', { - is: MobileWorkFlowLayout, - }); - - element.screenTitle = 'title1'; - element.screenSubTitle = 'title2'; - element.inputFieldPreview = 'previewText'; - element.currentScreen = 2; - element.handleLeftButtonEventClick = jest.fn(); - element.handleDropDownActionSelected = jest.fn(); - element.handleClildEditButtonEvent = jest.fn(); - - element.fieldListArray = []; - element.const_duplicate = 'duplicate'; - element.const_delete = 'delete'; - element.isDuplicateButtonDisabled = false; - document.body.appendChild(element); - }); - - it('should show correct info', () => { - const title1 = element.shadowRoot.querySelector('.slds-truncate'); - const title2 = element.shadowRoot.querySelector('.screenTitle2'); - const editButton = element.shadowRoot.querySelector('.editButton'); - editButton.label = 'edit'; - expect(title1.textContent).toBe('title1'); - expect(title2.textContent).toBe('title2'); - expect(editButton.label).toBe('edit'); - }); - - test('element does not have slds-icon class when bare', () => { - // Use a promise to wait for asynchronous changes to the DOM - return Promise.resolve().then(() => { - expect(element.classList).not.toContain('slds-icon'); - }); - }); - - it('should call left button when left arrow clicked', async () => { - const action = element.shadowRoot.querySelector('.leftarrowbutton'); - console.log(action); - action.click(); - return Promise.resolve().then(() => { - expect(element.handleLeftButtonEventClick).toBeCalledTimes(0); - }); - }); - - it('should call right button when right arrow clicked', async () => { - const action = element.shadowRoot.querySelector('.rightarrowbutton'); - console.log(action); - const spy = jest.spyOn(element, 'handleRightButtonEventClick'); - action.dispatchEvent(new CustomEvent('click')); - return Promise.resolve().then(() => { - //expect(element.handleRightButtonEventClick).toBeCalledTimes(1); - expect(spy).toBeCalledTimes(0); - }); - }); - - it('should call drop down arrow button', async () => { - const action = element.shadowRoot.querySelector('.dropdownbtn'); - console.log(action); - const spy = jest.spyOn(element, 'handleDropDownActionSelected'); - action.dispatchEvent(new CustomEvent('click')); - return Promise.resolve().then(() => { - //expect(element.handleRightButtonEventClick).toBeCalledTimes(1); - expect(spy).toBeCalledTimes(0); - }); - }); - - it('should call edit button', async () => { - const action = element.shadowRoot.querySelector('.editButton'); - console.log(action); - action.click(); - return Promise.resolve().then(() => { - expect(element.handleClildEditButtonEvent).toBeCalledTimes(0); - }); - }); - - it('Getter and setter disableleftbutton', () => { - const spy = jest.spyOn(element, 'disableleftbutton', 'set'); - element.disableleftbutton = false; - expect(spy).toHaveBeenCalled(); - expect(element.disableleftbutton).toBe(false); - }); - - it('Getter and setter disablerightbutton', () => { - const spy = jest.spyOn(element, 'disablerightbutton', 'set'); - element.disablerightbutton = false; - expect(spy).toHaveBeenCalled(); - expect(element.disablerightbutton).toBe(false); - }); - - it('Getter and setter for screenno', () => { - const spy = jest.spyOn(element, 'screenno', 'set'); - element.screenno = 1; - expect(element.screenno).toBe(1); - expect(spy).toHaveBeenCalled(); - }); - - it('Getter and setter for screentitle', () => { - const spy = jest.spyOn(element, 'screentitle', 'set'); - element.screentitle = 'titletest'; - expect(element.screentitle).toBe('titletest'); - expect(spy).toHaveBeenCalled(); - }); - - it('Getter and setter for screensubtitle', () => { - const spy = jest.spyOn(element, 'screensubtitle', 'set'); - element.screensubtitle = 'title1'; - expect(element.screensubtitle).toBe('title1'); - expect(spy).toHaveBeenCalled(); - }); - - it('Getter and setter for selectedfieldlist', () => { - const spy = jest.spyOn(element, 'selectedfieldlist', 'set'); - element.selectedfieldlist = 'title2'; - expect(element.selectedfieldlist).toBe('title2'); - expect(spy).toHaveBeenCalled(); - }); - - it('Getter and setter for disableduplicatebutton', () => { - const spy = jest.spyOn(element, 'disableduplicatebutton', 'set'); - element.disableduplicatebutton = false; - expect(element.disableduplicatebutton).toBe(false); - expect(spy).toHaveBeenCalled(); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js deleted file mode 100644 index 5df65cf..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js +++ /dev/null @@ -1,13 +0,0 @@ -import FollowUpAppointments_duplicate_title from '@salesforce/label/c.FollowUpAppointments_duplicate_title'; -import FollowUpAppointments_delete_title from '@salesforce/label/c.FollowUpAppointments_delete_title'; -import FollowUpAppointments_preview_text from '@salesforce/label/c.FollowUpAppointments_preview_text'; -import FollowUpAppointments_edit_button_label from '@salesforce/label/c.FollowUpAppointments_edit_button_label'; - -const customLabels = { - FollowUpAppointments_duplicate_title, - FollowUpAppointments_delete_title, - FollowUpAppointments_preview_text, - FollowUpAppointments_edit_button_label, -}; - -export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css b/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css deleted file mode 100644 index b3b275d..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css +++ /dev/null @@ -1,121 +0,0 @@ - .mainDiv { - height: 500px; - width: 300px; - /* margin-top: 50px; */ - /* margin-left: 30px; */ - position: relative; - border-radius: 2%; - } - - .newAppointmentTitleLayout { - background-color: #F3F3F3; - } - - .deleteIcon { - padding-top: 12px; - margin-left: 15px; - width: 10px; - height: 10px; - } - - .previewText { - padding-top: 5px; - /* margin-left: 20px; */ - padding-bottom: 5px; - background-color: #F3F3F3; - } - - .screenTitleLayout { - margin-top: 15px; - height: 54px; - } - - .screenTitle1 { - padding-top: 5px; - margin-left: 15px; - color: black; - } - - .screenTitle2 { - padding-top: 1px; - margin-left: 15px; - color: black; - } - - .previewFieldLayout { - margin-left: 10px; - overflow-x: hidden; - overflow-y: auto; - } - - .previewFieldOuterLayout { - overflow-x: hidden; - overflow-y: auto; - height: 350px; - } - - .inputFieldPreview { - width: 200px; - } - - .screenFooterDivElement { - height: 50px; - position: absolute; - bottom: 0; - width: 100%; - } - - .editIcon { - margin-top: 8px; - margin-right: 20px; - margin-bottom: 5px; - border-radius: 2%; - /* padding-top: 4px; */ - } - - .lgc-bg { - background-color: white; - } - - .editButton { - /* margin-top: 15px; */ - margin-right: 0px; - } - - .leftrightDivLayout { - margin-top: 8px; - margin-left: 20px; - } - - .rightShiftButton { - margin-left: 5px; - } - - .footerLayout { - height: 48px; - background-color: #F3F3F3; - padding-right: 60px; - margin-top: 50px; - } - - .addStepBtn { - margin-top: 15px; - margin-left: 30px; - margin-bottom: 10px; - } - - .saveButton { - margin-top: 10px; - } - - .comboBox { - margin-right: 15px; - } - - .fieldTitle { - margin-top: 15px; - } - - .searchInputField { - width: 150px; - } \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/modal/__tests__/modal.test.js b/FollowUpAppointment/force-app/main/default/lwc/modal/__tests__/modal.test.js deleted file mode 100644 index f163e58..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/modal/__tests__/modal.test.js +++ /dev/null @@ -1,25 +0,0 @@ -import { createElement } from 'lwc'; -import Modal from 'c/modal'; - -describe('c-modal', () => { - afterEach(() => { - // The jsdom instance is shared across test cases in a single file so reset the DOM - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('TODO: test case generated by CLI command, please fill in test logic', () => { - // Arrange - const element = createElement('c-modal', { - is: Modal, - }); - - // Act - document.body.appendChild(element); - - // Assert - // const div = element.shadowRoot.querySelector('div'); - expect(1).toBe(1); - }); -}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css b/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css deleted file mode 100644 index e11dd05..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css +++ /dev/null @@ -1,24 +0,0 @@ -.modal-background{ - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: rgba(43,40,38,0.6); - display: flex; - -} -.modal-container{ - background-color: white; - position: fixed; - bottom: 0; - left: 0; - width: 100%; - -} - -.modal-header{ - display: flex; - align-items: center; - justify-content: space-between; -} \ No newline at end of file diff --git a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html b/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html deleted file mode 100644 index e6366d0..0000000 --- a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html +++ /dev/null @@ -1,21 +0,0 @@ - \ No newline at end of file diff --git a/FollowUpAppointment/jest.config.js b/FollowUpAppointment/jest.config.js deleted file mode 100644 index f39b207..0000000 --- a/FollowUpAppointment/jest.config.js +++ /dev/null @@ -1,6 +0,0 @@ -const { jestConfig } = require('@salesforce/sfdx-lwc-jest/config'); - -module.exports = { - ...jestConfig, - modulePathIgnorePatterns: ['/.localdevserver'], -}; diff --git a/FollowUpAppointment/package-lock.json b/FollowUpAppointment/package-lock.json deleted file mode 100644 index 6cd0ceb..0000000 --- a/FollowUpAppointment/package-lock.json +++ /dev/null @@ -1,9971 +0,0 @@ -{ - "name": "salesforce-app", - "version": "1.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "salesforce-app", - "version": "1.0.0", - "devDependencies": { - "@prettier/plugin-xml": "^0.12.0", - "@salesforce/eslint-config-lwc": "^0.11.0", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^7.24.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.1", - "lint-staged": "^10.0.7", - "prettier": "2.8.8", - "prettier-plugin-apex": "^1.13.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.5.tgz", - "integrity": "sha512-4Jc/YuIaYqKnDDz892kPIledykKg12Aw1PYX5i/TY28anJtacvM1Rrr8wbieB9GfEJwlzqT0hUEao0CxEebiDA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.13.16", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.16", - "@babel/helper-compilation-targets": "^7.13.16", - "@babel/helper-module-transforms": "^7.13.14", - "@babel/helpers": "^7.13.16", - "@babel/parser": "^7.13.16", - "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.15", - "@babel/types": "^7.13.16", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.13.14", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-scope": "^5.1.0", - "eslint-visitor-keys": "^1.3.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": ">=7.5.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.5.tgz", - "integrity": "sha512-Ji+ywpHeuqxB8WDxraCiqR0xfhYjiDE/e6k7FuIaANnoOFxAHskHChz4vA1mJC9Lbm01s1PVAGhQY4FUKSkGZw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.5.tgz", - "integrity": "sha512-xkb58MyOYIslxu3gKmVXmjTtUPvBU4odYzbiIQbWwLKIHCsx6UGZGX6F1IznMFVnDdirseUZopzN+ZRt8Xb33Q==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz", - "integrity": "sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz", - "integrity": "sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.22.5.tgz", - "integrity": "sha512-+hGKDt/Ze8GFExiVHno/2dvG5IdstpzCq0y4Qc9OJ25D4q3pKfiIP/4Vp3/JvhDkLKsDK2api3q3fpIgiIF5bw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-module-imports": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.5.tgz", - "integrity": "sha512-aLdNM5I3kdI/V9xGNyKSF3X/gTyMUBohTZ+/3QdQKAA9vxIiy12E+8E2HoOP1/DjeqU+g6as35QHJNMDDYpuCg==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.5", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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==", - "dev": true, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz", - "integrity": "sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.22.5.tgz", - "integrity": "sha512-pSXRmfE1vzcUIDFQcSGA5Mr+GxBV9oiRKDuDxXvWQQBCh8HoIjs/2DlDB7H8smac1IVrB9/xdXj2N3Wol9Cr+Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-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, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.22.5.tgz", - "integrity": "sha512-avpUOBS7IU6al8MmF1XpAyj9QYeLPuSDJI5D4pVMSMdL7xQokKqJPYQC67RCT0aCTashUXPiGwMJ0DEXXCEmMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz", - "integrity": "sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz", - "integrity": "sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz", - "integrity": "sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-simple-access": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz", - "integrity": "sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.5.tgz", - "integrity": "sha512-SMubA9S7Cb5sGSFFUlqxyClTA9zWJ8qGQrppNUm05LtFuN1ELRFNndkix4zUJrC9F+YivWwa1dHMSyo0e0N9dA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.5", - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/plugin-syntax-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.22.5.tgz", - "integrity": "sha512-YbPaal9LxztSGhmndR46FmAbkJ/1fAsw293tSU+I5E5h+cnJ3d4GTwyUgGYmOXJYdGA+uNePle4qbaRzj2NISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.5", - "@babel/plugin-syntax-jsx": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.22.5", - "@babel/plugin-transform-typescript": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@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", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/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/@jest/console/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/@jest/console/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/console/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/@jest/console/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/console/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/@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/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/@jest/core/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/@jest/core/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/core/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/@jest/core/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/core/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/@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/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/@jest/reporters/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/@jest/reporters/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/reporters/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/@jest/reporters/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/reporters/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" - } - }, - "node_modules/@jest/reporters/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/@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/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" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/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/@jest/transform/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/@jest/transform/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/transform/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/@jest/transform/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/transform/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" - } - }, - "node_modules/@jest/transform/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/@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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" - } - }, - "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 - }, - "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.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/babel-plugin-component": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/babel-plugin-component/-/babel-plugin-component-2.31.0.tgz", - "integrity": "sha512-Zx1w0eNhV2O9dP42PEg0PmhAfjA3V2L/gYbc9oBlfC12nAZIXsFOLqqnhECA2clHiJxFNSiCIf77gVtN7cRGcg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - }, - "peerDependencies": { - "@babel/core": "^7" - } - }, - "node_modules/@lwc/babel-plugin-component/node_modules/@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==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@lwc/compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/compiler/-/compiler-2.31.0.tgz", - "integrity": "sha512-8Xseow7Ww0lsHeVMNm9795BRDx+pDzlFPtojCzbTwHY+sVRNf92qnnD+EgnYzZ+77YkksuuNgPoTZBYPufJFZQ==", - "dev": true, - "dependencies": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - } - }, - "node_modules/@lwc/compiler/node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@lwc/engine-dom": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/engine-dom/-/engine-dom-2.31.0.tgz", - "integrity": "sha512-0J7MSIdjp7C2ufClAtEm937gNKld94+p49yMHSzfVLVEW5aZfGp3ThEvACgsEGmQKQMBwqOByaYGhcYXSRiSUw==", - "dev": true - }, - "node_modules/@lwc/engine-server": { - "version": "2.48.0", - "resolved": "https://registry.npmjs.org/@lwc/engine-server/-/engine-server-2.48.0.tgz", - "integrity": "sha512-cLTRmXubzNS/YnNwRTeV3lEY7aTNDSYHAt8e325yaPC1CGJBs+CSEyVf9rZ2YwJ8pEWUk16mso76acdiJQNJ1Q==", - "dev": true, - "peer": true - }, - "node_modules/@lwc/errors": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/errors/-/errors-2.31.0.tgz", - "integrity": "sha512-3sjby4FsYz1mUVlaAtS2hqISxy9SoDe2POZE2weZvAhkvFXG3ijRi8Sc9uGeta2akv/Df14tpRk+hesHdYoXYQ==", - "dev": true - }, - "node_modules/@lwc/eslint-plugin-lwc": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": "^7", - "eslint": "^7" - } - }, - "node_modules/@lwc/jest-preset": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-preset/-/jest-preset-11.5.4.tgz", - "integrity": "sha512-Ei4rp+v7Uz5U2VtncFUN3g58SZ4/Q5z7JpaYy8jjD6Pc/J+K0rqtNpJpuZ0DI3CXvtpFZdKGtt5O8ANjIMSrrg==", - "dev": true, - "dependencies": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "@lwc/engine-dom": "*", - "@lwc/engine-server": ">=2", - "@lwc/synthetic-shadow": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-resolver": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-resolver/-/jest-resolver-11.5.4.tgz", - "integrity": "sha512-I1s+Fb05jmX+l6GeigBDwwzUoxVO1qBZMQNdu6miCNdnVJ15SZxy6T61pYBY1AkiJrVVl72tkFjHblMMNpNBoA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-serializer": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-serializer/-/jest-serializer-11.5.4.tgz", - "integrity": "sha512-hivUuejZKRVEPxHFnG5O4Hz/do581u0uWLCvKxh9HT06WMeiW+grCnrzWnrjFvLv5GcFfZchj0bGAj6UFuOObA==", - "dev": true, - "dependencies": { - "pretty-format": "^29.3.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-transformer": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-transformer/-/jest-transformer-11.5.4.tgz", - "integrity": "sha512-L+zK3nxiduESeMurXLlO5LeXcnpzp6qXsXk9gaz9Tdvt9x07Hp728XNeg0SutSdNmRK+8vKCZHupFQTgEEOPIg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-transformer/node_modules/@babel/core": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.22.5.tgz", - "integrity": "sha512-SBuTAjg91A3eKOvD+bPEz3LlhHZRNu1nFOVts9lzDJTXshHTjII0BAtDS3Y2DAkdZdDKWVZGVwkDfc4Clxn1dg==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.5", - "@babel/generator": "^7.22.5", - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-module-transforms": "^7.22.5", - "@babel/helpers": "^7.22.5", - "@babel/parser": "^7.22.5", - "@babel/template": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@lwc/module-resolver": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/module-resolver/-/module-resolver-2.31.0.tgz", - "integrity": "sha512-SmjGeTuii85RaUERLsS56DrY4MFWUcLVjmInjRU46TmAXMnPfCsk8fxQ5J1iE0Cf7+1/2sjlO0U9VxBQpSNqkA==", - "dev": true, - "dependencies": { - "resolve": "~1.22.1" - } - }, - "node_modules/@lwc/shared": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/shared/-/shared-2.31.0.tgz", - "integrity": "sha512-tf+/I5ErSrQAVPK8BZAfmOaX0Xp54MbrADCTqeGaKOM/CkVf5mECipZ4DaBIJaFw+YgSpEABeM1FuWAeodeoLg==", - "dev": true - }, - "node_modules/@lwc/style-compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/style-compiler/-/style-compiler-2.31.0.tgz", - "integrity": "sha512-MKsKhfmSU45Xxq5ImJTGCJdqIQi8jx5PuU/xmwZffqCjscQgG4gDXxG2YAh8fGMbZSyrIjN/WTQlr7OvUzZrBA==", - "dev": true, - "dependencies": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "node_modules/@lwc/synthetic-shadow": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/synthetic-shadow/-/synthetic-shadow-2.31.0.tgz", - "integrity": "sha512-K9A8DcmSkZIF7l2sGs53h/oTl/Vdoa6XCYIudHwxVormxUhvHhd9TPbEyJBBKJ8augFZAoVs1q5yS4Nr+R9CBg==", - "dev": true - }, - "node_modules/@lwc/template-compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/template-compiler/-/template-compiler-2.31.0.tgz", - "integrity": "sha512-4RsASVNmOJ7cNEQOjxYaUWB3cFNAm0KtDWpD54XbhVZ7SBCUBKZ2BZvcRsP6mp7O4a8QOFQiCeCtoDAT/TQ4aA==", - "dev": true, - "dependencies": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "node_modules/@lwc/wire-service": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/wire-service/-/wire-service-2.31.0.tgz", - "integrity": "sha512-go6mhdqLpsu/svRm7Oe+ewi1qvrOlaVjngVU6O2V/UXdKpw22csQEdRCs25jC/kCRNtYdARPLIHlItuK+qL0NQ==", - "dev": true - }, - "node_modules/@mdn/browser-compat-data": { - "version": "5.2.49", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@prettier/plugin-xml": { - "version": "0.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xml-tools/parser": "^1.0.2", - "prettier": ">=1.10" - } - }, - "node_modules/@salesforce/eslint-config-lwc": { - "version": "0.11.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "~7.13.14", - "@babel/eslint-parser": "~7.13.14", - "@lwc/eslint-plugin-lwc": "~1.0.0", - "eslint-plugin-import": "~2.22.1", - "eslint-plugin-jest": "~23.8.2", - "eslint-restricted-globals": "~0.2.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "eslint": "^6 || ^7" - } - }, - "node_modules/@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "eslint-plugin-compat": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.3.0.tgz", - "integrity": "sha512-DT6AjFLldoWqeI1MdcStVhLj3p+XndUrHdPVwUo+CdiBmnTqNSPBDY/snDZJwZZK61M88mKz2xDzNj7xug3i8g==", - "dev": true, - "dependencies": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.2" - }, - "bin": { - "lwc-jest": "bin/sfdx-lwc-jest", - "sfdx-lwc-jest": "bin/sfdx-lwc-jest" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/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/@salesforce/sfdx-lwc-jest/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/@salesforce/sfdx-lwc-jest/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/@salesforce/sfdx-lwc-jest/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/@salesforce/sfdx-lwc-jest/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/@salesforce/sfdx-lwc-jest/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/@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.1.tgz", - "integrity": "sha512-6u3ZGXDCeRnKSX8WHRpVQAXmGiee6NkhmQb0gXmcPAm8zW/Q7o7lRJNvXKnxnXY7qyiKXVYDQAFKJjtGpaCfjw==", - "dev": true, - "peerDependencies": { - "@lwc/engine-dom": "^2.0.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.1.tgz", - "integrity": "sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.1.tgz", - "integrity": "sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", - "dev": true - }, - "node_modules/@types/parse-json": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/experimental-utils": { - "version": "2.34.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json-schema": "^7.0.3", - "@typescript-eslint/typescript-estree": "2.34.0", - "eslint-scope": "^5.0.0", - "eslint-utils": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "2.34.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "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" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@xml-tools/parser": { - "version": "1.0.11", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chevrotain": "7.1.1" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/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" - } - }, - "node_modules/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, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "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, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-metadata-inferer": { - "version": "0.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.34" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "dev": true, - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/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/babel-jest/node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-jest/node_modules/babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-jest/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/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-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, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "node_modules/browserslist": { - "version": "4.21.5", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "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 - }, - "node_modules/call-bind": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001477", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chevrotain": { - "version": "7.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "regexp-to-ast": "0.5.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.19", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "6.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/contains-path": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cosmiconfig": { - "version": "7.1.0", - "dev": true, - "license": "MIT", - "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/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "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, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/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/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "node_modules/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, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.356", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/enquirer": { - "version": "2.3.6", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.2", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/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/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/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, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "6.15.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-stdin": "^6.0.0" - }, - "bin": { - "eslint-config-prettier-check": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=3.14.1" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.7.4", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-compat": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.47", - "@tsconfig/node14": "^1.0.3", - "ast-metadata-inferer": "^0.8.0", - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001473", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.8" - }, - "engines": { - "node": ">=14.x" - }, - "peerDependencies": { - "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-compat/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/semver": { - "version": "7.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/eslint-plugin-import": { - "version": "2.22.1", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "1.5.0", - "dev": true, - "dependencies": { - "esutils": "^2.0.2", - "isarray": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-plugin-jest": { - "version": "23.8.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/experimental-utils": "^2.5.0" - }, - "engines": { - "node": ">=8" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "node_modules/eslint-restricted-globals": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/semver": { - "version": "7.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/espree": { - "version": "7.3.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "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==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/execa/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, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/execa/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, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.15.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-versions": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver-regex": "^3.1.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "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, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hosted-git-info": { - "version": "2.8.9", - "dev": true, - "license": "ISC" - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "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 - }, - "node_modules/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, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "1.1.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=8.12.0" - } - }, - "node_modules/husky": { - "version": "4.3.8", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "ci-info": "^2.0.0", - "compare-versions": "^3.6.0", - "cosmiconfig": "^7.0.0", - "find-versions": "^4.0.0", - "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^5.0.0", - "please-upgrade-node": "^3.2.0", - "slash": "^3.0.0", - "which-pm-runs": "^1.0.0" - }, - "bin": { - "husky-run": "bin/run.js", - "husky-upgrade": "lib/upgrader/bin.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/husky" - } - }, - "node_modules/husky/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/husky/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/husky/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/husky/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/husky/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/husky/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/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, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-obj": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/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 - }, - "node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-regexp": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/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/istanbul-lib-report/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/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/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" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", - "dev": true, - "dependencies": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/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/jest-circus/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/jest-circus/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-circus/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/jest-circus/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-circus/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-circus/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/jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "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/jest-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/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/jest-config/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/jest-config/node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/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-config/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/jest-config/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-config/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-config/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/jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/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/jest-diff/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/jest-diff/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-diff/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/jest-diff/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-diff/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-diff/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/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/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/jest-each/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/jest-each/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-each/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/jest-each/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-each/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-each/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/jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/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/jest-jasmine2/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/jest-jasmine2/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-jasmine2/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/jest-jasmine2/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-jasmine2/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-jasmine2/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/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/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/jest-matcher-utils/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/jest-matcher-utils/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-matcher-utils/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/jest-matcher-utils/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-matcher-utils/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-matcher-utils/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/jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-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, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-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, - "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/jest-message-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-message-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 - }, - "node_modules/jest-message-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, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-message-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, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/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/jest-resolve/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/jest-resolve/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-resolve/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/jest-resolve/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-resolve/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/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/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/jest-runner/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/jest-runner/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-runner/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/jest-runner/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-runner/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/jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/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/jest-runtime/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/jest-runtime/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-runtime/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/jest-runtime/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-runtime/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/jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/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/jest-snapshot/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-snapshot/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/jest-snapshot/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-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", - "integrity": "sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/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/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/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, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "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, - "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/jest-util/node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "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 - }, - "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, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/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/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/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/jest-validate/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-validate/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/jest-validate/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-validate/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-validate/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/jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/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/jest-watcher/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/jest-watcher/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-watcher/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/jest-watcher/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-watcher/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/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/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, - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/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, - "dependencies": { - "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" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/line-column": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", - "integrity": "sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==", - "dev": true, - "dependencies": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged": { - "version": "10.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "cli-truncate": "^2.1.0", - "commander": "^6.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.2.0", - "dedent": "^0.7.0", - "enquirer": "^2.3.6", - "execa": "^4.1.0", - "listr2": "^3.2.2", - "log-symbols": "^4.0.0", - "micromatch": "^4.0.2", - "normalize-path": "^3.0.0", - "please-upgrade-node": "^3.2.0", - "string-argv": "0.3.1", - "stringify-object": "^3.3.0" - }, - "bin": { - "lint-staged": "bin/lint-staged.js" - }, - "funding": { - "url": "https://opencollective.com/lint-staged" - } - }, - "node_modules/lint-staged/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/lint-staged/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/lint-staged/node_modules/execa": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/lint-staged/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/lint-staged/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/listr2": { - "version": "3.14.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.1", - "through": "^2.3.8", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" - }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } - } - }, - "node_modules/load-json-file": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/load-json-file/node_modules/parse-json": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "error-ex": "^1.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/load-json-file/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log-update": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "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" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-update/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.10", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.5.tgz", - "integrity": "sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ==", - "dev": true - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/opencollective-postinstall": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "bin": { - "opencollective-postinstall": "index.js" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^5.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/please-upgrade-node": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver-compare": "^1.0.0" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "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.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "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 - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-apex": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-apex/-/prettier-plugin-apex-1.13.0.tgz", - "integrity": "sha512-QeGHrNOR6EXoH0Mto385FDrRC+XSCc/8zvtqNvhEaFovEMC7InDp2Mn5WxjJzQUdgtUYoXL+NYcSm3nxMqsymQ==", - "dev": true, - "dependencies": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "apex-ast-serializer": "vendor/apex-ast-serializer/bin/apex-ast-serializer", - "apex-ast-serializer-http": "vendor/apex-ast-serializer/bin/apex-ast-serializer-http", - "start-apex-server": "dist/bin/start-apex-server.js", - "stop-apex-server": "dist/bin/stop-apex-server.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "peerDependencies": { - "prettier": "^2.0.0" - } - }, - "node_modules/prettier-plugin-apex/node_modules/jest-docblock": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/prettier-plugin-apex/node_modules/yargs": { - "version": "17.7.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/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/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read-pkg": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "load-json-file": "^2.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^2.0.0", - "read-pkg": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/find-up": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/locate-path": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-limit": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-locate": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/p-try": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/path-type": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "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 - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dev": true, - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/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, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/semver-regex": { - "version": "3.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/slice-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/slice-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/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" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.13", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-argv": { - "version": "0.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/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/supports-hyperlinks/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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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/table": { - "version": "6.8.1", - "dev": true, - "license": "BSD-3-Clause", - "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.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/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, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/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, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/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": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.10", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/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==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/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, - "engines": { - "node": ">=10.4" - } - }, - "node_modules/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, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/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 - }, - "node_modules/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, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-pm-runs": { - "version": "1.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/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, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "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 - } - } - }, - "node_modules/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==", - "dev": true - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yaml": { - "version": "1.10.2", - "dev": true, - "license": "ISC", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/FollowUpAppointment/package.json b/FollowUpAppointment/package.json deleted file mode 100644 index 8b9a5d6..0000000 --- a/FollowUpAppointment/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "npm run lint:lwc && npm run lint:aura", - "lint:aura": "eslint **/aura/**", - "lint:lwc": "eslint **/lwc/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" - }, - "devDependencies": { - "@prettier/plugin-xml": "^0.12.0", - "@salesforce/eslint-config-lwc": "^0.11.0", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^7.24.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.1", - "lint-staged": "^10.0.7", - "prettier": "2.8.8", - "prettier-plugin-apex": "^1.13.0" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura|lwc}/**": [ - "eslint" - ] - } -} diff --git a/FollowUpAppointment/sfdx-project.json b/FollowUpAppointment/sfdx-project.json deleted file mode 100644 index 3d9b272..0000000 --- a/FollowUpAppointment/sfdx-project.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "packageDirectories": [ - { - "path": "force-app", - "package": "Follow-Up Appointment for Field Service Mobile", - "versionName": "Summer' 23", - "versionNumber": "1.2.0.NEXT", - "versionDescription": "To configure the settings, from the App Launcher, find and select Follow-Up Appointment Settings. Using this package, mobile workers can create and schedule follow-up appointments for customers directly from the mobile mobile app.", - "default": true, - "dependencies": [ - { - "package": "FSL" - } - ] - } - ], - "name": "Follow-Up Appointment for Field Service Mobile", - "namespace": "", - "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "55.0", - "packageAliases": { - "Follow-Up Appointment for Field Service Mobile": "0HoB00000008PtFKAU", - "FSL": "04t3y000001drQt", - "Follow-Up Appointment for Field Service Mobile@0.1.0-1": "04tB0000000h4nGIAQ", - "Follow-Up Appointment for Field Service Mobile@0.1.0-6": "04tB0000000h6C7IAI", - "Follow-Up Appointment for Field Service Mobile@1.2.0-1": "04tB0000000h6CCIAY", - "Follow-Up Appointment for Field Service Mobile@1.2.0-2": "04tB0000000h6GZIAY", - "Follow-Up Appointment for Field Service Mobile@1.2.0-3": "04tB0000000h6H8IAI", - "Follow-Up Appointment for Field Service Mobile@1.2.0-4": "04tB0000000h6HSIAY", - "Follow-Up Appointment for Field Service Mobile@1.2.0-5": "04tB0000000h6HcIAI", - "Follow-Up Appointment for Field Service Mobile@1.2.0-6": "04tB0000000h6HhIAI", - "Follow-Up Appointment for Field Service Mobile@1.2.0-8": "04tB0000000h6nBIAQ", - "Follow-Up Appointment for Field Service Mobile@1.2.0-14": "04tB0000000h8fpIAA" - } -} diff --git a/HelloWorld/.husky/pre-commit b/HelloWorld/.husky/pre-commit deleted file mode 100755 index feac116..0000000 --- a/HelloWorld/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run precommit \ No newline at end of file diff --git a/HelloWorld/.vscode/extensions.json b/HelloWorld/.vscode/extensions.json deleted file mode 100644 index 7e6cb10..0000000 --- a/HelloWorld/.vscode/extensions.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recommendations": [ - "salesforce.salesforcedx-vscode", - "redhat.vscode-xml", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "financialforce.lana" - ] -} diff --git a/HelloWorld/.vscode/launch.json b/HelloWorld/.vscode/launch.json deleted file mode 100644 index e07e391..0000000 --- a/HelloWorld/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Apex Replay Debugger", - "type": "apex-replay", - "request": "launch", - "logFile": "${command:AskForLogFileName}", - "stopOnEntry": true, - "trace": true - } - ] -} diff --git a/HelloWorld/.vscode/settings.json b/HelloWorld/.vscode/settings.json deleted file mode 100644 index 76decfb..0000000 --- a/HelloWorld/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "search.exclude": { - "**/node_modules": true, - "**/bower_components": true, - "**/.sfdx": true - } -} diff --git a/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html b/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html deleted file mode 100644 index 564d353..0000000 --- a/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/HelloWorld/package.json b/HelloWorld/package.json deleted file mode 100644 index f6d6dc5..0000000 --- a/HelloWorld/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "eslint **/{aura,lwc}/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "postinstall": "husky install", - "precommit": "lint-staged" - }, - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.5.0", - "@prettier/plugin-xml": "^2.2.0", - "@salesforce/eslint-config-lwc": "^3.3.3", - "@salesforce/eslint-plugin-aura": "^2.1.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.1.3", - "eslint": "^8.27.0", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jest": "^27.1.5", - "husky": "^8.0.2", - "lint-staged": "^13.0.3", - "prettier": "^2.7.1", - "prettier-plugin-apex": "^1.11.0" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura,lwc}/**": [ - "eslint" - ] - } -} diff --git a/MobileDashboard/README.md b/MobileDashboard/README.md deleted file mode 100644 index 756ca31..0000000 --- a/MobileDashboard/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# Set Up the Mobile Dashboard Lightning Web Component (LWC) -Let your mobile workers easily see an overview of their data. For example, show a dashboard that lets workers know where they stand with the company’s KPIs. That way, they always know what they need to work on. - -**Note:** Mobile Dashboard LWC is an open-source component and is not supported by Salesforce Support. - -1. Enable access to LWCs. See [Define a Permission Set for Your Org](https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/quickstart_lwc_action_org_setup.htm#quickstart_lwc_action_org_setup_create_permset). -2. Enable the permission set. - 1. From Setup, in the Quick Find box, enter `Users`, and then select **Users**. - 2. Select the required mobile user. - 3. Under Permission Set Assignments, click **Edit Assignments**. - 4. Enable **Field Service Mobile Dashboard Permissions**. - 5. Repeat these steps for all the relevant mobile users. -3. To install the package, click https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1Q0000012EomQAE. If you choose to deploy the code instead of installing the package, make sure to complete these steps: - 1. Before deploying the code, enable using different languages. - - From Setup, in the Quick Find box, enter `Translation Workbench`, and then select **Translation Language Settings**. - - Click **Enable**. - - Deploy the code. - 2. Make the tab visible. - - From Setup, in the Quick Find box, enter `Users`, and then select **Profiles**. - - Edit the System Administrator profile. - - Under Tab Settings, set the Mobile Dashboard Settings tab to **Default On**. - 3. Make the fields visible. - - Form Setup, open the Object Manager. - - Search for and select **Mobile Dashboard Setting**. - - From Fields & Relationships, for each field, click **Set Field-Level Security** and select **Visible**. -4. From the Developer Console, run the script to get preconfigured cards for your dashboard: `DashboardPostInstall.onInstall();` -5. From the App Launcher, find and select **Mobile Dashboard Settings**. -6. Review the details of the cards and change them as needed. - - The preview cards show a dummy result of 1 record for each query. - - When the result of a query includes more than 2000 records, the dashboard shows 2000+ instead of the exact number. - - If the tabs get stuck when adding or editing a card, see [Enable Lightning Web Security in an Org](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.security_lwsec_enable). -7. Make sure the queried fields are visible. Otherwise, the query doesn’t return any results. - 1. From the object management settings for the object whose fields you want to make visible, go to **Fields & Relationships**. - 2. For the required fields, click **Set Field-Level Security** and make the field-level security visible for all profiles. -8. Connect the LWC to a global action. See [Add Global Actions to the Field Service Mobile App](https://help.salesforce.com/s/articleView?id=sf.mfs_global_actions.htm&type=5). - 1. For Action Type, select **Lightning Web Components**. - 2. For Lightning Web Component, select **c:mainDashboard**. -9. Add the global action to the required layout. -10. From the Field Service mobile app, open the LWC to verify the setup. diff --git a/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls b/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls deleted file mode 100644 index 1bd22ae..0000000 --- a/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls +++ /dev/null @@ -1,14 +0,0 @@ -@isTest -public with sharing class DashboardPostInstallTest { - - @isTest - static void testInstallScriptPredefinedCards() { - List allCardsBefore = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.areEqual(0, allCardsBefore.size()); - - DashboardPostInstall.onInstall(); - - List allCardsAfter = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.areEqual(4, allCardsAfter.size()); - } -} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls b/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls deleted file mode 100644 index a249384..0000000 --- a/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls +++ /dev/null @@ -1,198 +0,0 @@ -public with sharing class DashboardSettingsService { - - private static final String UNAUTH_MSG = 'Changing the dashboard settings is restricted to admins only.'; - - @AuraEnabled(cacheable=false) - public static List> getAllObjects(){ - List> objectsList = new List>(); - Map tempMap; - - for (Schema.SObjectType objType : Schema.getGlobalDescribe().Values()) { - String name = objType.getDescribe().getName(); - String label = objType.getDescribe().getLabel(); - if ( !name.containsignorecase('history') && - !name.containsignorecase('tag') && - !name.containsignorecase('share') && - !name.containsignorecase('feed') && - !name.containsignorecase('group') && - !name.containsignorecase('public') && - !objType.getDescribe().isCustomSetting() && - objType.getDescribe().isCreateable() && - objType.getDescribe().getRecordTypeInfos().size() > 0) { - tempMap = new Map(); - tempMap.put('value', name); - tempMap.put('label', label); - objectsList.add(tempMap); - } - } - - return objectsList; - } - - @AuraEnabled(cacheable=false) - public static List> getAllFields(String obj){ - SObjectType objType = Schema.getGlobalDescribe().get(obj); - Map fields = objType.getDescribe().fields.getMap(); - Set fieldsKeys = fields.keySet(); - - List> fieldsInfo = new List>(); - Map temp = new Map(); - Schema.DescribeFieldResult field; - - for (String key : fieldsKeys) { - field = fields.get(key).getDescribe(); - if (field.getType().name() != 'ADDRESS' && field.isAccessible()) { - temp = new Map(); - temp.put('value', field.getLocalName()); - temp.put('label', field.getLabel()); - temp.put('type', field.getType().name()); - fieldsInfo.add(temp); - } - } - - return fieldsInfo; - } - - @AuraEnabled(cacheable=false) - public static List> getAllPicklistOptions(String obj, String field) { - try { - SObjectType objType = Schema.getGlobalDescribe().get(obj); - Map fields = objType.getDescribe().fields.getMap(); - Schema.DescribeFieldResult dfr = fields.get(field).getDescribe(); - - List> picklistOptions = new List>(); - Map temp = new Map(); - - List picklistVals = dfr.getPicklistValues(); - for( Schema.PicklistEntry picklistVal : picklistVals){ - temp = new Map(); - temp.put('value', picklistVal.getValue()); - temp.put('label', picklistVal.getLabel()); - picklistOptions.add(temp); - } - - return picklistOptions; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled - public static Map getAllObjLabels(List apiNames) { - try { - Map objectLabels = new Map(); - String objectLabel; - for (String apiName : apiNames){ - objectLabel = Schema.getGlobalDescribe().get(apiName).getDescribe().getLabel(); - objectLabels.put(apiName, objectLabel); - } - return objectLabels; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled(cacheable=false) - public static String insertNewCard(Map data) { - try { - if (!isAuthorized()) { - throw new HandledException(UNAUTH_MSG); - } - Mobile_Dashboard_Setting__c newSetting = new Mobile_Dashboard_Setting__c( - Custom_Logic__c=data.get('customLogic'), - Layout__c=data.get('layout'), - Main_Filter_Logic__c=data.get('mainFilterLogic'), - Main_Filter__c=data.get('mainFilter'), - Object_Name__c=data.get('objectName'), - Order__c=Integer.valueOf(data.get('index')), - Sub_Filters__c=data.get('subFilters'), - Title__c=data.get('title') - ); - - insert newSetting; - return newSetting.Id; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled(cacheable=false) - public static void updateCard(String Id, Map data) { - try { - if (!isAuthorized()) { - throw new HandledException(UNAUTH_MSG); - } - Mobile_Dashboard_Setting__c setting = [ - SELECT - Custom_Logic__c, - Layout__c, - Main_Filter_Logic__c, - Main_Filter__c, - Object_Name__c, - Order__c, - Sub_Filters__c, - Title__c - FROM - Mobile_Dashboard_Setting__c - WHERE - Id = :Id - ]; - - setting.Custom_Logic__c = data.get('customLogic'); - setting.Layout__c = data.get('layout'); - setting.Main_Filter_Logic__c = data.get('mainFilterLogic'); - setting.Main_Filter__c = data.get('mainFilter'); - setting.Object_Name__c = data.get('objectName'); - setting.Order__c = Integer.valueOf(data.get('index')); - setting.Sub_Filters__c = data.get('subFilters'); - setting.Title__c = data.get('title'); - - update setting; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled(cacheable=false) - public static void deleteCard(String Id){ - try { - if (!isAuthorized()) { - throw new HandledException(UNAUTH_MSG); - } - Mobile_Dashboard_Setting__c setting = [SELECT Id FROM Mobile_Dashboard_Setting__c WHERE Id = :Id]; - delete setting; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - @AuraEnabled(cacheable=false) - public static void updateCardsOrder(List cardsIds){ - try { - if (!isAuthorized()) { - throw new HandledException(UNAUTH_MSG); - } - List allSettings = [SELECT Id, Order__c FROM Mobile_Dashboard_Setting__c]; - for (Mobile_Dashboard_Setting__c setting : allSettings) { - setting.Order__c = cardsIds.indexOf(setting.Id); - } - update allSettings; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } - - private static boolean isAuthorized() { - try { - List adminProfiles = [SELECT Id FROM Profile WHERE PermissionsContentAdministrator = true]; - for (Profile p : adminProfiles) { - if (p.Id == System.UserInfo.getProfileId()) { - return true; - } - } - return false; - } catch (Exception e) { - throw new HandledException(e.getMessage()); - } - } -} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls b/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls deleted file mode 100644 index 4572f6c..0000000 --- a/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls +++ /dev/null @@ -1,218 +0,0 @@ -@isTest -public with sharing class DashboardSettingsServiceTest { - public static Mobile_Dashboard_Setting__c mds; - - static { - mds = new Mobile_Dashboard_Setting__c( - Title__c = 'Test Title', - Main_Filter_Logic__c = 'AND', - Order__c = 0, - Object_Name__c = 'Account' - ); - insert mds; - } - - @isTest - static void testGetAllObjects() { - try { - List> result = DashboardSettingsService.getAllObjects(); - - // get 2 examples - Map accountObject; - Map contactObject; - for (Map obj : result){ - if (obj.containsKey('value') && obj.get('value') == 'Account') { - accountObject = obj; - } - if (obj.containsKey('value') && obj.get('value') == 'Contact') { - contactObject = obj; - } - } - Assert.isNotNull(accountObject); - Assert.areEqual('Account', accountObject.get('label')); - - Assert.isNotNull(contactObject); - Assert.areEqual('Contact', contactObject.get('label')); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testGetAllFields() { - try { - List> result = DashboardSettingsService.getAllFields('Account'); - - // get 2 examples - Map nameField; - Map phoneField; - for (Map field : result){ - if (field.containsKey('value') && field.get('value') == 'Name'){ - nameField = field; - } - if (field.containsKey('value') && field.get('value') == 'Phone'){ - phoneField = field; - } - } - Assert.isNotNull(nameField); - Assert.areEqual('Account Name', nameField.get('label')); - - Assert.isNotNull(phoneField); - Assert.areEqual('Account Phone', phoneField.get('label')); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testGetAllPicklistOptions(){ - try { - List> result = DashboardSettingsService.getAllPicklistOptions('ServiceAppointment', 'Status'); - - Assert.isNotNull(result); - - // get 2 examples - Map completed; - Map canceled; - for (Map option : result){ - if (option.containsKey('value') && option.get('value') == 'Completed'){ - completed = option; - } - if (option.containsKey('value') && option.get('value') == 'Canceled'){ - canceled = option; - } - } - - Assert.isNotNull(completed); - Assert.isNotNull(canceled); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testGetAllObjLabels(){ - try { - List apiNames = new List{ 'ServiceAppointment', 'Case' }; - Map result = DashboardSettingsService.getAllObjLabels(apiNames); - - Assert.areEqual('Service Appointment', result.get(apiNames.get(0))); - Assert.areEqual('Case', result.get(apiNames.get(1))); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testInsertNewCard(){ - try { - List cardsBefore = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.isNotNull(cardsBefore); - Assert.areEqual(1, cardsBefore.size()); - - Map data = new Map(); - data.put('customLogic', ''); - data.put('layout', 'SIDE'); - data.put('mainFilterLogic', 'AND'); - data.put('mainFilter', ''); - data.put('objectName', 'Account'); - data.put('index', '1'); - data.put('subFilters', ''); - data.put('title', 'Test Title2'); - - DashboardSettingsService.insertNewCard(data); - - List cardsAfter = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.isNotNull(cardsAfter); - Assert.areEqual(2, cardsAfter.size()); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testUpdateCard(){ - try { - Mobile_Dashboard_Setting__c cardBefore = [SELECT Id, Title__c FROM Mobile_Dashboard_Setting__c WHERE Id = :mds.Id]; - Assert.isNotNull(cardBefore); - Assert.areEqual('Test Title', cardBefore.Title__c); - - Map data = new Map(); - data.put('customLogic', ''); - data.put('layout', 'SIDE'); - data.put('mainFilterLogic', 'AND'); - data.put('mainFilter', ''); - data.put('objectName', 'Account'); - data.put('index', '0'); - data.put('subFilters', ''); - data.put('title', 'Updated Test Title'); - DashboardSettingsService.updateCard(mds.Id, data); - - Mobile_Dashboard_Setting__c cardAfter = [SELECT Id, Title__c FROM Mobile_Dashboard_Setting__c WHERE Id = :mds.Id]; - Assert.isNotNull(cardAfter); - Assert.areEqual('Updated Test Title', cardAfter.Title__c); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testDeleteCard(){ - try { - List cardsBefore = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.isNotNull(cardsBefore); - Assert.areEqual(1, cardsBefore.size()); - - DashboardSettingsService.deleteCard(mds.Id); - - List cardsAfter = [SELECT Id FROM Mobile_Dashboard_Setting__c]; - Assert.isNotNull(cardsAfter); - Assert.areEqual(0, cardsAfter.size()); - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } - - @isTest - static void testUpdateCardsOrder(){ - try { - Map data = new Map(); - data.put('customLogic', ''); - data.put('layout', 'SIDE'); - data.put('mainFilterLogic', 'AND'); - data.put('mainFilter', ''); - data.put('objectName', 'Account'); - data.put('index', '1'); - data.put('subFilters', ''); - data.put('title', 'Test Title2'); - Id newId = DashboardSettingsService.insertNewCard(data); - - List cardsBefore = [SELECT Id, Title__c, Order__c FROM Mobile_Dashboard_Setting__c]; - for (Mobile_Dashboard_Setting__c card : cardsBefore) { - if (card.Title__c == 'Test Title') { - Assert.areEqual(0, card.Order__c); - } - if (card.Title__c == 'Test Title2') { - Assert.areEqual(1, card.Order__c); - } - } - - List cardsIds = new List(); - cardsIds.add(newId); - cardsIds.add(mds.Id); - DashboardSettingsService.updateCardsOrder(cardsIds); - - List cardsAfter = [SELECT Id, Title__c, Order__c FROM Mobile_Dashboard_Setting__c]; - for (Mobile_Dashboard_Setting__c card : cardsAfter) { - if (card.Title__c == 'Test Title') { - Assert.areEqual(1, card.Order__c); - } - if (card.Title__c == 'Test Title2') { - Assert.areEqual(0, card.Order__c); - } - } - } catch (Exception e) { - Assert.fail('An exception was thrown: ' + e.getMessage()); - } - } -} diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js b/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js deleted file mode 100644 index b5b3a86..0000000 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js +++ /dev/null @@ -1,56 +0,0 @@ -import { createElement } from 'lwc'; -import AlertMessage from 'c/alertMessage'; - -let element; -describe('c-alert-message', () => { - beforeEach(() => { - element = createElement('c-alert-message', { - is: AlertMessage, - }); - - element.modalTitle = 'Title of the Modal'; - element.message = 'Body of the Modal'; - element.discardButtonText = 'Cancel'; - element.handleDiscardClick = jest.fn(); - element.close = jest.fn(); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('has all correct info', () => { - element.isDeleteMsg = false; - document.body.appendChild(element); - - const title = element.shadowRoot.querySelector('.modal-header h2'); - expect(title.textContent).toBe('Title of the Modal'); - - const body = element.shadowRoot.querySelector('.message'); - expect(body.textContent).toBe('Body of the Modal'); - }); - - it('calls close with no parameters when cancel clicked', async () => { - element.isDeleteMsg = false; - document.body.appendChild(element); - - const action = element.shadowRoot.querySelector('lightning-button'); - action.click(); - return Promise.resolve().then(() => { - expect(element.close).toHaveBeenCalled(); - }); - }); - - it('calls close with true when ok clicked', async () => { - element.isDeleteMsg = true; - document.body.appendChild(element); - - const action = element.shadowRoot.querySelector('lightning-button.slds-var-m-left_x-small'); - action.click(); - return Promise.resolve().then(() => { - expect(element.close).toHaveBeenCalledWith(true); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css b/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css deleted file mode 100644 index 145ee31..0000000 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css +++ /dev/null @@ -1,19 +0,0 @@ -.modal-header { - display: flex; - justify-content: center; - align-items: center; - font-size: 20px; - font-weight: 400; - line-height: 30px; -} - -.message { - font-size: 13px; - font-weight: 400; - line-height: 20px; -} - -.error-icon { - margin-right: 8px; - --lwc-colorTextIconDefault: #BA0517; -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html b/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html deleted file mode 100644 index e1e93dd..0000000 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html +++ /dev/null @@ -1,23 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js b/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js deleted file mode 100644 index ae97e6c..0000000 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js +++ /dev/null @@ -1,7 +0,0 @@ -import MobileDashboard_settings_delete_button from '@salesforce/label/c.MobileDashboard_settings_delete_button'; - -const customLabels = { - MobileDashboard_settings_delete_button, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js b/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js deleted file mode 100644 index b02641b..0000000 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js +++ /dev/null @@ -1,219 +0,0 @@ -import { createElement } from 'lwc'; -import BasicFilter from 'c/basicFilter'; - -let element; - -let fieldsCombo; -let operatorCombo; -let valueField; -let quantityField; -let unitCombo; - -jest.mock( - '@salesforce/apex/DashboardSettingsService.getAllPicklistOptions', - () => { - return { - default: jest.fn(() => [{ value: 'option1', label: 'Option 1' }]), - }; - }, - { virtual: true } -); - -describe('c-basic-filter', () => { - beforeEach(() => { - element = createElement('c-basic-filter', { - is: BasicFilter, - }); - - element.objectValue = 'Account'; - element.index = 0; - element.fieldsOptions = [ - { label: 'My Email', value: 'myEmail', type: 'EMAIL' }, - { label: 'My Reference', value: 'myReference', type: 'REFERENCE' }, - { label: 'My Date', value: 'myDate', type: 'DATE' }, - { label: 'My Boolean', value: 'myBoolean', type: 'BOOLEAN' }, - { label: 'My Picklist', value: 'myPicklist', type: 'PICKLIST' }, - ]; - element.field = ''; - element.operator = ''; - element.value = ''; - element.quantity = ''; - element.unit = ''; - element.updateSubFilter = jest.fn(); - - document.body.appendChild(element); - - fieldsCombo = element.shadowRoot.querySelector('.field-combo'); - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - valueField = element.shadowRoot.querySelector('.value-input'); - quantityField = element.shadowRoot.querySelector('.quantity-input'); - unitCombo = element.shadowRoot.querySelector('.unit-combo'); - - jest.useFakeTimers(); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('sets operators list correctly when selecting a date field', async () => { - fieldsCombo.value = 'myDate'; - fieldsCombo.dispatchEvent(new Event('change')); - jest.runAllTimers(); - return Promise.resolve().then(() => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - expect(operatorCombo.label).toBe('c.MobileDashboard_basic_filter_date_operator'); - }); - }); - - it('sets qunatity and unit as visible when selecting a special operator', async () => { - expect(quantityField).toBeNull(); - expect(unitCombo).toBeNull(); - - fieldsCombo.value = 'myDate'; - fieldsCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - operatorCombo.value = 'next'; - operatorCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - quantityField = element.shadowRoot.querySelector('.quantity-input'); - unitCombo = element.shadowRoot.querySelector('.unit-combo'); - expect(quantityField).not.toBeNull(); - expect(unitCombo).not.toBeNull(); - }); - }); - }); - - it('sets operator as hidden if field is boolean', async () => { - expect(operatorCombo).not.toBeNull(); - - fieldsCombo.value = 'myBoolean'; - fieldsCombo.dispatchEvent(new Event('change')); - jest.runAllTimers(); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - expect(operatorCombo).toBeNull(); - }); - }); - - it('sets operator as hidden if field is picklist', async () => { - expect(operatorCombo).not.toBeNull(); - - fieldsCombo.value = 'myPicklist'; - fieldsCombo.dispatchEvent(new Event('change')); - jest.runAllTimers(); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - expect(operatorCombo).toBeNull(); - }); - }); - - it('sets value as hidden when selecting the today operator', async () => { - expect(valueField).not.toBeNull(); - - fieldsCombo.value = 'myDate'; - fieldsCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - operatorCombo.value = 'today'; - operatorCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - valueField = element.shadowRoot.querySelector('.value-input'); - expect(valueField).toBeNull(); - }); - }); - }); - - it('sets value input type as the field type', async () => { - expect(valueField).not.toBeNull(); - - fieldsCombo.value = 'myEmail'; - fieldsCombo.dispatchEvent(new Event('change')); - jest.runAllTimers(); - return Promise.resolve().then(() => { - valueField = element.shadowRoot.querySelector('.value-input'); - expect(valueField.type).toBe('EMAIL'); - }); - }); - - it('sets value input type as text when selecting a non-supported field type', async () => { - expect(valueField).not.toBeNull(); - - fieldsCombo.value = 'myReference'; - fieldsCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - valueField = element.shadowRoot.querySelector('.value-input'); - expect(valueField.type).toBe('text'); - }); - }); - - it('calls updateSubFilter when updating value', async () => { - expect(operatorCombo).not.toBeNull(); - - valueField.value = 'abc'; - valueField.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - expect(element.updateSubFilter).toHaveBeenCalledWith(0, { value: 'abc' }); - }); - }); - - it('calls updateSubFilter when updating quantity', async () => { - fieldsCombo.value = 'myDate'; - fieldsCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - operatorCombo.value = 'last'; - operatorCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - quantityField = element.shadowRoot.querySelector('.quantity-input'); - quantityField.value = '7'; - quantityField.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - expect(element.updateSubFilter).toHaveBeenCalledWith(0, { quantity: '7' }); - }); - }); - }); - }); - - it('calls updateSubFilter when updating unit', async () => { - fieldsCombo.value = 'myDate'; - fieldsCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - operatorCombo = element.shadowRoot.querySelector('.operator-combo'); - operatorCombo.value = 'last'; - operatorCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - unitCombo = element.shadowRoot.querySelector('.unit-combo'); - unitCombo.value = 'day'; - unitCombo.dispatchEvent(new Event('change')); - return Promise.resolve().then(async () => { - expect(element.updateSubFilter).toHaveBeenCalledWith(0, { - unit: 'day', - unitDisplay: 'c.MobileDashboard_settings_card_display_unit_days', - }); - }); - }); - }); - }); - - it('return true from checkValidation when fields are valid', async () => { - fieldsCombo.validity = { valid: true }; - operatorCombo.validity = { valid: true }; - valueField.validity = { valid: true }; - - const isValid = element.checkValidation(); - expect(isValid).toBeTruthy; - }); - - it('return false from checkValidation when fields are not valid', async () => { - fieldsCombo.validity = { valid: true }; - operatorCombo.validity = { valid: false }; - valueField.validity = { valid: false }; - - const isValid = element.checkValidation(); - expect(isValid).toBeFalsy; - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css b/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css deleted file mode 100644 index e91b3fb..0000000 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css +++ /dev/null @@ -1,16 +0,0 @@ -.props-list { - display: flex; - flex-direction: row; -} - -lightning-combobox, .quantity-input { - margin-right: 8px; -} - -.field-combo, .value-input { - flex: 2; -} - -.operator-combo { - flex: 1; -} diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html b/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html deleted file mode 100644 index 6acc7c0..0000000 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html +++ /dev/null @@ -1,96 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js b/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js deleted file mode 100644 index 02d7ee2..0000000 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js +++ /dev/null @@ -1,55 +0,0 @@ -import MobileDashboard_basic_filter_field from '@salesforce/label/c.MobileDashboard_basic_filter_field'; -import MobileDashboard_settings_select_placeholder from '@salesforce/label/c.MobileDashboard_settings_select_placeholder'; -import MobileDashboard_basic_filter_operator from '@salesforce/label/c.MobileDashboard_basic_filter_operator'; -import MobileDashboard_basic_filter_operator_equals from '@salesforce/label/c.MobileDashboard_basic_filter_operator_equals'; -import MobileDashboard_basic_filter_operator_not_equal from '@salesforce/label/c.MobileDashboard_basic_filter_operator_not_equal'; -import MobileDashboard_basic_filter_operator_less_than from '@salesforce/label/c.MobileDashboard_basic_filter_operator_less_than'; -import MobileDashboard_basic_filter_operator_greater_than from '@salesforce/label/c.MobileDashboard_basic_filter_operator_greater_than'; -import MobileDashboard_basic_filter_operator_less_or_equal from '@salesforce/label/c.MobileDashboard_basic_filter_operator_less_or_equal'; -import MobileDashboard_basic_filter_operator_greater_or_equal from '@salesforce/label/c.MobileDashboard_basic_filter_operator_greater_or_equal'; -import MobileDashboard_basic_filter_operator_contains from '@salesforce/label/c.MobileDashboard_basic_filter_operator_contains'; -import MobileDashboard_basic_filter_date_operator from '@salesforce/label/c.MobileDashboard_basic_filter_date_operator'; -import MobileDashboard_basic_filter_date_type_today from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_today'; -import MobileDashboard_basic_filter_date_type_last from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_last'; -import MobileDashboard_basic_filter_date_type_next from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_next'; -import MobileDashboard_basic_filter_date_type_on from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_on'; -import MobileDashboard_basic_filter_date_type_before from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_before'; -import MobileDashboard_basic_filter_date_type_after from '@salesforce/label/c.MobileDashboard_basic_filter_date_type_after'; -import MobileDashboard_settings_card_display_operator_today from '@salesforce/label/c.MobileDashboard_settings_card_display_operator_today'; -import MobileDashboard_settings_card_display_operator_next from '@salesforce/label/c.MobileDashboard_settings_card_display_operator_next'; -import MobileDashboard_settings_card_display_operator_last from '@salesforce/label/c.MobileDashboard_settings_card_display_operator_last'; -import MobileDashboard_settings_card_display_unit_days from '@salesforce/label/c.MobileDashboard_settings_card_display_unit_days'; -import MobileDashboard_settings_card_display_unit_weeks from '@salesforce/label/c.MobileDashboard_settings_card_display_unit_weeks'; -import MobileDashboard_settings_card_display_unit_months from '@salesforce/label/c.MobileDashboard_settings_card_display_unit_months'; -import MobileDashboard_basic_filter_value from '@salesforce/label/c.MobileDashboard_basic_filter_value'; -import MobileDashboard_basic_filter_unit from '@salesforce/label/c.MobileDashboard_basic_filter_unit'; - -const customLabels = { - MobileDashboard_basic_filter_field, - MobileDashboard_settings_select_placeholder, - MobileDashboard_basic_filter_operator, - MobileDashboard_basic_filter_operator_equals, - MobileDashboard_basic_filter_operator_not_equal, - MobileDashboard_basic_filter_operator_less_than, - MobileDashboard_basic_filter_operator_greater_than, - MobileDashboard_basic_filter_operator_less_or_equal, - MobileDashboard_basic_filter_operator_greater_or_equal, - MobileDashboard_basic_filter_operator_contains, - MobileDashboard_basic_filter_date_operator, - MobileDashboard_basic_filter_date_type_today, - MobileDashboard_basic_filter_date_type_next, - MobileDashboard_basic_filter_date_type_last, - MobileDashboard_basic_filter_date_type_on, - MobileDashboard_basic_filter_date_type_before, - MobileDashboard_basic_filter_date_type_after, - MobileDashboard_settings_card_display_operator_today, - MobileDashboard_settings_card_display_operator_next, - MobileDashboard_settings_card_display_operator_last, - MobileDashboard_settings_card_display_unit_days, - MobileDashboard_settings_card_display_unit_weeks, - MobileDashboard_settings_card_display_unit_months, - MobileDashboard_basic_filter_value, - MobileDashboard_basic_filter_unit, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js b/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js deleted file mode 100644 index 811cd9a..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js +++ /dev/null @@ -1,35 +0,0 @@ -import { createElement } from 'lwc'; -import DashboardAddButton from 'c/dashboardAddButton'; - -let element; -describe('c-dashboard-add-button', () => { - beforeEach(() => { - element = createElement('c-add-button', { - is: DashboardAddButton, - }); - - element.label = 'Button label'; - element.handleAddClick = jest.fn(); - element.disabled = false; - document.body.appendChild(element); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('shows correct label', () => { - const label = element.shadowRoot.querySelector('lightning-button'); - expect(label.title).toBe('Button label'); - }); - - it('calls function when clicked', async () => { - const action = element.shadowRoot.querySelector('lightning-button'); - action.click(); - return Promise.resolve().then(() => { - expect(element.handleAddClick).toHaveBeenCalled(); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html b/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html deleted file mode 100644 index 13854f9..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js b/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js deleted file mode 100644 index 6b39c3b..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js +++ /dev/null @@ -1,30 +0,0 @@ -import { createElement } from 'lwc'; -import DashboardIconsPicker from 'c/dashboardIconsPicker'; - -let element; -describe('c-dashboard-icons-picker', () => { - beforeEach(() => { - element = createElement('c-dashboard-icons-picker', { - is: DashboardIconsPicker, - }); - - element.setIcon = jest.fn(); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('calls setIcon when an icon selected', async () => { - element.selectedIcon = ''; - document.body.appendChild(element); - - const action = element.shadowRoot.querySelector('lightning-menu-item'); - action.click(); - return Promise.resolve().then(() => { - expect(element.setIcon).toHaveBeenCalledWith('utility:info'); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html b/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html deleted file mode 100644 index 738fc8d..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html +++ /dev/null @@ -1,19 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js b/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js deleted file mode 100644 index d34b75e..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js +++ /dev/null @@ -1,78 +0,0 @@ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; - -export default class DashboardIconsPicker extends LightningElement { - @api selectedIcon; - @api setIcon; - - LABELS = customLabels; - - iconGroups = [ - { - label: this.LABELS.MobileDashboard_icons_list_subtitle_status, - icons: [ - { label: this.LABELS.MobileDashboard_icons_list_info, name: 'utility:info' }, - { label: this.LABELS.MobileDashboard_icons_list_success, name: 'utility:success' }, - { label: this.LABELS.MobileDashboard_icons_list_warning, name: 'utility:warning' }, - { label: this.LABELS.MobileDashboard_icons_list_error, name: 'utility:error' }, - { label: this.LABELS.MobileDashboard_icons_list_new, name: 'utility:routing_offline' }, - { label: this.LABELS.MobileDashboard_icons_list_in_progress, name: 'utility:away' }, - { label: this.LABELS.MobileDashboard_icons_list_cannot_complete, name: 'utility:ban' }, - ], - }, - { - label: this.LABELS.MobileDashboard_icons_list_subtitle_sentiment, - icons: [ - { label: this.LABELS.MobileDashboard_icons_list_positive, name: 'utility:emoji' }, - { - label: this.LABELS.MobileDashboard_icons_list_neutral, - name: 'utility:sentiment_neutral', - }, - { - label: this.LABELS.MobileDashboard_icons_list_negative, - name: 'utility:sentiment_negative', - }, - ], - }, - { - label: this.LABELS.MobileDashboard_icons_list_subtitle_record_types, - icons: [ - { label: this.LABELS.MobileDashboard_icons_list_case, name: 'utility:case' }, - { label: this.LABELS.MobileDashboard_icons_list_lead, name: 'utility:lead' }, - { label: this.LABELS.MobileDashboard_icons_list_opportunity, name: 'utility:opportunity' }, - { label: this.LABELS.MobileDashboard_icons_list_quote, name: 'utility:quote' }, - ], - }, - { - label: this.LABELS.MobileDashboard_icons_list_subtitle_other, - icons: [ - { label: this.LABELS.MobileDashboard_icons_list_approval, name: 'utility:approval' }, - { label: this.LABELS.MobileDashboard_icons_list_clock, name: 'utility:clock' }, - { label: this.LABELS.MobileDashboard_icons_list_event, name: 'utility:event' }, - { label: this.LABELS.MobileDashboard_icons_list_favorite, name: 'utility:favorite' }, - { label: this.LABELS.MobileDashboard_icons_list_like, name: 'utility:like' }, - { label: this.LABELS.MobileDashboard_icons_list_dislike, name: 'utility:dislike' }, - { label: this.LABELS.MobileDashboard_icons_list_location, name: 'utility:checkin' }, - { label: this.LABELS.MobileDashboard_icons_list_priority, name: 'utility:priority' }, - { label: this.LABELS.MobileDashboard_icons_list_user, name: 'utility:user' }, - { label: this.LABELS.MobileDashboard_icons_list_people, name: 'utility:people' }, - ], - }, - ]; - - handleIconClick = (e) => { - this.selectedIcon = e.target.value; - this.setIcon(this.selectedIcon); - }; - - get selectedIconLabel() { - const icon = this.iconGroups - .flatMap((group) => group.icons) - .find((icon) => icon.name === this.selectedIcon); - return icon ? icon.label : null; - } - - get menuLabel() { - return this.selectedIconLabel ?? this.LABELS.MobileDashboard_settings_select_placeholder; - } -} diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js b/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js deleted file mode 100644 index 2f09233..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js +++ /dev/null @@ -1,65 +0,0 @@ -import MobileDashboard_sub_filter_icon_field from '@salesforce/label/c.MobileDashboard_sub_filter_icon_field'; -import MobileDashboard_settings_select_placeholder from '@salesforce/label/c.MobileDashboard_settings_select_placeholder'; -import MobileDashboard_icons_list_subtitle_status from '@salesforce/label/c.MobileDashboard_icons_list_subtitle_status'; -import MobileDashboard_icons_list_info from '@salesforce/label/c.MobileDashboard_icons_list_info'; -import MobileDashboard_icons_list_success from '@salesforce/label/c.MobileDashboard_icons_list_success'; -import MobileDashboard_icons_list_warning from '@salesforce/label/c.MobileDashboard_icons_list_warning'; -import MobileDashboard_icons_list_error from '@salesforce/label/c.MobileDashboard_icons_list_error'; -import MobileDashboard_icons_list_new from '@salesforce/label/c.MobileDashboard_icons_list_new'; -import MobileDashboard_icons_list_in_progress from '@salesforce/label/c.MobileDashboard_icons_list_in_progress'; -import MobileDashboard_icons_list_cannot_complete from '@salesforce/label/c.MobileDashboard_icons_list_cannot_complete'; -import MobileDashboard_icons_list_subtitle_sentiment from '@salesforce/label/c.MobileDashboard_icons_list_subtitle_sentiment'; -import MobileDashboard_icons_list_positive from '@salesforce/label/c.MobileDashboard_icons_list_positive'; -import MobileDashboard_icons_list_neutral from '@salesforce/label/c.MobileDashboard_icons_list_neutral'; -import MobileDashboard_icons_list_negative from '@salesforce/label/c.MobileDashboard_icons_list_negative'; -import MobileDashboard_icons_list_subtitle_record_types from '@salesforce/label/c.MobileDashboard_icons_list_subtitle_record_types'; -import MobileDashboard_icons_list_case from '@salesforce/label/c.MobileDashboard_icons_list_case'; -import MobileDashboard_icons_list_lead from '@salesforce/label/c.MobileDashboard_icons_list_lead'; -import MobileDashboard_icons_list_opportunity from '@salesforce/label/c.MobileDashboard_icons_list_opportunity'; -import MobileDashboard_icons_list_quote from '@salesforce/label/c.MobileDashboard_icons_list_quote'; -import MobileDashboard_icons_list_subtitle_other from '@salesforce/label/c.MobileDashboard_icons_list_subtitle_other'; -import MobileDashboard_icons_list_approval from '@salesforce/label/c.MobileDashboard_icons_list_approval'; -import MobileDashboard_icons_list_clock from '@salesforce/label/c.MobileDashboard_icons_list_clock'; -import MobileDashboard_icons_list_event from '@salesforce/label/c.MobileDashboard_icons_list_event'; -import MobileDashboard_icons_list_favorite from '@salesforce/label/c.MobileDashboard_icons_list_favorite'; -import MobileDashboard_icons_list_like from '@salesforce/label/c.MobileDashboard_icons_list_like'; -import MobileDashboard_icons_list_dislike from '@salesforce/label/c.MobileDashboard_icons_list_dislike'; -import MobileDashboard_icons_list_location from '@salesforce/label/c.MobileDashboard_icons_list_location'; -import MobileDashboard_icons_list_priority from '@salesforce/label/c.MobileDashboard_icons_list_priority'; -import MobileDashboard_icons_list_user from '@salesforce/label/c.MobileDashboard_icons_list_user'; -import MobileDashboard_icons_list_people from '@salesforce/label/c.MobileDashboard_icons_list_people'; - -const customLabels = { - MobileDashboard_sub_filter_icon_field, - MobileDashboard_settings_select_placeholder, - MobileDashboard_icons_list_subtitle_status, - MobileDashboard_icons_list_info, - MobileDashboard_icons_list_success, - MobileDashboard_icons_list_warning, - MobileDashboard_icons_list_error, - MobileDashboard_icons_list_new, - MobileDashboard_icons_list_in_progress, - MobileDashboard_icons_list_cannot_complete, - MobileDashboard_icons_list_subtitle_sentiment, - MobileDashboard_icons_list_positive, - MobileDashboard_icons_list_neutral, - MobileDashboard_icons_list_negative, - MobileDashboard_icons_list_subtitle_record_types, - MobileDashboard_icons_list_case, - MobileDashboard_icons_list_lead, - MobileDashboard_icons_list_opportunity, - MobileDashboard_icons_list_quote, - MobileDashboard_icons_list_subtitle_other, - MobileDashboard_icons_list_approval, - MobileDashboard_icons_list_clock, - MobileDashboard_icons_list_event, - MobileDashboard_icons_list_favorite, - MobileDashboard_icons_list_like, - MobileDashboard_icons_list_dislike, - MobileDashboard_icons_list_location, - MobileDashboard_icons_list_priority, - MobileDashboard_icons_list_user, - MobileDashboard_icons_list_people, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js deleted file mode 100644 index 798cc4a..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js +++ /dev/null @@ -1,139 +0,0 @@ -import { createElement } from 'lwc'; -import DashboardSettingsCard from 'c/dashboardSettingsCard'; - -jest.mock( - './labels', - () => { - return { - MobileDashboard_card_filter_titleTime: 'test', - }; - }, - { virtual: true } -); - -let element; -describe('c-dashboard-settings-card', () => { - beforeEach(() => { - element = createElement('c-dashboard-settings-card', { - is: DashboardSettingsCard, - }); - - element.index = 0; - element.card = { - index: 1, - title: 'card title', - object: { label: 'Account' }, - filter: { - conditionLogic: 'AND', - subFilters: [ - { - key: 'rwn1ft', - fieldDisplay: 'Time Sheet End Date', - value: '', - unitDisplay: 'days', - quantity: '14', - operatorDisplay: 'last', - }, - { - key: '131fda', - fieldDisplay: 'Time Sheet Start Date', - value: '', - unitDisplay: 'weeks', - quantity: '1', - operatorDisplay: 'last', - }, - ], - }, - subFilters: [ - { - key: 'rwn1fa', - fieldDisplay: 'Time Sheet End Date', - value: '', - unitDisplay: 'days', - quantity: '14', - operatorDisplay: 'last', - }, - { - key: '131fdb', - fieldDisplay: 'Time Sheet Start Date', - value: '', - unitDisplay: 'weeks', - quantity: '1', - operatorDisplay: 'last', - }, - ], - layout: 'SIDE', - }; - element.handleEditCardClick = jest.fn(); - element.moveCardUp = jest.fn(); - element.moveCardDown = jest.fn(); - element.duplicateCard = jest.fn(); - element.deleteCard = jest.fn(); - - document.body.appendChild(element); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('should have correct title', () => { - const title = element.shadowRoot.querySelector('.title'); - expect(title.textContent).toBe(`1card title`); - }); - - it('should have correct criteria text', () => { - const filterSection = element.shadowRoot.querySelectorAll('.details-section')[1]; - const text = filterSection.textContent - .replace('c.MobileDashboard_card_filter_title', 'Filter') - .replace('c.MobileDashboard_settings_card_display_logic_and', 'AND'); - expect(text).toBe( - `FilterTime Sheet End Date last 14 daysAND\u00A0\u00A0\u00A0Time Sheet Start Date last 1 weeks` - ); - }); - - it('should call moveCardUp when edit clicked', async () => { - const actionGroup = element.shadowRoot.querySelectorAll('lightning-button-group')[0]; - const action = actionGroup.querySelectorAll('lightning-button-icon')[0]; - action.click(); - return Promise.resolve().then(() => { - expect(element.moveCardUp).toHaveBeenCalled(); - }); - }); - - it('should call moveCardDown when edit clicked', async () => { - const actionGroup = element.shadowRoot.querySelectorAll('lightning-button-group')[0]; - const action = actionGroup.querySelectorAll('lightning-button-icon')[1]; - action.click(); - return Promise.resolve().then(() => { - expect(element.moveCardDown).toHaveBeenCalled(); - }); - }); - - it('should call handleEditCardClick when edit clicked', async () => { - const actionGroup = element.shadowRoot.querySelectorAll('lightning-button-group')[1]; - const action = actionGroup.querySelector('lightning-button'); - action.click(); - return Promise.resolve().then(() => { - expect(element.handleEditCardClick).toHaveBeenCalled(); - }); - }); - - it('should call duplicateCard when duplicate clicked', async () => { - const action = element.shadowRoot.querySelectorAll('lightning-menu-item')[0]; - action.click(); - return Promise.resolve().then(() => { - expect(element.duplicateCard).toHaveBeenCalled(); - }); - }); - - it('should call deleteCard when delete clicked', async () => { - const action = element.shadowRoot.querySelectorAll('lightning-menu-item')[1]; - action.click(); - return Promise.resolve().then(() => { - expect(element.deleteCard).toHaveBeenCalled(); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css deleted file mode 100644 index bfc1666..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css +++ /dev/null @@ -1,89 +0,0 @@ -lightning-card { - width: 100%; -} - -.card-details { - width: 100%; - border: 1px solid #C9C9C9; - border-radius: 0.25rem; - margin-bottom: 16px; -} - -.details-header { - width: 100%; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 12px; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - border-top-left-radius: 4px; - border-top-right-radius: 4px; -} - -.title { - display: flex; - flex-direction: row; - align-items: center; - font-size: 16px; -} - -.number { - width: 32px; - height: 32px; - border-radius: 16px; - background-color: #D8E6FE; - display: flex; - align-items: center; - justify-content: center; - margin-right: 16px; -} - -.number p { - font-weight: 700; - font-size: 18px; - line-height: 27px; -} - -lightning-button-menu { - background: white; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; -} - -.details-body { - display: flex; - flex-direction: row; - justify-content: space-between; - padding: 16px; -} - -.details { - display: flex; - flex-direction: column; -} - -.details-section { - margin-bottom: 16px; -} - -h3 { - font-size: 12px; - font-weight: 700; - line-height: 23px; - margin-bottom: 8px; -} - -.details-section p { - font-size: 13px; - line-height: 20px; -} - -.preview { - width: 370px; -} - -lightning-helptext { - margin-left: 8px; -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html deleted file mode 100644 index 618b09c..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html +++ /dev/null @@ -1,61 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js deleted file mode 100644 index 966e7f5..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js +++ /dev/null @@ -1,29 +0,0 @@ -import MobileDashboard_settings_card_edit_button from '@salesforce/label/c.MobileDashboard_settings_card_edit_button'; -import MobileDashboard_settings_duplicate_button from '@salesforce/label/c.MobileDashboard_settings_duplicate_button'; -import MobileDashboard_settings_delete_button from '@salesforce/label/c.MobileDashboard_settings_delete_button'; -import MobileDashboard_settings_card_arrow_move_up from '@salesforce/label/c.MobileDashboard_settings_card_arrow_move_up'; -import MobileDashboard_settings_card_arrow_move_dn from '@salesforce/label/c.MobileDashboard_settings_card_arrow_move_dn'; -import MobileDashboard_settings_card_arrow_more_options from '@salesforce/label/c.MobileDashboard_settings_card_arrow_more_options'; -import MobileDashboard_card_object_field from '@salesforce/label/c.MobileDashboard_card_object_field'; -import MobileDashboard_card_filter_title from '@salesforce/label/c.MobileDashboard_card_filter_title'; -import MobileDashboard_preview_title from '@salesforce/label/c.MobileDashboard_preview_title'; -import MobileDashboard_preview_title_infobubble from '@salesforce/label/c.MobileDashboard_preview_title_infobubble'; -import MobileDashboard_settings_card_display_logic_and from '@salesforce/label/c.MobileDashboard_settings_card_display_logic_and'; -import MobileDashboard_settings_card_display_logic_or from '@salesforce/label/c.MobileDashboard_settings_card_display_logic_or'; - -const customLabels = { - MobileDashboard_settings_card_edit_button, - MobileDashboard_settings_duplicate_button, - MobileDashboard_settings_delete_button, - MobileDashboard_settings_card_arrow_move_up, - MobileDashboard_settings_card_arrow_move_dn, - MobileDashboard_settings_card_arrow_more_options, - MobileDashboard_card_object_field, - MobileDashboard_card_filter_title, - MobileDashboard_preview_title, - MobileDashboard_preview_title_infobubble, - MobileDashboard_settings_card_display_logic_and, - MobileDashboard_settings_card_display_logic_or, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css deleted file mode 100644 index 9c8b989..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css +++ /dev/null @@ -1,38 +0,0 @@ -.dashboard-settings-page-main-container { - max-width: 1300px; -} - -c-dashboard-toast-message { - position: fixed; - left: 35%; - z-index: 5; -} - -.header-icon { - margin-right: 12px; -} - -lightning-card { - width: 100%; -} - -.main-card { - padding: 24px; -} - -.settings-description { - margin-bottom: 16px; -} - -.settings-description p { - font-size: 13px; - line-height: 20px; - color: #444444; -} - -.settings-description h1 { - font-size: 16px; - line-height: 24px; - margin-bottom: 8px; - color: #181818; -} diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html deleted file mode 100644 index b657232..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html +++ /dev/null @@ -1,56 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js b/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js deleted file mode 100644 index 5bc8090..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js +++ /dev/null @@ -1,31 +0,0 @@ -import MobileDashboard_settings_header from '@salesforce/label/c.MobileDashboard_settings_header'; -import MobileDashboard_settings_title from '@salesforce/label/c.MobileDashboard_settings_title'; -import MobileDashboard_settings_description from '@salesforce/label/c.MobileDashboard_settings_description'; -import MobileDashboard_settings_add_card_button from '@salesforce/label/c.MobileDashboard_settings_add_card_button'; -import MobileDashboard_settings_cancel_button from '@salesforce/label/c.MobileDashboard_settings_cancel_button'; -import MobileDashboard_settings_delete_card_warning_title from '@salesforce/label/c.MobileDashboard_settings_delete_card_warning_title'; -import MobileDashboard_settings_new_card_modal_title from '@salesforce/label/c.MobileDashboard_settings_new_card_modal_title'; -import MobileDashboard_settings_delete_card_warning_body from '@salesforce/label/c.MobileDashboard_settings_delete_card_warning_body'; -import MobileDashboard_settings_edit_card_modal_title from '@salesforce/label/c.MobileDashboard_settings_edit_card_modal_title'; -import MobileDashboard_settings_error_add_card from '@salesforce/label/c.MobileDashboard_settings_error_add_card'; -import MobileDashboard_settings_error_save_card from '@salesforce/label/c.MobileDashboard_settings_error_save_card'; -import MobileDashboard_settings_error_delete_card from '@salesforce/label/c.MobileDashboard_settings_error_delete_card'; -import MobileDashboard_settings_error_duplicate_card from '@salesforce/label/c.MobileDashboard_settings_error_duplicate_card'; - -const customLabels = { - MobileDashboard_settings_header, - MobileDashboard_settings_title, - MobileDashboard_settings_description, - MobileDashboard_settings_add_card_button, - MobileDashboard_settings_cancel_button, - MobileDashboard_settings_delete_card_warning_title, - MobileDashboard_settings_new_card_modal_title, - MobileDashboard_settings_delete_card_warning_body, - MobileDashboard_settings_edit_card_modal_title, - MobileDashboard_settings_error_add_card, - MobileDashboard_settings_error_save_card, - MobileDashboard_settings_error_delete_card, - MobileDashboard_settings_error_duplicate_card, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js b/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js deleted file mode 100644 index aa775b8..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js +++ /dev/null @@ -1,46 +0,0 @@ -import { createElement } from 'lwc'; -import DashboardToastMessage from 'c/dashboardToastMessage'; - -let element; -describe('c-dashboard-toast-message', () => { - beforeEach(() => { - element = createElement('c-dashboard-toast-message', { - is: DashboardToastMessage, - }); - - document.body.appendChild(element); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('adds and removes a message to DOM', async () => { - jest.useFakeTimers(); - element.showToast('error', 'the message'); - return Promise.resolve().then(async () => { - let toasts = element.shadowRoot.querySelectorAll('.slds-notify_toast'); - expect(toasts).toHaveLength(1); - - jest.runAllTimers(); - return Promise.resolve().then(() => { - toasts = element.shadowRoot.querySelectorAll('.slds-notify_toast'); - expect(toasts).toHaveLength(0); - }); - }); - }); - - it('removes the message on close click', async () => { - element.showToast('error', 'the message'); - return Promise.resolve().then(async () => { - const close = element.shadowRoot.querySelector('lightning-button-icon'); - close.click(); - return Promise.resolve().then(() => { - const toasts = element.shadowRoot.querySelectorAll('.slds-notify_toast'); - expect(toasts).toHaveLength(0); - }); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html b/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html deleted file mode 100644 index 001ec97..0000000 --- a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html +++ /dev/null @@ -1,39 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js b/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js deleted file mode 100644 index 90f5de5..0000000 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js +++ /dev/null @@ -1,265 +0,0 @@ -import { createElement } from 'lwc'; -import EditCardModal from 'c/editCardModal'; - -jest.mock( - '@salesforce/apex/DashboardSettingsService.getAllFields', - () => { - return { - default: jest.fn(() => [{ value: 'AccountName', label: 'Account Name' }]), - }; - }, - { virtual: true } -); - -let element; -let tabset; - -describe('c-edit-card-modal', () => { - beforeEach(() => { - element = createElement('c-edit-card-modal', { - is: EditCardModal, - }); - - element.objectsOptions = [ - { label: 'Account', value: 'Account' }, - { label: 'Contact', value: 'Contact' }, - ]; - element.generateUniqueID = jest.fn(() => 'abc'); - element.close = jest.fn(); - element.card = { - index: 1, - title: 'card title', - object: { label: 'Account', value: 'Account' }, - filter: { - conditionLogic: 'AND', - subFilters: [ - { - key: 'rwn1ft', - fieldDisplay: 'Time Sheet End Date', - value: '', - unitDisplay: 'days', - quantity: '14', - operatorDisplay: 'last', - }, - { - key: '131fda', - fieldDisplay: 'Time Sheet Start Date', - value: '', - unitDisplay: 'weeks', - quantity: '1', - operatorDisplay: 'last', - }, - ], - }, - subFilters: [ - { - key: 'rwn1fa', - fieldDisplay: 'Time Sheet End Date', - value: '', - unitDisplay: 'days', - quantity: '14', - operatorDisplay: 'last', - }, - { - key: '131fdb', - fieldDisplay: 'Time Sheet Start Date', - value: '', - unitDisplay: 'weeks', - quantity: '1', - operatorDisplay: 'last', - }, - ], - layout: 'SIDE', - }; - - document.body.appendChild(element); - - tabset = element.shadowRoot.querySelector('lightning-tabset'); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('closes modal on cancel', async () => { - const cancel = element.shadowRoot.querySelectorAll('lightning-button')[0]; - cancel.click(); - return Promise.resolve().then(() => { - expect(element.close).toHaveBeenCalled(); - }); - }); - - it('closes modal on save', async () => { - const title = element.shadowRoot.querySelector('.name-field-input'); - const obj = element.shadowRoot.querySelector('.object-combobox'); - - title.validity = { valid: true }; - obj.validity = { valid: true }; - - const basicFilters = element.shadowRoot.querySelectorAll('c-basic-filter'); - basicFilters.forEach((bf) => { - bf.checkValidation = () => true; - }); - - const subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - subFilters.forEach((sf) => { - sf.checkValidation = () => true; - }); - - const save = element.shadowRoot.querySelectorAll('lightning-button')[1]; - save.click(); - return Promise.resolve().then(() => { - expect(element.close).toHaveBeenCalled(); - }); - }); - - it('leaves modal open on save with invalid fields', async () => { - const title = element.shadowRoot.querySelector('.name-field-input'); - const obj = element.shadowRoot.querySelector('.object-combobox'); - - title.validity = { valid: false }; - obj.validity = { valid: false }; - - const basicFilters = element.shadowRoot.querySelectorAll('c-basic-filter'); - basicFilters.forEach((bf) => { - bf.checkValidation = () => false; - }); - - const subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - subFilters.forEach((sf) => { - sf.checkValidation = () => false; - }); - - const save = element.shadowRoot.querySelectorAll('lightning-button')[1]; - save.click(); - return Promise.resolve().then(() => { - expect(element.close).not.toHaveBeenCalled(); - }); - }); - - it('clears main conditions when changing object', async () => { - let conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(2); - - const objectCombobox = element.shadowRoot.querySelector('.object-combobox'); - objectCombobox.value = 'Contact'; - objectCombobox.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(0); - }); - }); - - it('empties field options when changing to null object', async () => { - expect(element.fieldsOptions).toHaveLength(1); - - const objectCombobox = element.shadowRoot.querySelector('.object-combobox'); - objectCombobox.value = ''; - objectCombobox.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - expect(element.fieldsOptions).toHaveLength(0); - }); - }); - - it('does not clear main conditions when changing condition logic', async () => { - let conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(2); - - const conditionCombobox = element.shadowRoot.querySelector('.condition-combobox'); - conditionCombobox.value = 'OR'; - conditionCombobox.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(2); - }); - }); - - it('adds condition on handleAddConditionClick call', async () => { - let conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(2); - - element.handleAddConditionClick(); - return Promise.resolve().then(() => { - conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(3); - }); - }); - - it('removes condition when delete clicked', async () => { - let conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(2); - - const deleteButton = element.shadowRoot.querySelector('.condition lightning-button-icon'); - deleteButton.click(); - return Promise.resolve().then(() => { - conditions = element.shadowRoot.querySelectorAll('.condition'); - expect(conditions).toHaveLength(1); - }); - }); - - describe('tests details tab', () => { - beforeEach(() => { - tabset.activeTabValue = 'details-tab'; - }); - - it('add sub filter on handleAddSubFilterClick call', async () => { - let subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - expect(subFilters).toHaveLength(2); - - element.handleAddSubFilterClick(); - return Promise.resolve().then(() => { - subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - expect(subFilters).toHaveLength(3); - }); - }); - - it('add sub filter on duplicateSubFilter call', async () => { - let subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - expect(subFilters).toHaveLength(2); - - element.duplicateSubFilter(0); - return Promise.resolve().then(() => { - subFilters = element.shadowRoot.querySelectorAll('c-sub-filter-card'); - expect(subFilters).toHaveLength(3); - }); - }); - }); - - it('reorders sub filters on drag', async () => { - const firstSubFilter = element.shadowRoot.querySelectorAll('c-sub-filter-card')[0]; - const secondSubFilter = element.shadowRoot.querySelectorAll('c-sub-filter-card')[1]; - - const eStart = new Event('dragstart'); - const eEnter = new Event('dragenter'); - const eEnd = new Event('dragend'); - const eDrop = new Event('drop'); - secondSubFilter.dispatchEvent(eStart); - firstSubFilter.dispatchEvent(eEnter); - secondSubFilter.dispatchEvent(eEnd); - secondSubFilter.dispatchEvent(eDrop); - - return Promise.resolve().then(() => { - expect(firstSubFilter.index).toBe(1); - expect(secondSubFilter.index).toBe(0); - }); - }); - - it('does not reorder sub filters if entering with a filter to itself', async () => { - const firstSubFilter = element.shadowRoot.querySelectorAll('c-sub-filter-card')[0]; - - const eStart = new Event('dragstart'); - const eEnter = new Event('dragenter'); - const eEnd = new Event('dragend'); - const eDrop = new Event('drop'); - firstSubFilter.dispatchEvent(eStart); - firstSubFilter.dispatchEvent(eEnter); - firstSubFilter.dispatchEvent(eEnd); - firstSubFilter.dispatchEvent(eDrop); - - return Promise.resolve().then(() => { - expect(firstSubFilter.index).toBe(0); - }); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css b/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css deleted file mode 100644 index fa13365..0000000 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css +++ /dev/null @@ -1,150 +0,0 @@ -.layout-container { - display: flex; - flex-direction: column; -} - -.layout-comp { - flex: 1; -} - -.not-last { - margin-right: 38px; -} - -.layout-text { - flex: 1; -} - -.layout-img { - flex: 3; -} - -.card-layout-container { - display: flex; -} - -.layout-radio-container { - display: flex; - flex-direction: row; -} - -.layout-radio { - display: flex; - flex-direction: column; - margin-right: 60px; -} - -.sub-filters-container { - display: flex; - flex-direction: column; -} - -lightning-helptext { - margin-left: 8px; -} - -h1 { - font-size: 14px; - line-height: 24px; - font-weight: 700; - color: #181818; - margin-bottom: 16px; -} - -h2 { - font-size: 12px; - line-height: 18px; - font-weight: 700; - color: #444444; - margin-bottom: 16px; -} - -p { - font-size: 13px; - line-height: 20px; - color: #444444; - margin-bottom: 16px; -} - -.bold-p { - font-weight: 700; -} - -.card-data-title { - margin-bottom: 0; -} - -.card-props { - display: flex; - flex-direction: row; - justify-content: space-evenly; - margin-bottom: 16px; -} - -.card-props lightning-input, -.card-props lightning-combobox { - width: 100%; -} - -.card-props lightning-input { - margin-right: 16px; -} - -.obj-filter { - display: flex; - flex-direction: column; - justify-content: space-between; - background-color: #F3F3F3; - border: 1px solid #C9C9C9; - border-radius: 4px; - padding: 12px; -} - -.condition-combobox, c-basic-filter { - margin-bottom: 12px; -} - -.condition { - display: flex; - flex-direction: row; -} - -.logic-text { - width: 64px; - display: flex; - align-items: end; - justify-content: end; - margin-bottom: 12px; - margin-right: 16px; - font-weight: 700; - font-size: 14px; - line-height: 21px; -} - -c-basic-filter { - flex-grow: 1; -} - -.custom-logic-input { - margin: 12px 0; -} - -c-dashboard-add-button { - margin-top: 12px; -} - -lightning-button-icon { - background-color: white; - align-self: end; - margin-bottom: 12px; -} - -lightning-modal-footer lightning-button { - margin-left: 12px; -} - -.dragged { - border: 1px solid #032D60; - transition: 0.01s; - transform: translateX(-9999px); -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html b/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html deleted file mode 100644 index 65363af..0000000 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html +++ /dev/null @@ -1,147 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/jsconfig.json b/MobileDashboard/force-app/main/default/lwc/jsconfig.json deleted file mode 100644 index a72666d..0000000 --- a/MobileDashboard/force-app/main/default/lwc/jsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true - }, - "include": ["**/*", "../../../../.sfdx/typings/lwc/**/*.d.ts"], - "paths": { - "c/*": ["*"] - }, - "typeAcquisition": { - "include": ["jest"] - } -} diff --git a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css b/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css deleted file mode 100644 index 425849b..0000000 --- a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css +++ /dev/null @@ -1,8 +0,0 @@ -.main-container { - background-color: var(--slds-g-color-neutral-base-90, #E5E5E5); - padding: 16px; - display: flex; - flex-direction: column; - overflow-y: scroll; - width: 100vw; -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html b/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html deleted file mode 100644 index fee69b1..0000000 --- a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html +++ /dev/null @@ -1,11 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js b/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js deleted file mode 100644 index 6f2f409..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js +++ /dev/null @@ -1,96 +0,0 @@ -import { createElement } from 'lwc'; -import SubFilterCard from 'c/subFilterCard'; - -let element; -describe('c-sub-filter-card', () => { - beforeEach(() => { - element = createElement('c-sub-filter-card', { - is: SubFilterCard, - }); - - element.index = 0; - element.objectValue = 'Account'; - element.filter = { - key: 'xtao8a', - field: 'Status', - fieldDisplay: 'Status', - fieldType: 'PICKLIST', - operator: 'eq', - value: 'Completed', - label: 'Completed', - icon: 'utility: like', - color: '#3DBA63', - }; - element.fieldsOptions = [ - { label: 'A', value: 'a' }, - { label: 'B', value: 'b' }, - ]; - element.layout = 'SIDE'; - element.updateSubFilter = jest.fn(); - element.duplicateSubFilter = jest.fn(); - element.deleteSubFilter = jest.fn(); - - document.body.appendChild(element); - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('Label and color are correct', () => { - const inputs = element.shadowRoot.querySelectorAll('lightning-input'); - const label = inputs[0]; - const color = inputs[1]; - expect(label.value).toBe('Completed'); - expect(color.value).toBe('#3DBA63'); - }); - - it('should call duplicateSubFilter when duplicate clicked', async () => { - const action = element.shadowRoot.querySelectorAll('lightning-menu-item')[0]; - action.click(); - return Promise.resolve().then(() => { - expect(element.duplicateSubFilter).toHaveBeenCalled(); - }); - }); - - it('should call deleteSubFilter when delete clicked', async () => { - const action = element.shadowRoot.querySelectorAll('lightning-menu-item')[1]; - action.click(); - return Promise.resolve().then(() => { - expect(element.deleteSubFilter).toHaveBeenCalled(); - }); - }); - - it('should call updateSubFilter when change label', async () => { - const inputs = element.shadowRoot.querySelectorAll('lightning-input'); - const label = inputs[0]; - label.value = 'a'; - label.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - expect(element.updateSubFilter).toHaveBeenCalled(); - }); - }); - - it('should call updateSubFilter when change icon', async () => { - const inputs = element.shadowRoot.querySelectorAll('lightning-input'); - const icon = inputs[1]; - icon.value = 'utility:error'; - icon.dispatchEvent(new Event('change')); - return Promise.resolve().then(() => { - expect(element.updateSubFilter).toHaveBeenCalled(); - }); - }); - - it('return false from checkValidation when fields are valid', async () => { - const input = element.shadowRoot.querySelector('.label-input'); - input.validity = { valid: false }; - - const basic = element.shadowRoot.querySelector('c-basic-filter'); - basic.checkValidation = () => false; - - const isValid = element.checkValidation(); - expect(isValid).toBeFalsy; - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js b/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js deleted file mode 100644 index a4ae9a2..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js +++ /dev/null @@ -1,21 +0,0 @@ -import MobileDashboard_settings_duplicate_button from '@salesforce/label/c.MobileDashboard_settings_duplicate_button'; -import MobileDashboard_settings_delete_button from '@salesforce/label/c.MobileDashboard_settings_delete_button'; -import MobileDashboard_sub_filter_label_field from '@salesforce/label/c.MobileDashboard_sub_filter_label_field'; -import MobileDashboard_sub_filter_color_field from '@salesforce/label/c.MobileDashboard_sub_filter_color_field'; -import MobileDashboard_sub_filter_color_field_infobubble from '@salesforce/label/c.MobileDashboard_sub_filter_color_field_infobubble'; -import MobileDashboard_preview_title from '@salesforce/label/c.MobileDashboard_preview_title'; -import MobileDashboard_preview_title_infobubble from '@salesforce/label/c.MobileDashboard_preview_title_infobubble'; -import MobileDashboard_sub_filter_options from '@salesforce/label/c.MobileDashboard_sub_filter_options'; - -const customLabels = { - MobileDashboard_settings_duplicate_button, - MobileDashboard_settings_delete_button, - MobileDashboard_sub_filter_label_field, - MobileDashboard_sub_filter_color_field, - MobileDashboard_sub_filter_color_field_infobubble, - MobileDashboard_preview_title, - MobileDashboard_preview_title_infobubble, - MobileDashboard_sub_filter_options, -}; - -export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css b/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css deleted file mode 100644 index 7376028..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css +++ /dev/null @@ -1,86 +0,0 @@ -.drag-divider { - margin: 6px 0; - height: 0; - width: 100%; - height: 2px; -} - -.drag-divider-active { - background-color: #1B96FF; -} - -h3 { - color: #444444; - font-weight: 700; - font-size: 13px; - line-height: 20px; -} - -.sub-filter { - display: flex; - flex-direction: row; - justify-content: space-between; - background-color: #F3F3F3; - border: 1px solid #C9C9C9; - border-radius: 4px; - padding: 12px; -} - -.grabber { - cursor: move; - margin-right: 20px; - display: flex; - align-items: center; - flex-shrink: 0; -} - -.row { - display: flex; - flex-direction: row; -} - -.menu { - flex-shrink: 0; -} - -lightning-button-menu { - background: white; -} - -.props-container { - width: calc(50% - 104px); - margin-right: 24px; - display: flex; - flex-direction: column; - justify-content: space-between; - flex: 1; -} - -lightning-input, lightning-combobox, c-dashboard-icons-picker { - margin-right: 16px; -} - -c-basic-filter { - flex: 1; -} - -.preview { - margin-right: 24px; - display: flex; - flex-direction: column; - justify-content: start; - flex: 2; -} - -.slds-form-element__label { - line-height: 22px; -} - -lightning-helptext { - margin-left: 8px; -} - -.props-list { - display: flex; - flex-direction: row; -} diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html b/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html deleted file mode 100644 index fd81a01..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html +++ /dev/null @@ -1,62 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js b/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js deleted file mode 100644 index eabcfa3..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js +++ /dev/null @@ -1,47 +0,0 @@ -import { createElement } from 'lwc'; -import SubFilterSummaryComponent from 'c/subFilterSummaryComponent'; - -let element; -describe('c-sub-filter-summary-component', () => { - beforeEach(() => { - element = createElement('c-sub-filter-summary-component', { - is: SubFilterSummaryComponent, - }); - - element.counter = 5; - element.icon = 'utility:like'; - element.label = 'the label'; - element.color = '#123456'; - }); - - afterEach(() => { - while (document.body.firstChild) { - document.body.removeChild(document.body.firstChild); - } - }); - - it('should show correct info', () => { - document.body.appendChild(element); - - const counter = element.shadowRoot.querySelector('.sub-counter'); - const subLabel = element.shadowRoot.querySelector('.sub-label'); - expect(counter.textContent).toBe('5'); - expect(subLabel.textContent).toBe('the label'); - }); - - it('should have side class', () => { - element.layout = 'SIDE'; - document.body.appendChild(element); - - const container = element.shadowRoot.querySelector('div'); - expect(container.classList).toContain('side'); - }); - - it('should have stack class', () => { - element.layout = 'STACK'; - document.body.appendChild(element); - - const container = element.shadowRoot.querySelector('div'); - expect(container.classList).toContain('stack'); - }); -}); diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css b/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css deleted file mode 100644 index b005105..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css +++ /dev/null @@ -1,49 +0,0 @@ -.main-container { - background-color: white; - min-width: 95px; - padding: 8px; - border: 2px solid var(--slds-g-color-neutral-base-95, #F3F3F3); - border-radius: 12px; - display: flex; -} - -.placeholder { - height: 24px; -} - -.side { - flex-direction: column; - justify-content: center; - height: 66px; -} - -.stack { - flex-direction: row; - align-items: center; -} - -.sub-counter { - font-size: 20px; - line-height: 24px; -} - -.side .sub-counter { - margin-bottom: 4px; -} - -.stack .sub-counter { - margin-right: 16px; -} - -.sub-label { - display: flex; - flex-direction: row; - align-items: center; - font-weight: 700; - font-size: 12px; - line-height: 18px; -} - -.icon { - margin-right: 4px; -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html b/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html deleted file mode 100644 index 6174b0a..0000000 --- a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html +++ /dev/null @@ -1,20 +0,0 @@ - diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css b/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css deleted file mode 100644 index ba793e6..0000000 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css +++ /dev/null @@ -1,41 +0,0 @@ -.main-container { - background-color: var(--slds-g-color-neutral-base-100, white); - margin-bottom: 16px; - border-radius: 12px; -} - -p { - font-size: 16px; - line-height: 22px; - font-weight: 600; - padding: 13px 12px 0px 12px; - color: var(--slds-g-color-neutral-base-10, #181818); -} - -.padding-non-empty-card { - padding-bottom: 8px; -} - -.sub-container { - display: flex; - padding: 0 12px 12px 4px; -} - -.sub-container-side { - flex-direction: row; - flex-wrap: wrap; -} - -.sub-container-stack { - flex-direction: column; -} - -c-sub-filter-summary-component { - flex: 1; - margin-left: 8px; - margin-top: 8px; -} - -.border { - border: 1px solid #C9C9C9; -} \ No newline at end of file diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html b/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html deleted file mode 100644 index 5da5bf1..0000000 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html +++ /dev/null @@ -1,20 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html b/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html deleted file mode 100644 index 705085b..0000000 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html b/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html deleted file mode 100644 index 705085b..0000000 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html b/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html deleted file mode 100644 index 705085b..0000000 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/MobileDashboard/jest.config.js b/MobileDashboard/jest.config.js deleted file mode 100644 index 1cf5545..0000000 --- a/MobileDashboard/jest.config.js +++ /dev/null @@ -1,13 +0,0 @@ -const { jestConfig } = require('@salesforce/sfdx-lwc-jest/config'); - -module.exports = { - ...jestConfig, - modulePathIgnorePatterns: ['/.localdevserver'], - moduleNameMapper: { - '^lightning/modal$': '/force-app/test/jest-mocks/lightning/modal', - '^lightning/modalBody$': '/force-app/test/jest-mocks/lightning/modalBody', - '^lightning/modalFooter$': '/force-app/test/jest-mocks/lightning/modalFooter', - '^lightning/modalHeader$': '/force-app/test/jest-mocks/lightning/modalHeader', - '^lightning/uiGraphQLApi$': '/force-app/test/jest-mocks/lightning/uiGraphQLApi', - }, -}; diff --git a/MobileDashboard/package.json b/MobileDashboard/package.json deleted file mode 100644 index 13f2f54..0000000 --- a/MobileDashboard/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "eslint **/{aura,lwc}/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "postinstall": "husky install", - "precommit": "lint-staged" - }, - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.1.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "husky": "^7.0.4", - "lint-staged": "^12.3.7", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.10.0" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura,lwc}/**": [ - "eslint" - ] - } -} diff --git a/MobileDashboard/sfdx-project.json b/MobileDashboard/sfdx-project.json deleted file mode 100644 index 001cf96..0000000 --- a/MobileDashboard/sfdx-project.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "packageDirectories": [ - { - "path": "force-app", - "package": "Mobile Dashboard for Field Service Mobile", - "versionName": "Summer '24", - "versionNumber": "244.0.0.NEXT", - "default": true, - "versionDescription": "" - } - ], - "name": "Mobile Dashboard for Field Service Mobile", - "namespace": "", - "sfdcLoginUrl": "https://login.salesforce.com/", - "sourceApiVersion": "55.0", - "packageAliases": { - "Mobile Dashboard for Field Service Mobile": "0HoB00000008PtKKAU", - "Mobile Dashboard for Field Service Mobile@1.0.0-2": "04tB0000000h4nQIAQ", - "Mobile Dashboard for Field Service Mobile@1.1.0-1": "04tB0000000h4wAIAQ" - } -} diff --git a/MobileDashboard/yarn.lock b/MobileDashboard/yarn.lock deleted file mode 100644 index 241f79d..0000000 --- a/MobileDashboard/yarn.lock +++ /dev/null @@ -1,4067 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@ampproject/remapping@^2.1.0", "@ampproject/remapping@^2.2.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - dependencies: - "@jridgewell/gen-mapping" "^0.1.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" - dependencies: - "@babel/highlight" "^7.18.6" - -"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.20.5": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz" - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.20.5", "@babel/core@^7.7.2", "@babel/core@^7.8.0", "@babel/core@~7.21.0": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.21.3.tgz" - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.21.3" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helpers" "^7.21.0" - "@babel/parser" "^7.21.3" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.3" - "@babel/types" "^7.21.3" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/core@~7.20.2": - version "7.20.12" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz" - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/eslint-parser@~7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz" - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.0" - -"@babel/generator@^7.20.7", "@babel/generator@^7.21.3", "@babel/generator@^7.7.2": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.21.3.tgz" - dependencies: - "@babel/types" "^7.21.3" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - dependencies: - "@babel/types" "^7.23.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-compilation-targets@^7.20.7": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz" - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - lru-cache "^5.1.1" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz" - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.21.0" - "@babel/helper-member-expression-to-functions" "^7.21.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-replace-supers" "^7.20.7" - "@babel/helper-skip-transparent-expression-wrappers" "^7.20.0" - "@babel/helper-split-export-declaration" "^7.18.6" - -"@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - -"@babel/helper-function-name@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz" - dependencies: - "@babel/template" "^7.20.7" - "@babel/types" "^7.21.0" - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz" - dependencies: - "@babel/types" "^7.21.0" - -"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@~7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": - version "7.21.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz" - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.2" - "@babel/types" "^7.21.2" - -"@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz" - -"@babel/helper-replace-supers@^7.20.7": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz" - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.20.7" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz" - dependencies: - "@babel/types" "^7.20.2" - -"@babel/helper-skip-transparent-expression-wrappers@^7.20.0": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz" - dependencies: - "@babel/types" "^7.20.0" - -"@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.19.4": - version "7.19.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": - version "7.19.1" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - -"@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz" - -"@babel/helpers@^7.20.7", "@babel/helpers@^7.21.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz" - dependencies: - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.0" - "@babel/types" "^7.21.0" - -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - dependencies: - "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.21.3.tgz" - -"@babel/parser@^7.22.15", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - -"@babel/plugin-proposal-class-properties@~7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@~7.20.2": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-decorators@^7.19.0": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.20.0", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.19.0" - -"@babel/plugin-transform-modules-commonjs@^7.19.6": - version "7.21.2" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz" - dependencies: - "@babel/helper-module-transforms" "^7.21.2" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-simple-access" "^7.20.2" - -"@babel/plugin-transform-parameters@^7.20.7": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - -"@babel/plugin-transform-typescript@^7.21.0": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz" - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.21.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-typescript" "^7.20.0" - -"@babel/preset-typescript@^7.18.6": - version "7.21.0" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.0.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.21.0" - "@babel/plugin-transform-typescript" "^7.21.0" - -"@babel/template@^7.20.7", "@babel/template@^7.3.3": - version "7.20.7" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz" - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - -"@babel/template@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@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.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.21.3" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.21.3.tgz" - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.4.0": - version "4.4.1" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.1.tgz" - -"@eslint/eslintrc@^2.0.1": - version "2.0.1" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz" - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.5.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" - -"@eslint/js@8.36.0": - version "8.36.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz" - -"@hapi/hoek@^9.0.0": - version "9.3.0" - resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz" - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz" - dependencies: - "@hapi/hoek" "^9.0.0" - -"@humanwhocodes/config-array@^0.11.8": - version "0.11.8" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz" - dependencies: - "@humanwhocodes/object-schema" "^1.2.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" - -"@humanwhocodes/object-schema@^1.2.1": - version "1.2.1" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz" - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/core@^27.4.7", "@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz" - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz" - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz" - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz" - dependencies: - "@sinclair/typebox" "^0.25.16" - -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz" - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz" - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz" - dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" - -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz" - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz" - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.17" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz" - dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" - -"@lwc/babel-plugin-component@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/babel-plugin-component/-/babel-plugin-component-2.31.0.tgz" - dependencies: - "@babel/helper-module-imports" "~7.18.6" - "@lwc/errors" "2.31.0" - "@lwc/shared" "2.31.0" - line-column "~1.0.2" - -"@lwc/compiler@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/compiler/-/compiler-2.31.0.tgz" - dependencies: - "@babel/core" "~7.20.2" - "@babel/plugin-proposal-class-properties" "~7.18.6" - "@babel/plugin-proposal-object-rest-spread" "~7.20.2" - "@lwc/babel-plugin-component" "2.31.0" - "@lwc/errors" "2.31.0" - "@lwc/shared" "2.31.0" - "@lwc/style-compiler" "2.31.0" - "@lwc/template-compiler" "2.31.0" - -"@lwc/engine-dom@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/engine-dom/-/engine-dom-2.31.0.tgz" - -"@lwc/errors@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/errors/-/errors-2.31.0.tgz" - -"@lwc/eslint-plugin-lwc@^1.1.2": - version "1.6.2" - resolved "https://registry.npmjs.org/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.6.2.tgz" - dependencies: - globals "^13.20.0" - minimatch "^6.2.0" - -"@lwc/jest-preset@11.5.4": - version "11.5.4" - resolved "https://registry.npmjs.org/@lwc/jest-preset/-/jest-preset-11.5.4.tgz" - dependencies: - "@lwc/jest-resolver" "11.5.4" - "@lwc/jest-serializer" "11.5.4" - "@lwc/jest-transformer" "11.5.4" - -"@lwc/jest-resolver@11.5.4": - version "11.5.4" - resolved "https://registry.npmjs.org/@lwc/jest-resolver/-/jest-resolver-11.5.4.tgz" - -"@lwc/jest-serializer@11.5.4": - version "11.5.4" - resolved "https://registry.npmjs.org/@lwc/jest-serializer/-/jest-serializer-11.5.4.tgz" - dependencies: - pretty-format "^29.3.1" - -"@lwc/jest-transformer@11.5.4": - version "11.5.4" - resolved "https://registry.npmjs.org/@lwc/jest-transformer/-/jest-transformer-11.5.4.tgz" - dependencies: - "@babel/core" "^7.20.5" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-decorators" "^7.19.0" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/preset-typescript" "^7.18.6" - babel-preset-jest "^29.2.0" - -"@lwc/module-resolver@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/module-resolver/-/module-resolver-2.31.0.tgz" - dependencies: - resolve "~1.22.1" - -"@lwc/shared@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/shared/-/shared-2.31.0.tgz" - -"@lwc/style-compiler@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/style-compiler/-/style-compiler-2.31.0.tgz" - dependencies: - "@lwc/shared" "2.31.0" - postcss "~8.4.18" - postcss-selector-parser "~6.0.9" - postcss-value-parser "~4.2.0" - string.prototype.matchall "^4.0.8" - -"@lwc/synthetic-shadow@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/synthetic-shadow/-/synthetic-shadow-2.31.0.tgz" - -"@lwc/template-compiler@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/template-compiler/-/template-compiler-2.31.0.tgz" - dependencies: - "@lwc/errors" "2.31.0" - "@lwc/shared" "2.31.0" - acorn "~8.8.1" - astring "~1.8.3" - estree-walker "~2.0.2" - he "~1.2.0" - parse5 "~6.0.1" - -"@lwc/wire-service@2.31.0": - version "2.31.0" - resolved "https://registry.npmjs.org/@lwc/wire-service/-/wire-service-2.31.0.tgz" - -"@mdn/browser-compat-data@^3.3.14": - version "3.3.14" - resolved "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz" - -"@mdn/browser-compat-data@^5.2.34": - version "5.2.45" - resolved "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.2.45.tgz" - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - 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" - dependencies: - eslint-scope "5.1.1" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@prettier/plugin-xml@^2.0.1": - version "2.2.0" - resolved "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz" - dependencies: - "@xml-tools/parser" "^1.0.11" - prettier ">=2.4.0" - -"@salesforce/eslint-config-lwc@^3.2.3": - version "3.4.0" - resolved "https://registry.npmjs.org/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.4.0.tgz" - dependencies: - "@babel/core" "~7.21.0" - "@babel/eslint-parser" "~7.19.1" - eslint-restricted-globals "~0.2.0" - semver "^7.3.8" - -"@salesforce/eslint-plugin-aura@^2.0.0": - version "2.1.0" - resolved "https://registry.npmjs.org/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz" - dependencies: - eslint-plugin-compat "^4.0.2" - -"@salesforce/eslint-plugin-lightning@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz" - -"@salesforce/sfdx-lwc-jest@^1.1.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.3.0.tgz" - dependencies: - "@lwc/compiler" "2.31.0" - "@lwc/engine-dom" "2.31.0" - "@lwc/jest-preset" "11.5.4" - "@lwc/jest-resolver" "11.5.4" - "@lwc/jest-serializer" "11.5.4" - "@lwc/jest-transformer" "11.5.4" - "@lwc/module-resolver" "2.31.0" - "@lwc/synthetic-shadow" "2.31.0" - "@lwc/wire-service" "2.31.0" - "@salesforce/wire-service-jest-util" "4.0.1" - chalk "^4.1.2" - fast-glob "^3.2.12" - jest "27.4.7" - yargs "~17.6.2" - -"@salesforce/wire-service-jest-util@4.0.1": - version "4.0.1" - resolved "https://registry.npmjs.org/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.1.tgz" - -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz" - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz" - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz" - -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz" - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz" - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz" - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.0" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz" - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.18.3" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz" - dependencies: - "@babel/types" "^7.3.0" - -"@types/graceful-fs@^4.1.2": - version "4.1.6" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz" - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - -"@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" - -"@types/node@*": - version "18.15.10" - resolved "https://registry.npmjs.org/@types/node/-/node-18.15.10.tgz" - -"@types/prettier@^2.1.5": - version "2.7.2" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz" - -"@types/semver@^7.3.12": - version "7.3.13" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz" - -"@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - -"@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - -"@types/yargs@^16.0.0": - version "16.0.5" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz" - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/scope-manager@5.56.0": - version "5.56.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz" - dependencies: - "@typescript-eslint/types" "5.56.0" - "@typescript-eslint/visitor-keys" "5.56.0" - -"@typescript-eslint/types@5.56.0": - version "5.56.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz" - -"@typescript-eslint/typescript-estree@5.56.0": - version "5.56.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz" - dependencies: - "@typescript-eslint/types" "5.56.0" - "@typescript-eslint/visitor-keys" "5.56.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@^5.10.0": - version "5.56.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz" - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.56.0" - "@typescript-eslint/types" "5.56.0" - "@typescript-eslint/typescript-estree" "5.56.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.56.0": - version "5.56.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz" - dependencies: - "@typescript-eslint/types" "5.56.0" - eslint-visitor-keys "^3.3.0" - -"@xml-tools/parser@^1.0.11": - version "1.0.11" - resolved "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz" - dependencies: - chevrotain "7.1.1" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz" - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz" - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz" - -acorn@^8.2.4, acorn@^8.8.0, acorn@~8.8.1: - version "8.8.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz" - -agent-base@6: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - dependencies: - debug "4" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv@^6.10.0, ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" - 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" - -ansi-escapes@^4.2.1, ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.6: - version "3.1.6" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" - -array.prototype.flat@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - es-shim-unscopables "^1.0.0" - -ast-metadata-inferer@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz" - dependencies: - "@mdn/browser-compat-data" "^3.3.14" - -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" - -astring@~1.8.3: - version "1.8.4" - resolved "https://registry.npmjs.org/astring/-/astring-1.8.4.tgz" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - -axios@^0.25.0: - version "0.25.0" - resolved "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz" - dependencies: - follow-redirects "^1.14.7" - -axios@^1.0.0: - version "1.3.4" - resolved "https://registry.npmjs.org/axios/-/axios-1.3.4.tgz" - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz" - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz" - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^29.5.0: - version "29.5.0" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz" - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz" - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.2.0: - version "29.5.0" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz" - dependencies: - babel-plugin-jest-hoist "^29.5.0" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz" - -browserslist@^4.21.3, browserslist@^4.21.5: - version "4.21.5" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz" - dependencies: - caniuse-lite "^1.0.30001449" - electron-to-chromium "^1.4.284" - node-releases "^2.0.8" - update-browserslist-db "^1.0.10" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - -caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001451: - version "1.0.30001470" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001470.tgz" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - -chevrotain@7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz" - dependencies: - regexp-to-ast "0.5.0" - -ci-info@^3.2.0: - version "3.8.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz" - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" - -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" - dependencies: - restore-cursor "^3.1.0" - -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" - dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" - -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz" - dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - -colorette@^2.0.16: - version "2.0.19" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - dependencies: - delayed-stream "~1.0.0" - -commander@^9.3.0: - version "9.5.0" - resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz" - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz" - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz" - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz" - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" - dependencies: - ms "^2.1.1" - -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - -deep-is@^0.1.3, deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - -define-properties@^1.1.3, define-properties@^1.1.4: - version "1.2.0" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz" - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - dependencies: - esutils "^2.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz" - dependencies: - webidl-conversions "^5.0.0" - -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" - -electron-to-chromium@^1.4.284: - version "1.4.340" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.340.tgz" - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz" - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.19.0, es-abstract@^1.20.4: - version "1.21.2" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.21.2.tgz" - dependencies: - array-buffer-byte-length "^1.0.0" - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.5" - get-intrinsic "^1.2.0" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has "^1.0.3" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.10" - is-weakref "^1.0.2" - object-inspect "^1.12.3" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.4.3" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.7" - string.prototype.trimend "^1.0.6" - string.prototype.trimstart "^1.0.6" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.9" - -es-set-tostringtag@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" - dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" - has-tostringtag "^1.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" - dependencies: - has "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" - -escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz" - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -eslint-import-resolver-node@^0.3.7: - version "0.3.7" - resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz" - dependencies: - debug "^3.2.7" - is-core-module "^2.11.0" - resolve "^1.22.1" - -eslint-module-utils@^2.7.4: - version "2.7.4" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz" - dependencies: - debug "^3.2.7" - -eslint-plugin-compat@^4.0.2: - version "4.1.2" - resolved "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.1.2.tgz" - dependencies: - "@mdn/browser-compat-data" "^5.2.34" - ast-metadata-inferer "^0.7.0" - browserslist "^4.21.5" - caniuse-lite "^1.0.30001451" - find-up "^5.0.0" - lodash.memoize "4.1.2" - semver "7.3.8" - -eslint-plugin-import@^2.25.4: - version "2.27.5" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz" - dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" - debug "^3.2.7" - doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" - is-glob "^4.0.3" - minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" - -eslint-plugin-jest@^26.1.2: - version "26.9.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz" - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-restricted-globals@~0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz" - -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.1.1: - version "7.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz" - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz" - -eslint@^8.11.0: - version "8.36.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz" - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.1" - "@eslint/js" "8.36.0" - "@humanwhocodes/config-array" "^0.11.8" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-visitor-keys "^3.3.0" - espree "^9.5.0" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-sdsl "^4.1.4" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.1" - strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" - text-table "^0.2.0" - -espree@^9.5.0: - version "9.5.0" - resolved "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz" - dependencies: - acorn "^8.8.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.3.0" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" - -estree-walker@~2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - -execa@^5.0.0, execa@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - -fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz" - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - dependencies: - bser "2.1.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz" - dependencies: - flatted "^3.1.0" - rimraf "^3.0.2" - -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz" - -follow-redirects@^1.14.7, follow-redirects@^1.15.0: - version "1.15.2" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz" - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - dependencies: - is-callable "^1.1.3" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - -fsevents@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - -function.prototype.name@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.0" - functions-have-names "^1.2.2" - -functions-have-names@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" - dependencies: - is-glob "^4.0.3" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - -globals@^13.19.0, globals@^13.20.0: - version "13.20.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz" - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" - -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz" - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - dependencies: - get-intrinsic "^1.1.1" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - dependencies: - has-symbols "^1.0.2" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - dependencies: - function-bind "^1.1.1" - -he@~1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - -husky@^7.0.4: - version "7.0.4" - resolved "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^5.2.0: - version "5.2.4" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" - -import-fresh@^3.0.0, import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - -internal-slot@^1.0.3, internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" - dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" - -is-core-module@^2.11.0, is-core-module@^2.9.0: - version "2.11.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz" - dependencies: - has "^1.0.3" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.9: - version "1.1.10" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz" - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - dependencies: - call-bind "^1.0.2" - -isarray@1.0.0, isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - dependencies: - isarray "1.0.0" - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.7: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz" - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz" - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz" - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz" - dependencies: - detect-newline "^3.0.0" - -jest-docblock@^29.0.0: - version "29.4.3" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.4.3.tgz" - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz" - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz" - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz" - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz" - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz" - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz" - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz" - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz" - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz" - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz" - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz" - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" - -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz" - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@27.4.7: - version "27.4.7" - resolved "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz" - dependencies: - "@jest/core" "^27.4.7" - import-local "^3.0.2" - jest-cli "^27.4.7" - -joi@^17.6.0: - version "17.9.1" - resolved "https://registry.npmjs.org/joi/-/joi-17.9.1.tgz" - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -js-sdsl@^4.1.4: - version "4.4.0" - resolved "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz" - dependencies: - 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" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" - dependencies: - minimist "^1.2.0" - -json5@^2.2.2: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lilconfig@2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz" - -line-column@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz" - dependencies: - isarray "^1.0.0" - isobject "^2.0.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - -lint-staged@^12.3.7: - version "12.5.0" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-12.5.0.tgz" - dependencies: - cli-truncate "^3.1.0" - colorette "^2.0.16" - commander "^9.3.0" - debug "^4.3.4" - execa "^5.1.1" - lilconfig "2.0.5" - listr2 "^4.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.5.0" - string-argv "^0.3.1" - supports-color "^9.2.2" - yaml "^1.10.2" - -listr2@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz" - dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.16" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.5" - through "^2.3.8" - wrap-ansi "^7.0.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" - dependencies: - p-locate "^5.0.0" - -lodash.memoize@4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" - -lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" - -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" - dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - dependencies: - yallist "^4.0.0" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - dependencies: - semver "^6.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - dependencies: - tmpl "1.0.5" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" - -micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - dependencies: - brace-expansion "^1.1.7" - -minimatch@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-6.2.0.tgz" - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: - version "1.2.8" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - -node-releases@^2.0.8: - version "2.0.10" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - dependencies: - path-key "^3.0.0" - -nwsapi@^2.2.0: - version "2.2.2" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz" - -object-inspect@^1.12.2, object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz" - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - -object.assign@^4.1.4: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.values@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - dependencies: - 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" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz" - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.3" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" - dependencies: - p-limit "^3.0.2" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" - dependencies: - aggregate-error "^3.0.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1, parse5@~6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - -pidtree@^0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz" - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - dependencies: - find-up "^4.0.0" - -postcss-selector-parser@~6.0.9: - version "6.0.11" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz" - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@~4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" - -postcss@~8.4.18: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - -prettier-plugin-apex@^1.10.0: - version "1.12.0" - resolved "https://registry.npmjs.org/prettier-plugin-apex/-/prettier-plugin-apex-1.12.0.tgz" - dependencies: - axios "^1.0.0" - jest-docblock "^29.0.0" - wait-on "^6.0.0" - yargs "^17.0.0" - -prettier@>=2.4.0, prettier@^2.6.0: - version "2.8.7" - resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.7.tgz" - -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz" - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^29.3.1: - version "29.5.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz" - dependencies: - "@jest/schemas" "^29.4.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.0" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - -regexp-to-ast@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz" - -regexp.prototype.flags@^1.4.3: - version "1.4.3" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - functions-have-names "^1.2.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz" - -resolve@^1.20.0, resolve@^1.22.1, resolve@~1.22.1: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" - dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" - dependencies: - queue-microtask "^1.2.2" - -rxjs@^7.5.4, rxjs@^7.5.5: - version "7.8.0" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.0.tgz" - dependencies: - tslib "^2.1.0" - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz" - dependencies: - xmlchars "^2.2.0" - -semver@7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - dependencies: - lru-cache "^6.0.0" - -semver@^6.0.0, semver@^6.3.0: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - -semver@^7.3.2, semver@^7.3.7, semver@^7.3.8: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" - dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - dependencies: - escape-string-regexp "^2.0.0" - -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - -string.prototype.matchall@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - get-intrinsic "^1.1.3" - has-symbols "^1.0.3" - internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.3" - side-channel "^1.0.4" - -string.prototype.trim@^1.2.7: - version "1.2.7" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimend@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -string.prototype.trimstart@^1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz" - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz" - dependencies: - ansi-regex "^6.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - dependencies: - has-flag "^4.0.0" - -supports-color@^9.2.2: - version "9.3.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.3.1.tgz" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz" - -through@^2.3.8: - version "2.3.8" - resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz" - dependencies: - punycode "^2.1.1" - -tsconfig-paths@^3.14.1: - version "3.14.2" - resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz" - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - -tslib@^2.1.0: - version "2.5.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz" - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" - dependencies: - prelude-ls "^1.2.1" - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" - dependencies: - is-typedarray "^1.0.0" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz" - -update-browserslist-db@^1.0.10: - version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz" - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz" - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz" - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz" - dependencies: - xml-name-validator "^3.0.0" - -wait-on@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz" - dependencies: - axios "^0.25.0" - joi "^17.6.0" - lodash "^4.17.21" - minimist "^1.2.5" - rxjs "^7.5.4" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - dependencies: - makeerror "1.0.12" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz" - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz" - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz" - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz" - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz" - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.9: - version "1.1.9" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz" - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - is-typed-array "^1.1.10" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz" - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz" - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz" - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - -yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.0.0: - version "17.7.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz" - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yargs@~17.6.2: - version "17.6.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz" - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" diff --git a/NameAndSignatureCapture/package-lock.json b/NameAndSignatureCapture/package-lock.json deleted file mode 100644 index 27f42ca..0000000 --- a/NameAndSignatureCapture/package-lock.json +++ /dev/null @@ -1,14378 +0,0 @@ -{ - "name": "salesforce-app", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "salesforce-app", - "version": "1.0.0", - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/highlight": "^7.22.13", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.21.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/eslint-parser": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@babel/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, - "dependencies": { - "@babel/types": "^7.23.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.21.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.21.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "dev": true, - "dependencies": { - "@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", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@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, - "dependencies": { - "@babel/helper-string-parser": "^7.22.5", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "8.40.0", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "node_modules/@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/console/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/console/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/console/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/console/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/core/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/core/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/reporters/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/reporters/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/reporters/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.25.16" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/transform/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/transform/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/transform/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/transform/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true, - "license": "MIT" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/babel-plugin-component": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - }, - "peerDependencies": { - "@babel/core": "^7" - } - }, - "node_modules/@lwc/babel-plugin-component/node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@lwc/compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - } - }, - "node_modules/@lwc/compiler/node_modules/@babel/core": { - "version": "7.20.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@lwc/engine-dom": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/engine-server": { - "version": "2.45.2", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/@lwc/errors": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/eslint-plugin-lwc": { - "version": "1.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "globals": "^13.20.0", - "minimatch": "^6.2.0" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@babel/eslint-parser": "^7", - "eslint": "^7 || ^8" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lwc/eslint-plugin-lwc/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lwc/jest-preset": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "@lwc/engine-dom": "*", - "@lwc/engine-server": ">=2", - "@lwc/synthetic-shadow": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-resolver": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-serializer": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "pretty-format": "^29.3.1" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/jest-transformer": { - "version": "11.5.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@lwc/compiler": "*", - "jest": "^26 || ^27 || ^28 || ^29" - } - }, - "node_modules/@lwc/module-resolver": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "~1.22.1" - } - }, - "node_modules/@lwc/shared": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/style-compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "node_modules/@lwc/synthetic-shadow": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@lwc/template-compiler": { - "version": "2.31.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "node_modules/@lwc/wire-service": { - "version": "2.31.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@mdn/browser-compat-data": { - "version": "5.2.57", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-scope": "5.1.1" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@prettier/plugin-xml": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "node_modules/@salesforce/eslint-config-lwc": { - "version": "3.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "~7.21.0", - "@babel/eslint-parser": "~7.19.1", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "@lwc/eslint-plugin-lwc": "^1.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "eslint": "^7 || ^8", - "eslint-plugin-import": "*", - "eslint-plugin-jest": "*" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/@babel/eslint-parser": { - "version": "7.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || >=14.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.11.0", - "eslint": "^7.5.0 || ^8.0.0" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/@babel/eslint-parser/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@salesforce/eslint-config-lwc/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "eslint-plugin-compat": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": "^7 || ^8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.2" - }, - "bin": { - "lwc-jest": "bin/sfdx-lwc-jest", - "sfdx-lwc-jest": "bin/sfdx-lwc-jest" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@salesforce/sfdx-lwc-jest/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@lwc/engine-dom": "^2.0.0" - } - }, - "node_modules/@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0" - } - }, - "node_modules/@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "node_modules/@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "node_modules/@sinclair/typebox": { - "version": "0.25.24", - "dev": true, - "license": "MIT" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/babel__core": { - "version": "7.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/node": { - "version": "20.1.5", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/prettier": { - "version": "2.7.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/semver": { - "version": "7.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "16.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@xml-tools/parser": { - "version": "1.0.11", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "chevrotain": "7.1.1" - } - }, - "node_modules/abab": { - "version": "2.0.6", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/acorn": { - "version": "8.8.2", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "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, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-includes": { - "version": "3.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array-union": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ast-metadata-inferer": { - "version": "0.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.34" - } - }, - "node_modules/astring": { - "version": "1.8.4", - "dev": true, - "license": "MIT", - "bin": { - "astring": "bin/astring" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/babel-jest": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/babel-plugin-jest-hoist": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-jest/node_modules/babel-preset-jest": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.21.5", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/call-bind": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001487", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" - }, - "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" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/chevrotain": { - "version": "7.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "regexp-to-ast": "0.5.0" - } - }, - "node_modules/ci-info": { - "version": "3.8.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui": { - "version": "8.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "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==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "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 - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/convert-source-map": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "dev": true, - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/doctrine": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/electron-to-chromium": { - "version": "1.4.396", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.21.2", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/eslint": { - "version": "8.40.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.7", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-compat": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdn/browser-compat-data": "^5.2.47", - "@tsconfig/node14": "^1.0.3", - "ast-metadata-inferer": "^0.8.0", - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001473", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.8" - }, - "engines": { - "node": ">=14.x" - }, - "peerDependencies": { - "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-compat/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/semver": { - "version": "7.3.8", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint-plugin-compat/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/eslint-plugin-import": { - "version": "2.27.5", - "dev": true, - "license": "MIT", - "dependencies": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "26.9.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-restricted-globals": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.0", - "dev": true, - "license": "BSD-2-Clause", - "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.1", - "dev": true, - "license": "Apache-2.0", - "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", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "9.5.2", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "3.4.1", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "dev": true, - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.2.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.15.0", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "dev": true, - "license": "ISC" - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "license": "MIT", - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "dev": true, - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "dev": true, - "license": "ISC" - }, - "node_modules/grapheme-splitter": { - "version": "1.0.4", - "dev": true, - "license": "MIT" - }, - "node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/he": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "bin": { - "he": "bin/he" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ignore": { - "version": "5.2.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "dev": true, - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "dev": true, - "license": "ISC" - }, - "node_modules/internal-slot": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.12.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "dev": true, - "license": "MIT", - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/isobject": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.4.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-circus/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-circus/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-circus/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-circus/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-circus/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "7.0.4", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-cli/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "20.2.9", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-config": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-config/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-config/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-config/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-config/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-docblock": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-each/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-each/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-each/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-each/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-jasmine2/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-jasmine2/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-jasmine2/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-jasmine2/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-leak-detector/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-message-util/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-message-util/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-message-util/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-mock": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runner/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runner/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-runner/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runner/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-runtime/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-serializer": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-snapshot/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.5.1", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/jest-util": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-validate/node_modules/pretty-format": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-validate/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "27.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "dependencies": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "node_modules/js-sdsl": { - "version": "4.4.0", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/js-sdsl" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "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" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.2.3", - "dev": true, - "license": "MIT", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/line-column": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/locate-path": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "dev": true, - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "6.2.0", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.6", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.10", - "dev": true, - "license": "MIT" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nwsapi": { - "version": "2.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/object-inspect": { - "version": "1.12.3", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.values": { - "version": "1.1.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/once": { - "version": "1.4.0", - "dev": true, - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-type": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "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.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "dev": true, - "license": "MIT", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/prettier-plugin-apex": { - "version": "1.13.0", - "dev": true, - "license": "MIT", - "dependencies": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "bin": { - "apex-ast-serializer": "vendor/apex-ast-serializer/bin/apex-ast-serializer", - "apex-ast-serializer-http": "vendor/apex-ast-serializer/bin/apex-ast-serializer-http", - "start-apex-server": "dist/bin/start-apex-server.js", - "stop-apex-server": "dist/bin/stop-apex-server.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "peerDependencies": { - "prettier": "^2.0.0" - } - }, - "node_modules/prettier-plugin-apex/node_modules/jest-docblock": { - "version": "29.4.3", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format": { - "version": "29.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.9.0", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react-is": { - "version": "18.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp-to-ast": { - "version": "0.5.0", - "dev": true, - "license": "MIT" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.22.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/rxjs/node_modules/tslib": { - "version": "2.5.0", - "dev": true, - "license": "0BSD" - }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/saxes": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "dev": true, - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string.prototype.matchall": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.7", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "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, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks/node_modules/supports-color": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/throat": { - "version": "6.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/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, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "dev": true, - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "5.0.4", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/universalify": { - "version": "0.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.11", - "dev": true, - "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" - } - ], - "license": "MIT", - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "dev": true, - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.4", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "bin": { - "wait-on": "bin/wait-on" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "dev": true, - "license": "MIT" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "dev": true, - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.9", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/y18n": { - "version": "5.0.8", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "3.1.1", - "dev": true, - "license": "ISC" - }, - "node_modules/yargs": { - "version": "17.6.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.1", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@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/compat-data": { - "version": "7.21.7", - "dev": true - }, - "@babel/core": { - "version": "7.21.8", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.21.4", - "@babel/generator": "^7.21.5", - "@babel/helper-compilation-targets": "^7.21.5", - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helpers": "^7.21.5", - "@babel/parser": "^7.21.8", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - }, - "@babel/eslint-parser": { - "version": "7.21.8", - "dev": true, - "peer": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - } - }, - "@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-annotate-as-pure": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.8", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.21.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6", - "semver": "^6.3.0" - } - }, - "@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-member-expression-to-functions": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-module-imports": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/types": "^7.21.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-module-imports": "^7.21.4", - "@babel/helper-simple-access": "^7.21.5", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.21.5", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.21.5", - "@babel/helper-member-expression-to-functions": "^7.21.5", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-simple-access": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/types": "^7.21.5" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@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/helper-validator-option": { - "version": "7.21.0", - "dev": true - }, - "@babel/helpers": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.5", - "@babel/types": "^7.21.5" - } - }, - "@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/plugin-proposal-class-properties": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.5", - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-simple-access": "^7.21.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.21.3", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/preset-typescript": { - "version": "7.21.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.21.5", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.5", - "@babel/plugin-transform-typescript": "^7.21.3" - } - }, - "@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/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "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", - "globals": "^11.1.0" - } - }, - "@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" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@eslint-community/eslint-utils": { - "version": "4.4.0", - "dev": true, - "requires": { - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "@eslint-community/regexpp": { - "version": "4.5.1", - "dev": true - }, - "@eslint/eslintrc": { - "version": "2.0.3", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.5.2", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "@eslint/js": { - "version": "8.40.0", - "dev": true - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.8", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "dev": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "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": { - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/schemas": { - "version": "29.4.3", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.18", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - }, - "dependencies": { - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "dev": true - } - } - }, - "@lwc/babel-plugin-component": { - "version": "2.31.0", - "dev": true, - "requires": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - }, - "dependencies": { - "@babel/helper-module-imports": { - "version": "7.18.6", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - } - } - }, - "@lwc/compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - }, - "dependencies": { - "@babel/core": { - "version": "7.20.12", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - } - } - } - }, - "@lwc/engine-dom": { - "version": "2.31.0", - "dev": true - }, - "@lwc/engine-server": { - "version": "2.45.2", - "dev": true, - "peer": true, - "requires": { - "parse5": "^6.0.1" - } - }, - "@lwc/errors": { - "version": "2.31.0", - "dev": true - }, - "@lwc/eslint-plugin-lwc": { - "version": "1.6.2", - "dev": true, - "requires": { - "globals": "^13.20.0", - "minimatch": "^6.2.0" - }, - "dependencies": { - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "@lwc/jest-preset": { - "version": "11.5.4", - "dev": true, - "requires": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - } - }, - "@lwc/jest-resolver": { - "version": "11.5.4", - "dev": true, - "requires": {} - }, - "@lwc/jest-serializer": { - "version": "11.5.4", - "dev": true, - "requires": { - "pretty-format": "^29.3.1" - } - }, - "@lwc/jest-transformer": { - "version": "11.5.4", - "dev": true, - "requires": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - } - }, - "@lwc/module-resolver": { - "version": "2.31.0", - "dev": true, - "requires": { - "resolve": "~1.22.1" - } - }, - "@lwc/shared": { - "version": "2.31.0", - "dev": true - }, - "@lwc/style-compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "@lwc/synthetic-shadow": { - "version": "2.31.0", - "dev": true - }, - "@lwc/template-compiler": { - "version": "2.31.0", - "dev": true, - "requires": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "@lwc/wire-service": { - "version": "2.31.0", - "dev": true - }, - "@mdn/browser-compat-data": { - "version": "5.2.57", - "dev": true - }, - "@nicolo-ribaudo/eslint-scope-5-internals": { - "version": "5.1.1-v1", - "dev": true, - "requires": { - "eslint-scope": "5.1.1" - } - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@prettier/plugin-xml": { - "version": "2.2.0", - "dev": true, - "requires": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "@salesforce/eslint-config-lwc": { - "version": "3.4.0", - "dev": true, - "requires": { - "@babel/core": "~7.21.0", - "@babel/eslint-parser": "~7.19.1", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.8" - }, - "dependencies": { - "@babel/eslint-parser": { - "version": "7.19.1", - "dev": true, - "requires": { - "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", - "eslint-visitor-keys": "^2.1.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "dev": true, - "requires": { - "eslint-plugin-compat": "^4.0.2" - } - }, - "@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "dev": true, - "requires": {} - }, - "@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "dev": true, - "requires": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "dev": true, - "requires": {} - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "@sinclair/typebox": { - "version": "0.25.24", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.6", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tootallnate/once": { - "version": "1.1.2", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.3", - "dev": true - }, - "@types/babel__core": { - "version": "7.20.0", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.5", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.6", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "dev": true - }, - "@types/node": { - "version": "20.1.5", - "dev": true - }, - "@types/prettier": { - "version": "2.7.2", - "dev": true - }, - "@types/semver": { - "version": "7.5.0", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/yargs": { - "version": "16.0.5", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "dev": true - }, - "@typescript-eslint/scope-manager": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6" - } - }, - "@typescript-eslint/types": { - "version": "5.59.6", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/visitor-keys": "5.59.6", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@typescript-eslint/utils": { - "version": "5.59.6", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.59.6", - "@typescript-eslint/types": "5.59.6", - "@typescript-eslint/typescript-estree": "5.59.6", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.59.6", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.59.6", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "@xml-tools/parser": { - "version": "1.0.11", - "dev": true, - "requires": { - "chevrotain": "7.1.1" - } - }, - "abab": { - "version": "2.0.6", - "dev": true - }, - "acorn": { - "version": "8.8.2", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-jsx": { - "version": "5.3.2", - "dev": true, - "requires": {} - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "6.12.6", - "dev": true, - "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" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "dev": true - }, - "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": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "dev": true - }, - "array-buffer-byte-length": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, - "array-includes": { - "version": "3.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "2.1.0", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "ast-metadata-inferer": { - "version": "0.8.0", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^5.2.34" - } - }, - "astring": { - "version": "1.8.4", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "dev": true - }, - "available-typed-arrays": { - "version": "1.0.5", - "dev": true - }, - "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "babel-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "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" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "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": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.5.0", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "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": "29.5.0", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "dev": true - }, - "brace-expansion": { - "version": "2.0.1", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "braces": { - "version": "3.0.2", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "dev": true - }, - "browserslist": { - "version": "4.21.5", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001449", - "electron-to-chromium": "^1.4.284", - "node-releases": "^2.0.8", - "update-browserslist-db": "^1.0.10" - } - }, - "bser": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-from": { - "version": "1.1.2", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001487", - "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" - } - }, - "char-regex": { - "version": "1.0.2", - "dev": true - }, - "chevrotain": { - "version": "7.1.1", - "dev": true, - "requires": { - "regexp-to-ast": "0.5.0" - } - }, - "ci-info": { - "version": "3.8.0", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "dev": true - }, - "cliui": { - "version": "8.0.1", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "dev": true - }, - "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==", - "dev": true, - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssesc": { - "version": "3.0.0", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "dev": true - } - } - }, - "data-urls": { - "version": "2.0.0", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "4.3.4", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.3", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "dev": true - }, - "deepmerge": { - "version": "4.3.1", - "dev": true - }, - "define-properties": { - "version": "1.2.0", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "dev": true - }, - "detect-newline": { - "version": "3.1.0", - "dev": true - }, - "diff-sequences": { - "version": "27.5.1", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "doctrine": { - "version": "3.0.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "domexception": { - "version": "2.0.1", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "dev": true - } - } - }, - "electron-to-chromium": { - "version": "1.4.396", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "dev": true - }, - "error-ex": { - "version": "1.3.2", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.21.2", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.2.0", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.10", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.7", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.9" - } - }, - "es-set-tostringtag": { - "version": "2.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "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", - "dev": true - }, - "levn": { - "version": "0.3.0", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.40.0", - "dev": true, - "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.4.0", - "@eslint/eslintrc": "^2.0.3", - "@eslint/js": "8.40.0", - "@humanwhocodes/config-array": "^0.11.8", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.0", - "eslint-visitor-keys": "^3.4.1", - "espree": "^9.5.2", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "dev": true - }, - "eslint-scope": { - "version": "7.2.0", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "dev": true - }, - "globals": { - "version": "13.20.0", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "dev": true - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.7", - "dev": true, - "requires": { - "debug": "^3.2.7", - "is-core-module": "^2.11.0", - "resolve": "^1.22.1" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.8.0", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-compat": { - "version": "4.1.4", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^5.2.47", - "@tsconfig/node14": "^1.0.3", - "ast-metadata-inferer": "^0.8.0", - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001473", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.8" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "semver": { - "version": "7.3.8", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "eslint-plugin-import": { - "version": "2.27.5", - "dev": true, - "requires": { - "array-includes": "^3.1.6", - "array.prototype.flat": "^1.3.1", - "array.prototype.flatmap": "^1.3.1", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.7", - "eslint-module-utils": "^2.7.4", - "has": "^1.0.3", - "is-core-module": "^2.11.0", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.6", - "resolve": "^1.22.1", - "semver": "^6.3.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "debug": { - "version": "3.2.7", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "doctrine": { - "version": "2.1.0", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "eslint-plugin-jest": { - "version": "26.9.0", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.10.0" - } - }, - "eslint-restricted-globals": { - "version": "0.2.0", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "dev": true - }, - "espree": { - "version": "9.5.2", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.4.1", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "dev": true - }, - "esquery": { - "version": "1.5.0", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "dev": true - }, - "estree-walker": { - "version": "2.0.2", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "dev": true - }, - "execa": { - "version": "5.1.1", - "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" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expect": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "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" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "dev": true - }, - "fastq": { - "version": "1.15.0", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-entry-cache": { - "version": "6.0.1", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "dev": true - }, - "follow-redirects": { - "version": "1.15.2", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "dev": true - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "dev": true - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "dev": true - }, - "get-intrinsic": { - "version": "1.2.1", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "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" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "glob-parent": { - "version": "6.0.2", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "globalthis": { - "version": "1.0.3", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "globby": { - "version": "11.1.0", - "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" - } - }, - "gopd": { - "version": "1.0.1", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.11", - "dev": true - }, - "grapheme-splitter": { - "version": "1.0.4", - "dev": true - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-proto": { - "version": "1.0.1", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "dev": true - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "http-proxy-agent": { - "version": "4.0.1", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.4", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "dev": true - }, - "internal-slot": { - "version": "1.0.5", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-array-buffer": { - "version": "3.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, - "is-arrayish": { - "version": "0.2.1", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "dev": true - }, - "is-core-module": { - "version": "2.12.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "dev": true - }, - "is-generator-fn": { - "version": "2.1.0", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-path-inside": { - "version": "3.0.3", - "dev": true - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.4.7", - "dev": true, - "requires": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-cli": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "7.0.4", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yargs": { - "version": "16.2.0", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "dev": true - } - } - }, - "jest-config": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-docblock": { - "version": "27.5.1", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.5.1", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.3.2" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "semver": { - "version": "7.5.1", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "dev": true - } - } - }, - "jest-util": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "camelcase": { - "version": "6.3.0", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "27.5.1", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-sdsl": { - "version": "4.4.0", - "dev": true - }, - "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": "4.1.0", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsdom": { - "version": "16.7.0", - "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" - } - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "dev": true - }, - "json5": { - "version": "2.2.3", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "dev": true - }, - "leven": { - "version": "3.1.0", - "dev": true - }, - "levn": { - "version": "0.4.1", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "line-column": { - "version": "1.0.2", - "dev": true, - "requires": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "dev": true - }, - "locate-path": { - "version": "6.0.0", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "dev": true - }, - "lru-cache": { - "version": "5.1.1", - "dev": true, - "requires": { - "yallist": "^3.0.2" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "minimatch": { - "version": "6.2.0", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.8", - "dev": true - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "nanoid": { - "version": "3.3.6", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "dev": true - }, - "node-releases": { - "version": "2.0.10", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nwsapi": { - "version": "2.2.4", - "dev": true - }, - "object-inspect": { - "version": "1.12.3", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "parent-module": { - "version": "1.0.1", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-json": { - "version": "5.2.0", - "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" - } - }, - "parse5": { - "version": "6.0.1", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "dev": true - }, - "picocolors": { - "version": "1.0.0", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.13", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "dev": true - }, - "prettier": { - "version": "2.8.8", - "dev": true - }, - "prettier-plugin-apex": { - "version": "1.13.0", - "dev": true, - "requires": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "jest-docblock": { - "version": "29.4.3", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - } - } - }, - "pretty-format": { - "version": "29.5.0", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "dev": true - }, - "psl": { - "version": "1.9.0", - "dev": true - }, - "punycode": { - "version": "2.3.0", - "dev": true - }, - "querystringify": { - "version": "2.2.0", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "dev": true - }, - "react-is": { - "version": "18.2.0", - "dev": true - }, - "regexp-to-ast": { - "version": "0.5.0", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.5.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "functions-have-names": "^1.2.3" - } - }, - "require-directory": { - "version": "2.1.1", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "dev": true - }, - "resolve": { - "version": "1.22.2", - "dev": true, - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "dev": true - }, - "resolve.exports": { - "version": "1.1.1", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "run-parallel": { - "version": "1.2.0", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.8.1", - "dev": true, - "requires": { - "tslib": "^2.1.0" - }, - "dependencies": { - "tslib": { - "version": "2.5.0", - "dev": true - } - } - }, - "safe-regex-test": { - "version": "1.0.0", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "6.3.0", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "dev": true - }, - "sisteransi": { - "version": "1.0.5", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "dev": true - }, - "source-map-support": { - "version": "0.5.21", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - } - } - }, - "string-length": { - "version": "4.0.2", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trim": { - "version": "1.2.7", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "dev": true - }, - "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" - } - }, - "supports-hyperlinks": { - "version": "2.3.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "dev": true - }, - "symbol-tree": { - "version": "3.2.4", - "dev": true - }, - "terminal-link": { - "version": "2.1.1", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "brace-expansion": { - "version": "1.1.11", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "minimatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "dev": true - }, - "throat": { - "version": "6.0.2", - "dev": true - }, - "tmpl": { - "version": "1.0.5", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "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" - } - }, - "tr46": { - "version": "2.1.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tsconfig-paths": { - "version": "3.14.2", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.2", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "dev": true - } - } - }, - "tslib": { - "version": "1.14.1", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, - "type-check": { - "version": "0.4.0", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "typed-array-length": { - "version": "1.0.4", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "5.0.4", - "dev": true, - "peer": true - }, - "unbox-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "0.2.0", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.11", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "dev": true, - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "dev": true - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "requires": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - } - }, - "walker": { - "version": "1.0.8", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.9", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.9", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "dev": true - }, - "yallist": { - "version": "3.1.1", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "dev": true - } - } -} diff --git a/README.md b/README.md index 1506529..0d1deca 100644 --- a/README.md +++ b/README.md @@ -1,87 +1,26 @@ -# Samples for Previewing Lightning Web Components on Mobile -Welcome to the Mobile Preview samples repo. Here, you can find sample projects and apps that let you preview Lightning web components several ways: -- In your desktop browser -- In the mobile browser of an iOS or Android virtual device -- In a native app running on an iOS or Android virtual device +# Sample Lightning Web Components Projects for Mobile +Welcome to the Mobile samples repo. You can browse the samples under the [projects](./projects) folder. -**IMPORTANT!** Before running this sample Lightning Web Component project, you must configure it to use a scratch org. If you're not familiar with this concept, we recommend completing the following trails. These trails demonstrate how to set up your development environment and configure a Lightning Web Component project with a Salesforce scratch org: +## Contribution Guidelines -- [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components?trail_id=build-lightning-web-components) -- [Set Up Your Lightning Web Components Developer Tools](https://trailhead.salesforce.com/content/learn/projects/set-up-your-lightning-web-components-developer-tools?trail_id=build-lightning-web-components) +### Contributing -## What's Included +1. Familiarize yourself with the codebase. +1. Create your standalone SFDX project and add all of your code to it. +1. Fork this repository. +1. Copy your SFDX project into `projects` folder in your fork. +1. Modify your project and align it with the requirements of this monorepo (follow the example of any of the existing projects): + 1. Update the `name` and `description` in your `package.json` to something meaningful. + 1. Ensure your `dependencies` and `devDependencies` are not too old. + 1. `DO NOT` include a `package-lock.json` file. We use Yarn in this repo. After copying over your project, delete its `package-lock.json` and `node_modules` and then run `yarn install` at the root of the repo. This will update the existing `yarn.lock` file in the repo and generate a new `node_modules` for your project. + 1. Ensure that running `yarn precommit` at the root of the repo passes all of the checks and address any failures. +1. Ensure that you've set up GPG signing to sign your commits. +1. Once ready, send us a pull request. We'll review your code, suggest any changes needed, and merge it in when ready. -Samples in this repo include Lightning Web Component projects and native mobile apps. The native apps are configured to recognize and display a component running on a local server. +### Branches -### Lightning Web Component Projects +- We work directly in `main`. This means that every PR that goes in `main` should be self contained and complete. For feature work that is done via multiple PRs, please create a feature branch in your fork first and once all of the work is done then create a PR to `main` for review. -These samples define Lightning web components and demonstrate configurations for previewing them. -

    - - HelloWorld - -This sample Lightning Web Component project demonstrates how to preview locally. It contains a basic Lightning web component, along with mobile-apps.json - a configuration file that defines how to preview this component in native mobile apps. +### Pull Requests -This file points to configure_android_test_app.ts and configure_ios_test_app.ts files. Together, these files demonstrate how you can - - - Configure your apps to show up in the VSCode preview dialog boxes. - - Define the optional get_app_bundle parameter. You can implement it to compile the app or perform any other setup steps. - -For more information on mobile-apps.json, see - -- “Configuring a Native Mobile App to Host Previews” in [Preview Your Components from the Command Line](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions_cli_commands) -- [Preview in Custom Mobile Apps](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions_integrate_custom_app) - -
    - -### Native Mobile Apps -These samples let you preview Lightning web components in standalone native apps. -
    - - apps/ios/LwcTestApp - - -A sample app that you can use to preview a Lightning web component in a native iOS app. -
    - -
    - - apps/android/LwcTestApp - - -A sample app that you can use to preview a Lightning web component in a native Android app. -
    - -## Previewing the Hello World Sample - -After you've set up your environment, connect the `HelloWorld` sample project to your scratch org and preview your component. You can use the following instructions as a model for previewing other Lightning web components. - -1. In VS Code, open the `HelloWorld` folder. - - -2. Configure the `HelloWorld` project to use a scratch org. If you already have a scratch org, skip to step 3. If you don't have a scratch org: - 1. In VS Code, press Cmd+Shift+p (macOS) or Ctrl+Shift+p (Windows). - 2. Type in `Scratch` and select `SFDX: Create a Default Scratch Org`. - 3. Follow the onscreen steps to create a scratch org. The recommended trails provide detailed information on these steps. - 4. Ensure that a success message appears in the VS Code Output window. - - -3. Authorize the `HelloWorld` project to use your scratch org. - 1. In VS Code, press Cmd+Shift+p (macOS) or Ctrl+Shift+p (Windows). - 2. Type in `Authorize` and select `SFDX: Authorize an Org`. - 3. Follow the onscreen steps to log into your Salesforce Org with your credentials. The recommended trails provide detailed information on these steps. - 4. Ensure that a success message appears in the VS Code Output window. - - -4. Now that your `HelloWorld` project is connected to your scratch org, preview it locally. - 1. In VS Code, navigate to `force-app > main > default > lwc`. - 2. Right-click `helloWorld` and select `SFDX: Preview Component Locally`. - 3. Select whether you'd like to preview it in your desktop browser or on an iOS or Android device. - 4. If you chose iOS/Android, either - - - Select an available virtual device from the presented list (if one appears), or - - - Choose to create a virtual device. - 5. Indicate whether you'd like to preview the component on your mobile browser or in the provided native LWC Test App. - -Your virtual device launches, and your component preview appears. - -For full documentation, see [Preview Lightning Web Components on Mobile](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions). +- This repo is open to public so `DO NOT` include internal info in PRs (such as GUS work item number) and in your code. diff --git a/RescheduleAppointments/.vscode/extensions.json b/RescheduleAppointments/.vscode/extensions.json deleted file mode 100644 index 7e6cb10..0000000 --- a/RescheduleAppointments/.vscode/extensions.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recommendations": [ - "salesforce.salesforcedx-vscode", - "redhat.vscode-xml", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "financialforce.lana" - ] -} diff --git a/RescheduleAppointments/force-app/main/default/aura/.eslintrc.json b/RescheduleAppointments/force-app/main/default/aura/.eslintrc.json deleted file mode 100644 index bde085b..0000000 --- a/RescheduleAppointments/force-app/main/default/aura/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "plugins": ["@salesforce/eslint-plugin-aura"], - "extends": ["plugin:@salesforce/eslint-plugin-aura/recommended", "prettier"], - "rules": { - "vars-on-top": "off", - "no-unused-expressions": "off" - } -} diff --git a/RescheduleAppointments/force-app/main/default/lwc/jsconfig.json b/RescheduleAppointments/force-app/main/default/lwc/jsconfig.json deleted file mode 100644 index cde20cb..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/jsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true - }, - "include": ["**/*", "../../../../.sfdx/typings/lwc/**/*.d.ts"], - "paths": { - "c/*": ["*"] - }, - "typeAcquisition": { - "include": ["jest"] - }, - "experimentalDecorators": true -} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css deleted file mode 100644 index 7893389..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css +++ /dev/null @@ -1,192 +0,0 @@ -.calendar-nav-header{ - margin-top: 10px; - padding-top: 12px; - padding-bottom: 12px; - align-items: center; -} -.selectedDay { - border-radius: 50%; - color: #FFFF; - height: 32px; - width: 32px; - background-color: #0D7FA8 !important; -} -.unselectedDay { - color: rgb(43, 40, 38); - height: 32px; - width: 32px; -} -.blockDate { - color: rgb(201, 199, 197); - height: 32px; - width: 32px; -} -.currentDay { - color: rgba(1,1,1,1); - border-radius: 50%; - height: 32px; - width: 32px; - border: 1px solid rgba(1,1,1,1) !important; - -} -.currentDayBlocked { - color: rgb(201, 199, 197); - border-radius: 50%; - height: 32px; - width: 32px; - border: 1px solid rgba(159, 170, 181, 0.5) !important; - background-color: #EEEEEE !important; - -} -.btn { - border: none; - cursor: pointer; - display: inline-block; - border: none; - background-color: inherit; - padding: 0px; - margin-top: 6px; - height: 32px; - width: 32px; -} -.monthButton{ - height: 24px; - font-size: 18px; - font-weight: 500; - letter-spacing: 0.38px; - line-height: 24px; - display: flex; - align-items: center; - --slds-c-button-text-color: #0D7FA8; -} -.full-calendar-month-button{ - height: 21px; - font-size: 18px; - font-weight: 500; - line-height: 21px; - display: flex; - align-items: center; - margin: 16px; -} -tr { - text-align: center; -} -td { - text-align: center; - box-sizing: initial; - color: rgb(0, 112, 210); - height: 44px; - font-size: 16px; - font-weight: normal; - letter-spacing: -0.38px; -} -th { - text-align: center; - box-sizing: initial; - color: rgb(112, 110, 107); - font-size: 13px; - font-weight: normal; - letter-spacing: -0.08px; - line-height: 18px; - width: 44px; -} -.table{ - font-size: medium; - vertical-align: middle; -} -*:focus { - outline: none; -} -.rightButton{ - margin-left: 0px; - margin-right: 0px; - padding-left: 0px; - padding-right: 0px; - position: relative; - color: rgb(106, 106, 106); -} -.leftButton{ - margin-left: 0px; - margin-right: 8px; - padding-left: 0px; - padding-right: 0px; - position: relative; - color: rgb(106, 106, 106); -} -.slds-popover{ - z-index: 9000; -} - -.modal { - position: fixed; - top: auto; - bottom: 0px; - left: 0px; - height: 99%; - overflow-y: auto; -} -.breakLine { - margin: 0; - margin: 0 -16px 5px -16px; - padding-bottom: 16px; -} -.full-calendar-close-btn{ - cursor: pointer; -} -.select-a-date-title{ - font-weight: 500; - font-size: 18px; - line-height: 21px; -} -.modal-footer{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding: 16px; - gap: 16px; - height: 80px; - border-radius: 0px; - flex: none; - order: 3; - align-self: stretch; - flex-grow: 0; - border-top: 1px solid rgba(159, 170, 181, 0.5); - position: fixed; - bottom: 0; - left: 0; - right: 0; - background-color: white; - z-index: 100; - padding-bottom: 24px; -} -.confirmBtn { - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 50px; - font-size: 16px; - border-radius: 12px; - background-color: #0D7FA8; - font-weight: 500; -} -.dialogContainer{ - padding-bottom: 80px; - height: 99vh; -} -@media screen and (orientation:landscape) { - .slds-modal__container{ - height: 130vh !important; - } -} - -.changecolor{ - --lwc-colorTextIconDefault: #0D7FA8; - fill:#0D7FA8; - --sds-c-icon-color-foreground-default: #0D7FA8; -} - -.scrollableweek{ - overflow-y: auto; -} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html deleted file mode 100644 index 9409a21..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html +++ /dev/null @@ -1,243 +0,0 @@ - \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css deleted file mode 100644 index a9ac408..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css +++ /dev/null @@ -1,51 +0,0 @@ -.container{ - background-color: white; - padding: 16px; -} -.title{ - font-size: 18px; - line-height: 21px; - font-weight: 500; - color: rgb(0,0,0); - margin-bottom: 13px; -} - -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px 16px -16px; -} - -.info{ - font-size: 16px; - line-height: 22px; - color: rgba(68, 68, 68, 1); - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; -} - -.info-emph{ - font-size: 16px; - line-height: 22px; - font-weight: 500; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.info-date{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.secondary-title{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: #444444; -} - diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css deleted file mode 100644 index 4541e16..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css +++ /dev/null @@ -1,20 +0,0 @@ -.page-header{ - display: flex; -} -.landing-container{ - background-color: rgba(238, 238, 238, 1); -} - -.landing-section{ - margin-bottom: 10px; -} - -.test{ - background-color: blue; - height: 300px; -} - -.spinner-container{ - height: 100vh; - background-color: rgba(255, 255, 255, 0.7); -} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css deleted file mode 100644 index 930f988..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css +++ /dev/null @@ -1,170 +0,0 @@ -.main-container{ - padding: 16px; -} - -.modal-container{ - width:100%; - min-height:320px; - background: white; - border-top-left-radius: 8px; - border-top-right-radius: 8px; -} - -.spinner-container{ - position: inherit; -} - -.confirmBtn { - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 50px; - font-size: 16px; - border-radius: 12px; - background-color: #0D7FA8; - font-weight: 500; -} - -.confirmBtn:active { - opacity: 25%; -} - -.confirmBtn:hover { - opacity: 25%; -} - -.confirmBtn:focus{ - opacity: 25%; -} - -.acceptNewAptTitle{ - font-weight: 500; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - text-align: center; - flex-direction: column; -} -.acceptNewAptClose{ - margin-top: 2px; - cursor: pointer; -} -.modal { - position: fixed; - top: auto; - bottom: 0px; - left: 0px; -} - -svg[class*="slds-button__icon_left"]{ - padding-bottom: 2px !important; -} - -.modal-footer{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding: 0 16px; - gap: 16px; - border-radius: 0px; - flex: none; - order: 3; - align-self: stretch; - flex-grow: 0; - height: 80px; -} - -.modal-title-container{ - border-bottom: 1px solid rgba(159, 170, 181, 0.5); - box-sizing: border-box; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 0px; - isolation: isolate; - height: 48px; - padding: 16px; -} - -.info{ - font-size: 16px; - line-height: 22px; - color: rgba(68, 68, 68, 1); - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; - margin: 16px; -} - -.info-emph{ - font-size: 16px; - line-height: 22px; - font-weight: 500; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.info-date{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.secondary-title{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: #444444; -} - -.scheduling-results-container{ - display: flex; - flex-direction: column; - align-items: center; - padding: 43px 0; -} - -.scheduling-results-title{ - margin-top: 16px; - font-size: 16px; - line-height: 22px; - font-weight: 500; -} - -.scheduling-results-info{ - font-size: 16px; - line-height: 22px; - color: rgba(0, 0, 0, 1); -} - -.schedule-results-header-icon-container{ - display: flex; - justify-content: center; - margin-bottom: 16px; -} - -.schedule-results-header-icon-title{ - margin-left: 8px; - font-size: 16px; - line-height: 22px; - font-weight: 500; -} - -.hide{ - visibility: hidden; -} - -.top-space{ - margin-top: 16px; -} - -.button:active{ - opacity: 25%; -} \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html deleted file mode 100644 index c947329..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html +++ /dev/null @@ -1,99 +0,0 @@ - - diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css deleted file mode 100644 index 815bbd5..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css +++ /dev/null @@ -1,27 +0,0 @@ -.container{ - background-color: white; - margin: 10px 0; - padding: 13px 16px 0 16px; -} -.title{ - - font-size: 18px; - line-height: 21px; - font-weight: 500; - color: rgb(0,0,0); - margin-bottom: 13px; -} - -.mobile-worker-content{ - padding-top: 16px; - font-size: 16px; - line-height: 22px; -} - -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px; -} - - diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html deleted file mode 100644 index 45e4bcc..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html +++ /dev/null @@ -1,23 +0,0 @@ - \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css deleted file mode 100644 index eb0518d..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css +++ /dev/null @@ -1,198 +0,0 @@ -.headline{ - color: rgb(0, 0, 0); - font-size: 28px; - letter-spacing: 0.36px; - margin-bottom: 24px; - font-family: var(--lwc-fontFamily); -} -.divHeadline{ - color: rgb(106, 106, 106); - font-size: 14px; - letter-spacing: 0.1px; - font-family: var(--lwc-fontFamily); - -} -.headlineDate{ - font-size: 16px; - font-weight: 400; - line-height: 22px; - color: #000000; - flex: none; - order: 1; - flex-grow: 0; -} -.divInfo{ - margin: 16px; - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; -} -h2{ - color: rgb(0, 0, 0); - font-size: 16px; -} - -p{ - color: rgb(106, 106, 106); - font-size: 14px; - letter-spacing: 0.18px; -} -.backButton{ - margin-bottom: 7px; - margin-left: 0px; - font-size: 16px; -} -.confirmBtnLayout { - position: fixed; - left: 1%; - bottom: 0%; - width: 100%; - background-color: rgb(250, 246, 246); - padding-top: 5px; - padding-left: 5px; - padding-right: 10px; -} -.confirmBtn { - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 50px; - font-size: 16px; - border-radius: 12px; - background-color: #0D7FA8; - font-weight: 500; -} -.calendarView { - position: -webkit-sticky; - position: sticky; - top: 0; - background-color: white; - z-index: 100; - padding: 0 16px; -} -.acceptNewAptTitle{ - font-weight: 500; - font-size: 18px; - line-height: 21px; - display: flex; - align-items: center; - text-align: center; - flex-direction: column; -} -.acceptNewAptClose{ - --lwc-colorTextIconDefault: #0D7FA8; - margin-top: 2px; - --sds-c-icon-color-foreground-default: #0D7FA8; -} -.modal { - position: fixed; - top: auto; - bottom: 0px; - left: 0px; -} -.WorkTypeName { - height: 19px; - color: rgb(0, 0, 0); - font-size: 16px; - font-weight: normal; - letter-spacing: 0.21px; -} -.spinnerHolder{ - position: relative; - display: inline-block; - width: 80px; - height: 80px; - text-align: center; -} -.slds-spinner { - position: fixed; -} -.slds-spinner_container { - position: fixed; -} - -svg[class*="slds-button__icon_left"]{ - padding-bottom: 2px !important; -} - -.modal-footer{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding: 0 16px 16px 16px; - gap: 16px; - height: 80px; - border-radius: 0px; - flex: none; - order: 3; - align-self: stretch; - flex-grow: 0; -} -.secondary-info{ - font-weight: 400; - font-size: 16px; - line-height: 22px; - color: #444444; - flex: none; - order: 2; - flex-grow: 0; - margin-top: 8px; -} -.modal-title-container{ - border-bottom: 1px solid rgba(159, 170, 181, 0.5); - box-sizing: border-box; - display: flex; - flex-direction: row; - justify-content: space-between; - align-items: center; - padding: 0px; - isolation: isolate; - height: 48px; - padding: 16px; -} -.head-line-work-type-name{ - font-weight: 500; - font-size: 18px; - line-height: 21px; - color: #000000; - flex: none; - order: 0; - flex-grow: 0; - margin-bottom: 8px; -} - -.info{ - font-size: 16px; - line-height: 22px; - color: rgba(68, 68, 68, 1); - border: 1px solid rgba(159, 170, 181, 0.5); - border-radius: 12px; - padding: 16px; - margin: 16px; -} - -.info-emph{ - font-size: 16px; - line-height: 22px; - font-weight: 500; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.info-date{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: rgba(0, 0, 0, 1); -} - -.appointment-number{ - font-size: 16px; - line-height: 22px; - font-weight: 400; - margin-bottom: 4px; - color: #444444; -} \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html deleted file mode 100644 index 5def2da..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html +++ /dev/null @@ -1,46 +0,0 @@ - \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html deleted file mode 100644 index 3d79243..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html +++ /dev/null @@ -1,16 +0,0 @@ - \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css deleted file mode 100644 index 3ebbb29..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css +++ /dev/null @@ -1,113 +0,0 @@ -.header{ - color: rgb(0, 0, 0); - font-size: 16px; - font-weight: 500; - letter-spacing: -0.38px; - margin-top: 24px; - margin-bottom: 8px; -} -.timeslotButton{ - width: 100%; - left: 50%; - -ms-transform: translate(-50%,0%); - transform: translate(-50%,0%); - height: 48px; - font-size: 16px; - border-radius: 12px; - border-color: #0D7FA8; - font-weight: 500; - color: #0D7FA8; - line-height: 22px; - display: flex; - align-items: center; - text-align: center; - margin: 8px 0; -} - -.timeslotButton:active{ - opacity: 25%; -} -.timeslotButton:hover{ - opacity: 25%; -} -.timeslotButton:focus{ - opacity: 25%; -} - -.time-slot-btn-wrapper{ - box-sizing: border-box; - display: flex; - flex-direction: column; - align-items: center; - padding-top: 8px; - gap: 16px; -} -.noSlotLabel{ - height: 18px; - color: #706e6b; - font-size: 15px; - font-weight: normal; - letter-spacing: -0.36px; -} -.headerBold{ - color: rgb(0, 0, 0); - font-size: 16px; - font-weight: 700; - letter-spacing: -0.38px; -} -.slots-container{ - background-color: white; - padding: 0 16px 16px 16px; -} -.page-title{ - color: rgb(0, 0, 0); - font-size: 18px; - font-weight: 500; - letter-spacing: -0.38px; - margin-top: 10px; - margin-bottom: 4px; - padding-top: 10px; - padding-bottom: 10px; -} - -.separator{ - height: 1px; - background-color: rgba(159, 170, 181, 0.5); - margin: 0 -16px; -} - -.section{ - background-color: rgba(238, 238, 238, 1); - height: 10px; - margin: 16px -16px 0 -16px; -} - -.active-slot{ - opacity: 25%; -} - -.grey-action-icon{ - margin-bottom: 16px; - --sds-c-icon-color-background: #EEEEEE; -} - -.empty-slots-container{ - background-color: white; - display: flex; - flex-direction: column; - align-items: center; - padding: 40px 16px; - margin-top: 10px; -} - -.empty-slos-title{ - font-size: 16px; - line-height: 22px; - font-weight: 500; -} -.empty-slos-body{ - font-size: 16px; - line-height: 22px; - margin-top: 16px; - text-align: center; -} \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html deleted file mode 100644 index 5cbbe44..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html +++ /dev/null @@ -1,67 +0,0 @@ - \ No newline at end of file diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants b/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants deleted file mode 100644 index 8eff7f5..0000000 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants +++ /dev/null @@ -1,8 +0,0 @@ -const toastVariables = { - error: "error", - warning: "warning", - success: "success", - info: "info" -} - -export {toastVariables}; \ No newline at end of file diff --git a/RescheduleAppointments/package.json b/RescheduleAppointments/package.json deleted file mode 100644 index 060c432..0000000 --- a/RescheduleAppointments/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "npm run lint:lwc && npm run lint:aura", - "lint:aura": "eslint **/aura/**", - "lint:lwc": "eslint **/lwc/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" - }, - "devDependencies": { - "@prettier/plugin-xml": "^0.12.0", - "@salesforce/eslint-config-lwc": "^0.11.0", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/sfdx-lwc-jest": "^0.10.4", - "eslint": "^7.24.0", - "eslint-config-prettier": "^6.11.0", - "husky": "^4.2.1", - "lint-staged": "^10.0.7", - "prettier": "^2.0.5", - "prettier-plugin-apex": "^1.6.0" - }, - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura|lwc}/**": [ - "eslint" - ] - } -} diff --git a/ServiceDocumentSamples/.husky/pre-commit b/ServiceDocumentSamples/.husky/pre-commit deleted file mode 100755 index feac116..0000000 --- a/ServiceDocumentSamples/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -npm run precommit \ No newline at end of file diff --git a/ServiceDocumentSamples/.prettierignore b/ServiceDocumentSamples/.prettierignore deleted file mode 100755 index 1575a31..0000000 --- a/ServiceDocumentSamples/.prettierignore +++ /dev/null @@ -1,14 +0,0 @@ -# List files or directories below to ignore them when running prettier -# More information: https://prettier.io/docs/en/ignore.html -# - -**/staticresources/** -.localdevserver -.sfdx -.vscode - -# Ignore apex cls and apex trigger files: -**/*.cls -**/*.trigger - -coverage/ \ No newline at end of file diff --git a/ServiceDocumentSamples/.prettierrc b/ServiceDocumentSamples/.prettierrc deleted file mode 100755 index 15683b6..0000000 --- a/ServiceDocumentSamples/.prettierrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "trailingComma": "none", - "overrides": [ - { - "files": "**/lwc/**/*.html", - "options": { "parser": "lwc" } - }, - { - "files": "*.{cmp,page,component}", - "options": { "parser": "html" } - } - ] -} diff --git a/ServiceDocumentSamples/.vscode/extensions.json b/ServiceDocumentSamples/.vscode/extensions.json deleted file mode 100644 index 7e6cb10..0000000 --- a/ServiceDocumentSamples/.vscode/extensions.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "recommendations": [ - "salesforce.salesforcedx-vscode", - "redhat.vscode-xml", - "dbaeumer.vscode-eslint", - "esbenp.prettier-vscode", - "financialforce.lana" - ] -} diff --git a/ServiceDocumentSamples/.vscode/launch.json b/ServiceDocumentSamples/.vscode/launch.json deleted file mode 100644 index e07e391..0000000 --- a/ServiceDocumentSamples/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Apex Replay Debugger", - "type": "apex-replay", - "request": "launch", - "logFile": "${command:AskForLogFileName}", - "stopOnEntry": true, - "trace": true - } - ] -} diff --git a/ServiceDocumentSamples/.vscode/settings.json b/ServiceDocumentSamples/.vscode/settings.json deleted file mode 100644 index 76decfb..0000000 --- a/ServiceDocumentSamples/.vscode/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "search.exclude": { - "**/node_modules": true, - "**/bower_components": true, - "**/.sfdx": true - } -} diff --git a/ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json b/ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json deleted file mode 100644 index 226a5a2..0000000 --- a/ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "plugins": ["@salesforce/eslint-plugin-aura"], - "extends": ["plugin:@salesforce/eslint-plugin-aura/recommended"], - "rules": { - "vars-on-top": "off", - "no-unused-expressions": "off" - } -} diff --git a/ServiceDocumentSamples/package.json b/ServiceDocumentSamples/package.json deleted file mode 100644 index 5dc4928..0000000 --- a/ServiceDocumentSamples/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "eslint **/lwc/**", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", - "precommit": "lint-staged" - }, - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.1.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "husky": "^7.0.4", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.8.0" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "**/{aura,lwc}/**": [ - "eslint" - ] - } -} diff --git a/ServiceDocumentSamples/yarn.lock b/ServiceDocumentSamples/yarn.lock deleted file mode 100644 index da1e521..0000000 --- a/ServiceDocumentSamples/yarn.lock +++ /dev/null @@ -1,4510 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== - dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.21.4", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.9": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.21.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.5.tgz#6e23f2acbcb77ad283c5ed141f824fd9f70101c7" - integrity sha512-Cwc2XjUrG4ilcfOw4wBAK+enbdgwAcAJCfGUItPBKR7Mjw4aEfAFYrLxeRp4jWgtNIKn3n2AlBOfwwafl+42/g== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.5" - "@babel/parser" "^7.23.5" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/core@~7.21.0": - version "7.21.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.8.tgz#2a8c7f0f53d60100ba4c32470ba0281c92aa9aa4" - integrity sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.21.4" - "@babel/generator" "^7.21.5" - "@babel/helper-compilation-targets" "^7.21.5" - "@babel/helper-module-transforms" "^7.21.5" - "@babel/helpers" "^7.21.5" - "@babel/parser" "^7.21.8" - "@babel/template" "^7.20.7" - "@babel/traverse" "^7.21.5" - "@babel/types" "^7.21.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.0" - -"@babel/core@~7.22.8": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.20.tgz#e3d0eed84c049e2a2ae0a64d27b6a37edec385b7" - integrity sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.22.15" - "@babel/helper-compilation-targets" "^7.22.15" - "@babel/helper-module-transforms" "^7.22.20" - "@babel/helpers" "^7.22.15" - "@babel/parser" "^7.22.16" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.22.20" - "@babel/types" "^7.22.19" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/eslint-parser@~7.22.7": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" - integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== - dependencies: - "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" - eslint-visitor-keys "^2.1.0" - semver "^6.3.1" - -"@babel/generator@^7.21.5", "@babel/generator@^7.22.15", "@babel/generator@^7.23.5", "@babel/generator@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.5.tgz#17d0a1ea6b62f351d281350a5f80b87a810c4755" - integrity sha512-BPssCHrBD+0YrxviOa3QzpqwhNIXKEtOa2jQrm4FlmkC2apYgRnQcmPWiGZDlGxiNtltnUFolMe8497Esry+jA== - dependencies: - "@babel/types" "^7.23.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-annotate-as-pure@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" - integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.21.5", "@babel/helper-compilation-targets@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" - integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.15" - browserslist "^4.21.9" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.5.tgz#2a8792357008ae9ce8c0f2b78b9f646ac96b314b" - integrity sha512-QELlRWxSpgdwdJzSJn4WAhKC+hvw/AtHbbrIoncKHkhKKR/luAlKkgBDcri1EzWAo8f8VvYVryEHN4tax/V67A== - dependencies: - "@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.22.20" - "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - semver "^6.3.1" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" - integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== - dependencies: - "@babel/types" "^7.23.0" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-imports@~7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== - dependencies: - "@babel/types" "^7.18.6" - -"@babel/helper-module-transforms@^7.21.5", "@babel/helper-module-transforms@^7.22.20", "@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@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-optimise-call-expression@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" - integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-replace-supers@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" - integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-member-expression-to-functions" "^7.22.15" - "@babel/helper-optimise-call-expression" "^7.22.5" - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" - integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.22.15": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.21.5", "@babel/helpers@^7.22.15", "@babel/helpers@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.5.tgz#52f522840df8f1a848d06ea6a79b79eefa72401e" - integrity sha512-oO7us8FzTEsG3U6ag9MfdF1iA/7Z6dz+MtFhifZk8C8o453rGJFFWUP1t+ULM9TUIAzC9uxXEiXjOiVMyd7QPg== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.5" - "@babel/types" "^7.23.5" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.5.tgz#37dee97c4752af148e1d38c34b856b2507660563" - integrity sha512-hOOqoiNXrmGdFbhgCzu6GiURxUgM27Xwd/aPuu8RfHEZPBzL1Z54okAHAQjXfcQNwvrlkAmAp4SlRTZ45vlthQ== - -"@babel/plugin-proposal-class-properties@~7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - -"@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== - dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-object-rest-spread@~7.20.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" - integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== - dependencies: - "@babel/compat-data" "^7.20.5" - "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.7" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-decorators@^7.21.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" - integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-modules-commonjs@^7.21.2", "@babel/plugin-transform-modules-commonjs@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" - integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== - dependencies: - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - -"@babel/plugin-transform-parameters@^7.20.7": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" - integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-typescript@^7.23.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.5.tgz#83da13ef62a1ebddf2872487527094b31c9adb84" - integrity sha512-2fMkXEJkrmwgu2Bsv1Saxgj30IXZdJ+84lQcKKI7sm719oXs0BBw2ZENKdJdR1PjWndgLCEBNXJOri0fk7RYQA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.23.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-typescript" "^7.23.3" - -"@babel/preset-typescript@^7.21.0": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" - integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-validator-option" "^7.22.15" - "@babel/plugin-syntax-jsx" "^7.23.3" - "@babel/plugin-transform-modules-commonjs" "^7.23.3" - "@babel/plugin-transform-typescript" "^7.23.3" - -"@babel/template@^7.20.7", "@babel/template@^7.22.15", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.21.5", "@babel/traverse@^7.22.20", "@babel/traverse@^7.23.5", "@babel/traverse@^7.7.2": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.5.tgz#f546bf9aba9ef2b042c0e00d245990c15508e7ec" - integrity sha512-czx7Xy5a6sapWWRx61m1Ke1Ra4vczu1mCTtJam5zRTBOonfdJ+S/B6HYmGYu3fJtr8GGET3si6IhgWVBhJ/m8w== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.5" - "@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.5" - "@babel/types" "^7.23.5" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.7", "@babel/types@^7.21.5", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.5", "@babel/types@^7.3.3": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.5.tgz#48d730a00c95109fa4393352705954d74fb5b602" - integrity sha512-ON5kSOJwVO6xXVRTvOI0eOnWe7VdUcIpsovGo9U/Br4Ie4UVFQTboO2cYnDhAGU6Fp+UxSiT+pMft0SMHfuq6w== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== - dependencies: - eslint-visitor-keys "^3.3.0" - -"@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - 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" - -"@eslint/js@8.55.0": - version "8.55.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" - integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== - -"@hapi/hoek@^9.0.0": - version "9.3.0" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" - integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== - -"@hapi/topo@^5.0.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" - integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== - dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== - -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.5.1.tgz#260fe7239602fe5130a94f1aa386eff54b014bba" - integrity sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - -"@jest/core@^27.4.7", "@jest/core@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626" - integrity sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/reporters" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.8.1" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^27.5.1" - jest-config "^27.5.1" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-resolve-dependencies "^27.5.1" - jest-runner "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - jest-watcher "^27.5.1" - micromatch "^4.0.4" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74" - integrity sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA== - dependencies: - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - -"@jest/fake-timers@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74" - integrity sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ== - dependencies: - "@jest/types" "^27.5.1" - "@sinonjs/fake-timers" "^8.0.1" - "@types/node" "*" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -"@jest/globals@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b" - integrity sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/types" "^27.5.1" - expect "^27.5.1" - -"@jest/reporters@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04" - integrity sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.2" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-haste-map "^27.5.1" - jest-resolve "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - slash "^3.0.0" - source-map "^0.6.0" - string-length "^4.0.1" - terminal-link "^2.0.0" - v8-to-istanbul "^8.1.0" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf" - integrity sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.2.9" - source-map "^0.6.0" - -"@jest/test-result@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb" - integrity sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag== - dependencies: - "@jest/console" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b" - integrity sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ== - dependencies: - "@jest/test-result" "^27.5.1" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-runtime "^27.5.1" - -"@jest/transform@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409" - integrity sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw== - dependencies: - "@babel/core" "^7.1.0" - "@jest/types" "^27.5.1" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-regex-util "^27.5.1" - jest-util "^27.5.1" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - source-map "^0.6.1" - write-file-atomic "^3.0.0" - -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== - dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" - -"@jridgewell/resolve-uri@^3.1.0": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== - dependencies: - "@jridgewell/resolve-uri" "^3.1.0" - "@jridgewell/sourcemap-codec" "^1.4.14" - -"@lwc/babel-plugin-component@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/babel-plugin-component/-/babel-plugin-component-2.42.0.tgz#f3c9f83baf0ebf1ae2d71246512a3af46f2e114a" - integrity sha512-JqMM7vxKCUypgxnjxizfSFmm1hPRw8blFIyY1sxiBSrwXhZXTHxtstLRCZkATRsG4dAjj4wQ7SrNRhd7oQXD9Q== - dependencies: - "@babel/helper-module-imports" "~7.18.6" - "@lwc/errors" "2.42.0" - "@lwc/shared" "2.42.0" - line-column "~1.0.2" - -"@lwc/compiler@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/compiler/-/compiler-2.42.0.tgz#f6402f333f3a169dd740f443844a8722c27d5d08" - integrity sha512-0NJFUAFVp4I/TI4GHvSwS86tyv7GuduxHLVsZ0Q42rAdvJmbMBvD8jIlCflhHLgzT0ePSD6pkoq9aKjks03RnQ== - dependencies: - "@babel/core" "~7.21.0" - "@babel/plugin-proposal-class-properties" "~7.18.6" - "@babel/plugin-proposal-object-rest-spread" "~7.20.2" - "@lwc/babel-plugin-component" "2.42.0" - "@lwc/errors" "2.42.0" - "@lwc/shared" "2.42.0" - "@lwc/style-compiler" "2.42.0" - "@lwc/template-compiler" "2.42.0" - -"@lwc/engine-dom@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/engine-dom/-/engine-dom-2.42.0.tgz#91baf6c41cdd55d5a9eccf699317795f7e909ac9" - integrity sha512-yLo+C8MsLfDPrpAiHN8ktdVi2we2z1fryfXNYu9TMIaXwro/Bdw8PMzpIz5Q0E19KruGaAmixAzaLxymhwj2gQ== - -"@lwc/errors@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/errors/-/errors-2.42.0.tgz#91179812ff50d566334a1ae65e0c580d85febb42" - integrity sha512-byCYjSXoV8B3s9d+rPwpQwGZ2y4u6Gh+QJkDT6ZGgcXhBCWeQLPp87rnZdhTau3Da0P7319G+ivOp57smbk/Eg== - -"@lwc/eslint-plugin-lwc@^1.1.2": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.7.0.tgz#2d440800dede6fe12acb3f486dce95e34dd55b9d" - integrity sha512-nmyoIFAbUFR5lUEvmHdEqgIqbHquUHjiLBKmrGzocFOu8PKI4jMgZdjI53Wrcn2ddLwBUwLZyEdkcvms3ni00A== - dependencies: - globals "^13.23.0" - minimatch "^9.0.3" - -"@lwc/jest-preset@11.8.0": - version "11.8.0" - resolved "https://registry.yarnpkg.com/@lwc/jest-preset/-/jest-preset-11.8.0.tgz#aaec8b4c4d6a250ed97d8d07978b8e3cdc014138" - integrity sha512-BHb246V3LGm8q1HPYKFEZIgHwgFi8X5lN2R0FZavfyt1lnGhSa4ilS/zpLAgTHhyTOUhXkR4BKTDauCGLl4brw== - dependencies: - "@lwc/jest-resolver" "11.8.0" - "@lwc/jest-serializer" "11.8.0" - "@lwc/jest-transformer" "11.8.0" - -"@lwc/jest-resolver@11.8.0": - version "11.8.0" - resolved "https://registry.yarnpkg.com/@lwc/jest-resolver/-/jest-resolver-11.8.0.tgz#ea17888f1f55a7975d4c1b035cd07173395c3bed" - integrity sha512-mN5tXW1jko671GUE/yZP/xbZ1ECpnZo40dLMzFctIUF9kOmMjRMv/xdsBTtBnI59W2WKMYDs8G7pywdMFBeZvw== - dependencies: - "@lwc/jest-shared" "11.8.0" - -"@lwc/jest-serializer@11.8.0": - version "11.8.0" - resolved "https://registry.yarnpkg.com/@lwc/jest-serializer/-/jest-serializer-11.8.0.tgz#eb520f6e1d4a1a6296af9101b745183387faa7cf" - integrity sha512-bjIywlnvTkfEvBNKOrb/DHMvTw/V78ZSgNwry2eCHcDFI93adj6HkAx+Qq214uprnT/lZUtxosJBTcc/DkjrpA== - dependencies: - pretty-format "^29.5.0" - -"@lwc/jest-shared@11.8.0": - version "11.8.0" - resolved "https://registry.yarnpkg.com/@lwc/jest-shared/-/jest-shared-11.8.0.tgz#dde7b80cca2eb1360a11d735e3da4c98ac036420" - integrity sha512-g4xgbD5+NC75omjZ6YZZ/tJhhrBnFEj2Lx/oY/yLtKUDXRX//PiWmGGcdlUbM5X8T8Bx9VR1wFttlB2Ta26VPQ== - -"@lwc/jest-transformer@11.8.0": - version "11.8.0" - resolved "https://registry.yarnpkg.com/@lwc/jest-transformer/-/jest-transformer-11.8.0.tgz#adcac2c8b1daac9058407e4d33734fe72c8df32e" - integrity sha512-qEyQnw95I7NtFugoTbIRlxN7jXiKCsrEo6ZvMOtyVAAJeKjbv02j+2XCSp15e8usnH5UFNY7DKm2wTxMfr991A== - dependencies: - "@babel/core" "^7.21.3" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-decorators" "^7.21.0" - "@babel/plugin-transform-modules-commonjs" "^7.21.2" - "@babel/preset-typescript" "^7.21.0" - "@lwc/jest-shared" "11.8.0" - babel-preset-jest "^29.5.0" - -"@lwc/module-resolver@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/module-resolver/-/module-resolver-2.42.0.tgz#a52189eb6060dd781eccaeb795ffa53f7e33cf3e" - integrity sha512-pwtgFNm/sNIS7daRnLCNLY4CqO/B31/ZwsqQd3Hs5eaH9iSFrGnoUm4sTVFyLljVAy7CXKdakwkvcj3JKjsO+w== - dependencies: - resolve "~1.22.1" - -"@lwc/shared@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/shared/-/shared-2.42.0.tgz#6ddbaaf6fee1c1bd812723b1101eb08b6e328535" - integrity sha512-YSI9VObp3fJ5yyg6vE4tDRB8dqKRT5ZYmKL03lzQh6+NMcjqv+EyW48Q2pPcv2ghsg0mJHvHBl7+hFGe5Z03OQ== - -"@lwc/style-compiler@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/style-compiler/-/style-compiler-2.42.0.tgz#0ac36abed925cafd7763c384aa351a9af60b6477" - integrity sha512-8p9YKqiNqK9XlblLgHYigRfNFsohmKYl400w/t5uewaMlLx/DoPlxcUmeEhGtibqkGEK7uqnuvLZDsO99Tuylw== - dependencies: - "@lwc/shared" "2.42.0" - postcss "~8.4.20" - postcss-selector-parser "~6.0.11" - postcss-value-parser "~4.2.0" - string.prototype.matchall "^4.0.8" - -"@lwc/synthetic-shadow@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/synthetic-shadow/-/synthetic-shadow-2.42.0.tgz#53332140e75dea1cc2cc20f6c4a9ab0c193de465" - integrity sha512-UgtQqoyoIH8qi2Tv05PuX3FGRjeASyBb8Ylqmn4qed7nCOeek5uUbWh2sX2Ck/lK73qVqk4jiH8xsK9MIrQvoQ== - -"@lwc/template-compiler@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/template-compiler/-/template-compiler-2.42.0.tgz#23a2915b57e1407ce48c3d27605dc79fdbb0717d" - integrity sha512-IMmm50fJUVG4kiX8gVptT6V/amtGMIi1dbcCU7rixjoBxd/F20lhZN3yHSPiWGFmoBWri16cFd+5hu3YYPRJdw== - dependencies: - "@lwc/errors" "2.42.0" - "@lwc/shared" "2.42.0" - acorn "~8.8.2" - astring "~1.8.3" - estree-walker "~2.0.2" - he "~1.2.0" - parse5 "~6.0.1" - -"@lwc/wire-service@2.42.0": - version "2.42.0" - resolved "https://registry.yarnpkg.com/@lwc/wire-service/-/wire-service-2.42.0.tgz#78dfe3612e7e49dcaf9f747008a9d400fefd3093" - integrity sha512-ZUY+8tYRxSYP5Murcb9tHZYXfMas4gNGfnt50Z/FxMX2kEC8Snp6sPyUTV1k4q+zTNu0zJ+WYHVpMgB+QfUc+w== - -"@mdn/browser-compat-data@^5.2.34", "@mdn/browser-compat-data@^5.3.13": - version "5.4.4" - resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-5.4.4.tgz#df1332e50063499a98ff3772c5b2fdadab65d2c0" - integrity sha512-ykYCVBr3CjyKHiXefqyl3SuSpoib/5ViBZ2kjD18xbZFJpnSSJZg1deq+lirYN0vheKhj7BU+29qjAusfZalOA== - -"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": - version "5.1.1-v1" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" - integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== - dependencies: - eslint-scope "5.1.1" - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@prettier/plugin-xml@^2.0.1": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz#2bc2ae667aa817369fdb939aa7d36ea88105483d" - integrity sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew== - dependencies: - "@xml-tools/parser" "^1.0.11" - prettier ">=2.4.0" - -"@salesforce/eslint-config-lwc@^3.2.3": - version "3.5.2" - resolved "https://registry.yarnpkg.com/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.5.2.tgz#45ae1596a35395cfec7c49736b9c52f8b9aa2b82" - integrity sha512-TqD5pF/OwjNNrms5nn9f6bf630T7WzXuH0RYF1ybsFOYsGQ2vFxD/F5fUNAjdQgLTR0hXK303j8yIw2fwTiOIQ== - dependencies: - "@babel/core" "~7.22.8" - "@babel/eslint-parser" "~7.22.7" - eslint-restricted-globals "~0.2.0" - semver "^7.5.3" - -"@salesforce/eslint-plugin-aura@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz#11c65d6190ecfffbc27e06b2d686026784c0b5c5" - integrity sha512-7HfwSBKTHQZQboLoEhkBY7bYR9wTaT+G5jHXGlq8y31hEnNhJXRZ+RERDEwDm1jYa2SV9lE8nMNr0/8EKIGjlQ== - dependencies: - eslint-plugin-compat "^4.0.2" - -"@salesforce/eslint-plugin-lightning@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz#9ecf80527d83394960ef3c358c790cdfde44f578" - integrity sha512-zk0PKXAcHKHepAG2EOSWlkOTxQM0Aw1CT6+MUxJcM42fCDwH/yPPpGkG3CWtRfmVViODGOwU9ywU2wlkAYcvUQ== - -"@salesforce/sfdx-lwc-jest@^1.1.0": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.4.1.tgz#0dbe131e54dcbe3c37818eff57d9ad4364d43ae7" - integrity sha512-BYKt4FxBJfKkWUKvSC2Yxb+mnIcP+6URbawsX8aeo1pKRnz6TDusiNZE8bR+8ZRWwnmeUC0fzKlZEi3xIqzMRg== - dependencies: - "@lwc/compiler" "2.42.0" - "@lwc/engine-dom" "2.42.0" - "@lwc/jest-preset" "11.8.0" - "@lwc/jest-resolver" "11.8.0" - "@lwc/jest-serializer" "11.8.0" - "@lwc/jest-transformer" "11.8.0" - "@lwc/module-resolver" "2.42.0" - "@lwc/synthetic-shadow" "2.42.0" - "@lwc/wire-service" "2.42.0" - "@salesforce/wire-service-jest-util" "4.0.1" - chalk "^4.1.2" - fast-glob "^3.2.12" - jest "27.4.7" - yargs "~17.6.2" - -"@salesforce/wire-service-jest-util@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.1.tgz#776d2a8b5dee9a63803e46cde7d511f32ada85ae" - integrity sha512-6u3ZGXDCeRnKSX8WHRpVQAXmGiee6NkhmQb0gXmcPAm8zW/Q7o7lRJNvXKnxnXY7qyiKXVYDQAFKJjtGpaCfjw== - -"@sideway/address@^4.1.3": - version "4.1.4" - resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" - integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== - dependencies: - "@hapi/hoek" "^9.0.0" - -"@sideway/formula@^3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" - integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== - -"@sideway/pinpoint@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" - integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== - -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^8.0.1": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7" - integrity sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg== - dependencies: - "@sinonjs/commons" "^1.7.0" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== - -"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== - dependencies: - "@babel/types" "^7.20.7" - -"@types/graceful-fs@^4.1.2": - version "4.1.9" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/json-schema@^7.0.9": - version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" - integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== - -"@types/json5@^0.0.29": - version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== - -"@types/node@*": - version "20.10.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.3.tgz#4900adcc7fc189d5af5bb41da8f543cea6962030" - integrity sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg== - dependencies: - undici-types "~5.26.4" - -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - -"@types/semver@^7.3.12": - version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== - -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^16.0.0": - version "16.0.9" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.9.tgz#ba506215e45f7707e6cbcaf386981155b7ab956e" - integrity sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA== - dependencies: - "@types/yargs-parser" "*" - -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== - -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== - dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@^5.10.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== - dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" - -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== - -"@xml-tools/parser@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@xml-tools/parser/-/parser-1.0.11.tgz#a118a14099ea5c3c537e4781fad2fc195b57f8ff" - integrity sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA== - dependencies: - chevrotain "7.1.1" - -abab@^2.0.3, abab@^2.0.5: - version "2.0.6" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" - integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== - -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== - dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.2.4, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -acorn@~8.8.2: - version "8.8.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" - integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== - -agent-base@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - 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" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -anymatch@^3.0.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" - integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== - dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" - -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" - -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== - dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" - -ast-metadata-inferer@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz#0f94c3425e310d8da45823ab2161142e3f134343" - integrity sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA== - dependencies: - "@mdn/browser-compat-data" "^5.2.34" - -astring@~1.8.3: - version "1.8.6" - resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" - integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axios@^1.0.0, axios@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.5.1.tgz#a1bf8d61928edfefd21da27eb86a695bfd691444" - integrity sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg== - dependencies: - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz#9be98ecf28c331eb9f5df9c72d6f89deb8181c2e" - integrity sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.0.0" - "@types/babel__traverse" "^7.0.6" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz#91f10f58034cb7989cb4f962b69fa6eef6a6bc81" - integrity sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag== - dependencies: - babel-plugin-jest-hoist "^27.5.1" - babel-preset-current-node-syntax "^1.0.0" - -babel-preset-jest@^29.5.0: - version "29.6.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserslist@^4.21.10, browserslist@^4.21.9: - version "4.22.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== - dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001524, caniuse-lite@^1.0.30001565: - version "1.0.30001566" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001566.tgz#61a8e17caf3752e3e426d4239c549ebbb37fef0d" - integrity sha512-ggIhCsTxmITBAMmK8yZjEhCO5/47jKXPu6Dha/wuCS4JePVL+3uiDEBuhu2aIoT+bqTOR8L76Ip1ARL9xYsEJA== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -chevrotain@7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-7.1.1.tgz#5122814eafd1585a9601f9180a7be9c42d5699c6" - integrity sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw== - dependencies: - regexp-to-ast "0.5.0" - -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -cliui@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" - integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.1" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" - integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== - -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssom@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" - integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== - -cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" - integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== - dependencies: - cssom "~0.3.6" - -data-urls@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" - integrity sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ== - dependencies: - abab "^2.0.3" - whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -debug@^3.2.7: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -decimal.js@^10.2.1: - version "10.4.3" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" - integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -diff-sequences@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327" - integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== - dependencies: - esutils "^2.0.2" - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -domexception@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" - integrity sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg== - dependencies: - webidl-conversions "^5.0.0" - -electron-to-chromium@^1.4.601: - version "1.4.606" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.606.tgz#d9f83f7d06a253ccdd99475dccbbd38d4758ba2f" - integrity sha512-Zdv0XuhfyWZUsQ5Uq59d43ZmZOdoGZNWjeN4WCxxlQaP8crAWdnWcTxfHKcaJl6PW2SWpHx6DsxSx7v6KcGCuw== - -emittery@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" - integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" - is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" - object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== - dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" - -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== - dependencies: - hasown "^2.0.0" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" - integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== - dependencies: - esprima "^4.0.1" - estraverse "^5.2.0" - esutils "^2.0.2" - optionalDependencies: - source-map "~0.6.1" - -eslint-import-resolver-node@^0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" - integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== - dependencies: - debug "^3.2.7" - is-core-module "^2.13.0" - resolve "^1.22.4" - -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== - dependencies: - debug "^3.2.7" - -eslint-plugin-compat@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz#eeaf80daa1afe495c88a47e9281295acae45c0aa" - integrity sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w== - dependencies: - "@mdn/browser-compat-data" "^5.3.13" - ast-metadata-inferer "^0.8.0" - browserslist "^4.21.10" - caniuse-lite "^1.0.30001524" - find-up "^5.0.0" - lodash.memoize "^4.1.2" - semver "^7.5.4" - -eslint-plugin-import@^2.25.4: - version "2.29.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" - integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== - 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.14.2" - -eslint-plugin-jest@^26.1.2: - version "26.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz#7931c31000b1c19e57dbfb71bbf71b817d1bf949" - integrity sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-restricted-globals@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz#7729f326af97bec7a7e56d9f7d9c064b79285c50" - integrity sha512-kwYJALm5KS2QW3Mc1PgObO4V+pTR6RQtRT65L1GQILlEnAhabUQqGAX7/qUjoQR4KZJKehWpBtyDEiDecwmY9A== - -eslint-scope@5.1.1, eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint@^8.11.0: - version "8.55.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" - integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.55.0" - "@humanwhocodes/config-array" "^0.11.13" - "@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" - 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" - 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" - 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.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@~2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-27.5.1.tgz#83ce59f1e5bdf5f9d2b94b61d2050db48f3fef74" - integrity sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw== - dependencies: - "@jest/types" "^27.5.1" - jest-get-type "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.12, fast-glob@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fastq@^1.6.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== - dependencies: - reusify "^1.0.4" - -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== - -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== - -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - dependencies: - is-callable "^1.1.3" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - functions-have-names "^1.2.3" - -functions-have-names@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" - integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" - -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0, globals@^13.23.0: - version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" - integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== - dependencies: - type-fest "^0.20.2" - -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== - dependencies: - define-properties "^1.1.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" - -graceful-fs@^4.2.9: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== - dependencies: - get-intrinsic "^1.2.2" - -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== - -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== - dependencies: - has-symbols "^1.0.2" - -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -he@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -html-encoding-sniffer@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3" - integrity sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ== - dependencies: - whatwg-encoding "^1.0.5" - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== - dependencies: - agent-base "6" - debug "4" - -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== - -husky@^7.0.4: - version "7.0.4" - resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" - integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -ignore@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== - -import-fresh@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== - dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" - -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== - dependencies: - has-bigints "^1.0.1" - -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: - version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" - integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - -is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" - -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== - dependencies: - has-tostringtag "^1.0.0" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-negative-zero@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== - -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== - dependencies: - has-tostringtag "^1.0.0" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== - -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== - dependencies: - call-bind "^1.0.2" - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== - dependencies: - has-tostringtag "^1.0.0" - -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== - dependencies: - has-symbols "^1.0.2" - -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - -is-typedarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== - dependencies: - call-bind "^1.0.2" - -isarray@1.0.0, isarray@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isarray@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - -jest-changed-files@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" - integrity sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw== - dependencies: - "@jest/types" "^27.5.1" - execa "^5.0.0" - throat "^6.0.1" - -jest-circus@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc" - integrity sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - throat "^6.0.1" - -jest-cli@^27.4.7: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145" - integrity sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw== - dependencies: - "@jest/core" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - prompts "^2.0.1" - yargs "^16.2.0" - -jest-config@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41" - integrity sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA== - dependencies: - "@babel/core" "^7.8.0" - "@jest/test-sequencer" "^27.5.1" - "@jest/types" "^27.5.1" - babel-jest "^27.5.1" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.1" - graceful-fs "^4.2.9" - jest-circus "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-get-type "^27.5.1" - jest-jasmine2 "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runner "^27.5.1" - jest-util "^27.5.1" - jest-validate "^27.5.1" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^27.5.1" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def" - integrity sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw== - dependencies: - chalk "^4.0.0" - diff-sequences "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-docblock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0" - integrity sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ== - dependencies: - detect-newline "^3.0.0" - -jest-docblock@^29.0.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e" - integrity sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - jest-get-type "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - -jest-environment-jsdom@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546" - integrity sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - jsdom "^16.6.0" - -jest-environment-node@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.5.1.tgz#dedc2cfe52fab6b8f5714b4808aefa85357a365e" - integrity sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - jest-mock "^27.5.1" - jest-util "^27.5.1" - -jest-get-type@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1" - integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw== - -jest-haste-map@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f" - integrity sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng== - dependencies: - "@jest/types" "^27.5.1" - "@types/graceful-fs" "^4.1.2" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^27.5.1" - jest-serializer "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - micromatch "^4.0.4" - walker "^1.0.7" - optionalDependencies: - fsevents "^2.3.2" - -jest-jasmine2@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4" - integrity sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - expect "^27.5.1" - is-generator-fn "^2.0.0" - jest-each "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-runtime "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - pretty-format "^27.5.1" - throat "^6.0.1" - -jest-leak-detector@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz#6ec9d54c3579dd6e3e66d70e3498adf80fde3fb8" - integrity sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ== - dependencies: - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-matcher-utils@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab" - integrity sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw== - dependencies: - chalk "^4.0.0" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - pretty-format "^27.5.1" - -jest-message-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf" - integrity sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^27.5.1" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^27.5.1" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95" - integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg== - -jest-resolve-dependencies@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8" - integrity sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg== - dependencies: - "@jest/types" "^27.5.1" - jest-regex-util "^27.5.1" - jest-snapshot "^27.5.1" - -jest-resolve@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384" - integrity sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw== - dependencies: - "@jest/types" "^27.5.1" - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-pnp-resolver "^1.2.2" - jest-util "^27.5.1" - jest-validate "^27.5.1" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5" - integrity sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ== - dependencies: - "@jest/console" "^27.5.1" - "@jest/environment" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.8.1" - graceful-fs "^4.2.9" - jest-docblock "^27.5.1" - jest-environment-jsdom "^27.5.1" - jest-environment-node "^27.5.1" - jest-haste-map "^27.5.1" - jest-leak-detector "^27.5.1" - jest-message-util "^27.5.1" - jest-resolve "^27.5.1" - jest-runtime "^27.5.1" - jest-util "^27.5.1" - jest-worker "^27.5.1" - source-map-support "^0.5.6" - throat "^6.0.1" - -jest-runtime@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af" - integrity sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A== - dependencies: - "@jest/environment" "^27.5.1" - "@jest/fake-timers" "^27.5.1" - "@jest/globals" "^27.5.1" - "@jest/source-map" "^27.5.1" - "@jest/test-result" "^27.5.1" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^27.5.1" - jest-message-util "^27.5.1" - jest-mock "^27.5.1" - jest-regex-util "^27.5.1" - jest-resolve "^27.5.1" - jest-snapshot "^27.5.1" - jest-util "^27.5.1" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-serializer@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - -jest-snapshot@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.5.1.tgz#b668d50d23d38054a51b42c4039cab59ae6eb6a1" - integrity sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA== - dependencies: - "@babel/core" "^7.7.2" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.0.0" - "@jest/transform" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/babel__traverse" "^7.0.4" - "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^27.5.1" - graceful-fs "^4.2.9" - jest-diff "^27.5.1" - jest-get-type "^27.5.1" - jest-haste-map "^27.5.1" - jest-matcher-utils "^27.5.1" - jest-message-util "^27.5.1" - jest-util "^27.5.1" - natural-compare "^1.4.0" - pretty-format "^27.5.1" - semver "^7.3.2" - -jest-util@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9" - integrity sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067" - integrity sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ== - dependencies: - "@jest/types" "^27.5.1" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^27.5.1" - leven "^3.1.0" - pretty-format "^27.5.1" - -jest-watcher@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2" - integrity sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw== - dependencies: - "@jest/test-result" "^27.5.1" - "@jest/types" "^27.5.1" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - jest-util "^27.5.1" - string-length "^4.0.1" - -jest-worker@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0" - integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg== - dependencies: - "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@27.4.7: - version "27.4.7" - resolved "https://registry.yarnpkg.com/jest/-/jest-27.4.7.tgz#87f74b9026a1592f2da05b4d258e57505f28eca4" - integrity sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg== - dependencies: - "@jest/core" "^27.4.7" - import-local "^3.0.2" - jest-cli "^27.4.7" - -joi@^17.11.0: - version "17.11.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" - integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== - dependencies: - "@hapi/hoek" "^9.0.0" - "@hapi/topo" "^5.0.0" - "@sideway/address" "^4.1.3" - "@sideway/formula" "^3.0.1" - "@sideway/pinpoint" "^2.0.0" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsdom@^16.6.0: - version "16.7.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" - integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== - dependencies: - 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" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -json5@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" - integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== - dependencies: - minimist "^1.2.0" - -json5@^2.2.2, json5@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -line-column@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" - integrity sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww== - dependencies: - isarray "^1.0.0" - isobject "^2.0.0" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@^4.17.21, lodash@^4.7.0: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" - integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nanoid@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" - integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -nwsapi@^2.2.0: - version "2.2.7" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== - -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== - dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -parse5@6.0.1, parse5@~6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -postcss-selector-parser@~6.0.11: - version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" - integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@~8.4.20: - version "8.4.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" - integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== - dependencies: - nanoid "^3.3.7" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -prettier-plugin-apex@^1.8.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-apex/-/prettier-plugin-apex-1.13.0.tgz#c71a47637803e282c988a534e5e1f4dd93df649c" - integrity sha512-QeGHrNOR6EXoH0Mto385FDrRC+XSCc/8zvtqNvhEaFovEMC7InDp2Mn5WxjJzQUdgtUYoXL+NYcSm3nxMqsymQ== - dependencies: - axios "^1.0.0" - jest-docblock "^29.0.0" - wait-on "^7.0.0" - yargs "^17.0.0" - -prettier@>=2.4.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e" - integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw== - -prettier@^2.6.0: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== - -pretty-format@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" - integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ== - dependencies: - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^17.0.1" - -pretty-format@^29.5.0: - version "29.7.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -psl@^1.1.33: - version "1.9.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" - integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== - -punycode@^2.1.0, punycode@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-is@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" - integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -regexp-to-ast@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" - integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== - -regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== - -resolve@^1.20.0, resolve@^1.22.4, resolve@~1.22.1: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rxjs@^7.8.1: - version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== - dependencies: - tslib "^2.1.0" - -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - isarray "^2.0.5" - -safe-regex-test@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" - -"safer-buffer@>= 2.1.2 < 3": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -saxes@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" - integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== - dependencies: - xmlchars "^2.2.0" - -semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.2, semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== - dependencies: - define-data-property "^1.0.1" - functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.2, signal-exit@^3.0.3: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@^0.5.6: - version "0.5.21" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.7.3: - version "0.7.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" - integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string.prototype.matchall@^4.0.8: - version "4.0.10" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" - integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" - internal-slot "^1.0.5" - regexp.prototype.flags "^1.5.0" - set-function-name "^2.0.0" - side-channel "^1.0.4" - -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" - integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -throat@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.2.tgz#51a3fbb5e11ae72e2cf74861ed5c8020f89f29fe" - integrity sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ== - -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tough-cookie@^4.0.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== - dependencies: - psl "^1.1.33" - punycode "^2.1.1" - universalify "^0.2.0" - url-parse "^1.5.3" - -tr46@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" - integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== - dependencies: - punycode "^2.1.1" - -tsconfig-paths@^3.14.2: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== - dependencies: - "@types/json5" "^0.0.29" - json5 "^1.0.2" - minimist "^1.2.6" - strip-bom "^3.0.0" - -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== - dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" - -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" - for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" - -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== - dependencies: - call-bind "^1.0.2" - for-each "^0.3.3" - is-typed-array "^1.1.9" - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== - dependencies: - call-bind "^1.0.2" - has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" - -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - -universalify@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" - integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== - -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@^1.5.3: - version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -v8-to-istanbul@^8.1.0: - version "8.1.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed" - integrity sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" - source-map "^0.7.3" - -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz#3e7104a05b75146cc60f564380b7f683acf1020a" - integrity sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA== - dependencies: - xml-name-validator "^3.0.0" - -wait-on@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.2.0.tgz#d76b20ed3fc1e2bebc051fae5c1ff93be7892928" - integrity sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ== - dependencies: - axios "^1.6.1" - joi "^17.11.0" - lodash "^4.17.21" - minimist "^1.2.8" - rxjs "^7.8.1" - -walker@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -webidl-conversions@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" - integrity sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA== - -webidl-conversions@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" - integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== - -whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^8.0.0, whatwg-url@^8.5.0: - version "8.7.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" - integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== - dependencies: - lodash "^4.7.0" - tr46 "^2.1.0" - webidl-conversions "^6.1.0" - -which-boxed-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^7.4.6: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - -yargs@^16.2.0: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.0.0: - version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" - integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yargs@~17.6.2: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== - dependencies: - cliui "^8.0.1" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.1.1" - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== diff --git a/UploadAndAnnotateImages/.husky/pre-commit b/UploadAndAnnotateImages/.husky/pre-commit deleted file mode 100755 index 6d45adc..0000000 --- a/UploadAndAnnotateImages/.husky/pre-commit +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - -cd ./UploadAndAnnotateImages && npm run precommit \ No newline at end of file diff --git a/UploadAndAnnotateImages/.prettierignore b/UploadAndAnnotateImages/.prettierignore deleted file mode 100755 index f3720b2..0000000 --- a/UploadAndAnnotateImages/.prettierignore +++ /dev/null @@ -1,10 +0,0 @@ -# List files or directories below to ignore them when running prettier -# More information: https://prettier.io/docs/en/ignore.html -# - -**/staticresources/** -.localdevserver -.sfdx -.vscode - -coverage/ \ No newline at end of file diff --git a/UploadAndAnnotateImages/.prettierrc b/UploadAndAnnotateImages/.prettierrc deleted file mode 100755 index 15683b6..0000000 --- a/UploadAndAnnotateImages/.prettierrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "trailingComma": "none", - "overrides": [ - { - "files": "**/lwc/**/*.html", - "options": { "parser": "lwc" } - }, - { - "files": "*.{cmp,page,component}", - "options": { "parser": "html" } - } - ] -} diff --git a/UploadAndAnnotateImages/force-app/main/default/aura/.eslintrc.json b/UploadAndAnnotateImages/force-app/main/default/aura/.eslintrc.json deleted file mode 100644 index 226a5a2..0000000 --- a/UploadAndAnnotateImages/force-app/main/default/aura/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "plugins": ["@salesforce/eslint-plugin-aura"], - "extends": ["plugin:@salesforce/eslint-plugin-aura/recommended"], - "rules": { - "vars-on-top": "off", - "no-unused-expressions": "off" - } -} diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/jsconfig.json b/UploadAndAnnotateImages/force-app/main/default/lwc/jsconfig.json deleted file mode 100644 index f6c5c8d..0000000 --- a/UploadAndAnnotateImages/force-app/main/default/lwc/jsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "compilerOptions": { - "experimentalDecorators": true - }, - "include": ["**/*", "../../../../.sfdx/typings/lwc/**/*.d.ts"], - "paths": { - "c/*": ["*"] - }, - "typeAcquisition": { - "include": ["jest"] - } -} diff --git a/UploadAndAnnotateImages/package-lock.json b/UploadAndAnnotateImages/package-lock.json deleted file mode 100644 index e817772..0000000 --- a/UploadAndAnnotateImages/package-lock.json +++ /dev/null @@ -1,7843 +0,0 @@ -{ - "name": "salesforce-app", - "version": "1.0.0", - "lockfileVersion": 1, - "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" - } - }, - "@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==", - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", - "dev": true - }, - "@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" - }, - "dependencies": { - "@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", - "dev": true - }, - "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "dev": true, - "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - }, - "@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" - } - }, - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@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==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz", - "integrity": "sha512-46QrX2CQlaFRF4TkwfTt6nJD7IHq8539cCL7SDpqWSDeJKY1xylKKY5F/33mJhLZ3mFvKv2gGrVS6NkyF6qs+Q==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-member-expression-to-functions": "^7.21.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.20.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "dependencies": { - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.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-member-expression-to-functions": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz", - "integrity": "sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==", - "dev": true, - "requires": { - "@babel/types": "^7.21.0" - }, - "dependencies": { - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.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==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz", - "integrity": "sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.20.7", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.7", - "@babel/types": "^7.20.7" - }, - "dependencies": { - "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.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==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==" - }, - "@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==" - }, - "@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/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", - "dev": true - }, - "@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" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", - "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.7" - }, - "dependencies": { - "@babel/compat-data": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.4.tgz", - "integrity": "sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g==", - "dev": true - }, - "@babel/helper-compilation-targets": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.21.4.tgz", - "integrity": "sha512-Fa0tTuOXZ1iL8IeDFUWCzjZcn+sJGd9RZdH9esYVjEejGmzf+FFYQpMi/kZUk2kPy/q1H3/GPw7np8qar/stfg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.21.4", - "@babel/helper-validator-option": "^7.21.0", - "browserslist": "^4.21.3", - "lru-cache": "^5.1.1", - "semver": "^6.3.0" - } - }, - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "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" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-decorators": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz", - "integrity": "sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.21.4.tgz", - "integrity": "sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@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" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.21.4.tgz", - "integrity": "sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz", - "integrity": "sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.21.2", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-simple-access": "^7.20.2" - }, - "dependencies": { - "@babel/generator": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.4.tgz", - "integrity": "sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA==", - "requires": { - "@babel/types": "^7.21.4", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - } - }, - "@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "requires": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" - } - }, - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==" - }, - "@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" - } - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.21.3.tgz", - "integrity": "sha512-Wxc+TvppQG9xWFYatvCGPvZ6+SIUxQ2ZdiBP+PHYMIjnPXD+uThCshaz4NZOnODAtBjjcVQQ/3OKs9LW28purQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.21.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.21.3.tgz", - "integrity": "sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.21.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-typescript": "^7.20.0" - } - }, - "@babel/preset-typescript": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.21.4.tgz", - "integrity": "sha512-sMLNWY37TCdRH/bJ6ZeeOH1nPuanED7Ai9Y/vH31IPqalioJ6ZNFUWONsakhv4r4n+I6gm5lmoE0olkgib/j/A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.21.0", - "@babel/plugin-syntax-jsx": "^7.21.4", - "@babel/plugin-transform-modules-commonjs": "^7.21.2", - "@babel/plugin-transform-typescript": "^7.21.3" - }, - "dependencies": { - "@babel/helper-validator-option": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", - "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.23.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", - "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", - "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", - "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/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.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 - }, - "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.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" - }, - "dependencies": { - "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" - } - }, - "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "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": { - "brace-expansion": "^1.1.7" - } - }, - "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 - } - } - }, - "@hapi/hoek": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", - "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true - }, - "@hapi/topo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", - "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - }, - "dependencies": { - "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" - } - }, - "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": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "@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 - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@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": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "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" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.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 - } - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", - "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "@jest/core": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", - "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/reporters": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^27.5.1", - "jest-config": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-resolve-dependencies": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "jest-watcher": "^27.5.1", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "@jest/environment": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", - "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1" - } - }, - "@jest/fake-timers": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", - "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "@jest/globals": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", - "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/types": "^27.5.1", - "expect": "^27.5.1" - } - }, - "@jest/reporters": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", - "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-haste-map": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "@jest/schemas": { - "version": "29.4.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.4.3.tgz", - "integrity": "sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.25.16" - } - }, - "@jest/source-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", - "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", - "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", - "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-runtime": "^27.5.1" - } - }, - "@jest/transform": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", - "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.5.1", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-util": "^27.5.1", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "@jest/types": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", - "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "@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" - } - }, - "@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==" - }, - "@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==" - }, - "@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==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@lwc/babel-plugin-component": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/babel-plugin-component/-/babel-plugin-component-2.31.0.tgz", - "integrity": "sha512-Zx1w0eNhV2O9dP42PEg0PmhAfjA3V2L/gYbc9oBlfC12nAZIXsFOLqqnhECA2clHiJxFNSiCIf77gVtN7cRGcg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "~7.18.6", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "line-column": "~1.0.2" - } - }, - "@lwc/compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/compiler/-/compiler-2.31.0.tgz", - "integrity": "sha512-8Xseow7Ww0lsHeVMNm9795BRDx+pDzlFPtojCzbTwHY+sVRNf92qnnD+EgnYzZ+77YkksuuNgPoTZBYPufJFZQ==", - "dev": true, - "requires": { - "@babel/core": "~7.20.2", - "@babel/plugin-proposal-class-properties": "~7.18.6", - "@babel/plugin-proposal-object-rest-spread": "~7.20.2", - "@lwc/babel-plugin-component": "2.31.0", - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "@lwc/style-compiler": "2.31.0", - "@lwc/template-compiler": "2.31.0" - } - }, - "@lwc/engine-dom": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/engine-dom/-/engine-dom-2.31.0.tgz", - "integrity": "sha512-0J7MSIdjp7C2ufClAtEm937gNKld94+p49yMHSzfVLVEW5aZfGp3ThEvACgsEGmQKQMBwqOByaYGhcYXSRiSUw==", - "dev": true - }, - "@lwc/errors": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/errors/-/errors-2.31.0.tgz", - "integrity": "sha512-3sjby4FsYz1mUVlaAtS2hqISxy9SoDe2POZE2weZvAhkvFXG3ijRi8Sc9uGeta2akv/Df14tpRk+hesHdYoXYQ==", - "dev": true - }, - "@lwc/eslint-plugin-lwc": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.5.0.tgz", - "integrity": "sha512-LiJujIbI87Eoe+iszTXEDxudhGCLsHeNArjb9kqxKotcggqYllVwtBCS2yswyhJ39uSH4BCkeSiXmSrMcs7Jow==", - "dev": true, - "requires": { - "minimatch": "^5.1.0" - } - }, - "@lwc/jest-preset": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-preset/-/jest-preset-11.5.4.tgz", - "integrity": "sha512-Ei4rp+v7Uz5U2VtncFUN3g58SZ4/Q5z7JpaYy8jjD6Pc/J+K0rqtNpJpuZ0DI3CXvtpFZdKGtt5O8ANjIMSrrg==", - "dev": true, - "requires": { - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4" - } - }, - "@lwc/jest-resolver": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-resolver/-/jest-resolver-11.5.4.tgz", - "integrity": "sha512-I1s+Fb05jmX+l6GeigBDwwzUoxVO1qBZMQNdu6miCNdnVJ15SZxy6T61pYBY1AkiJrVVl72tkFjHblMMNpNBoA==", - "dev": true - }, - "@lwc/jest-serializer": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-serializer/-/jest-serializer-11.5.4.tgz", - "integrity": "sha512-hivUuejZKRVEPxHFnG5O4Hz/do581u0uWLCvKxh9HT06WMeiW+grCnrzWnrjFvLv5GcFfZchj0bGAj6UFuOObA==", - "dev": true, - "requires": { - "pretty-format": "^29.3.1" - } - }, - "@lwc/jest-transformer": { - "version": "11.5.4", - "resolved": "https://registry.npmjs.org/@lwc/jest-transformer/-/jest-transformer-11.5.4.tgz", - "integrity": "sha512-L+zK3nxiduESeMurXLlO5LeXcnpzp6qXsXk9gaz9Tdvt9x07Hp728XNeg0SutSdNmRK+8vKCZHupFQTgEEOPIg==", - "dev": true, - "requires": { - "@babel/core": "^7.20.5", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-decorators": "^7.19.0", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/preset-typescript": "^7.18.6", - "babel-preset-jest": "^29.2.0" - } - }, - "@lwc/module-resolver": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/module-resolver/-/module-resolver-2.31.0.tgz", - "integrity": "sha512-SmjGeTuii85RaUERLsS56DrY4MFWUcLVjmInjRU46TmAXMnPfCsk8fxQ5J1iE0Cf7+1/2sjlO0U9VxBQpSNqkA==", - "dev": true, - "requires": { - "resolve": "~1.22.1" - } - }, - "@lwc/shared": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/shared/-/shared-2.31.0.tgz", - "integrity": "sha512-tf+/I5ErSrQAVPK8BZAfmOaX0Xp54MbrADCTqeGaKOM/CkVf5mECipZ4DaBIJaFw+YgSpEABeM1FuWAeodeoLg==", - "dev": true - }, - "@lwc/style-compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/style-compiler/-/style-compiler-2.31.0.tgz", - "integrity": "sha512-MKsKhfmSU45Xxq5ImJTGCJdqIQi8jx5PuU/xmwZffqCjscQgG4gDXxG2YAh8fGMbZSyrIjN/WTQlr7OvUzZrBA==", - "dev": true, - "requires": { - "@lwc/shared": "2.31.0", - "postcss": "~8.4.18", - "postcss-selector-parser": "~6.0.9", - "postcss-value-parser": "~4.2.0", - "string.prototype.matchall": "^4.0.8" - } - }, - "@lwc/synthetic-shadow": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/synthetic-shadow/-/synthetic-shadow-2.31.0.tgz", - "integrity": "sha512-K9A8DcmSkZIF7l2sGs53h/oTl/Vdoa6XCYIudHwxVormxUhvHhd9TPbEyJBBKJ8augFZAoVs1q5yS4Nr+R9CBg==", - "dev": true - }, - "@lwc/template-compiler": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/template-compiler/-/template-compiler-2.31.0.tgz", - "integrity": "sha512-4RsASVNmOJ7cNEQOjxYaUWB3cFNAm0KtDWpD54XbhVZ7SBCUBKZ2BZvcRsP6mp7O4a8QOFQiCeCtoDAT/TQ4aA==", - "dev": true, - "requires": { - "@lwc/errors": "2.31.0", - "@lwc/shared": "2.31.0", - "acorn": "~8.8.1", - "astring": "~1.8.3", - "estree-walker": "~2.0.2", - "he": "~1.2.0", - "parse5": "~6.0.1" - } - }, - "@lwc/wire-service": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/@lwc/wire-service/-/wire-service-2.31.0.tgz", - "integrity": "sha512-go6mhdqLpsu/svRm7Oe+ewi1qvrOlaVjngVU6O2V/UXdKpw22csQEdRCs25jC/kCRNtYdARPLIHlItuK+qL0NQ==", - "dev": true - }, - "@mdn/browser-compat-data": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz", - "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==", - "dev": true - }, - "@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": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@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 - }, - "@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": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@prettier/plugin-xml": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", - "integrity": "sha512-UWRmygBsyj4bVXvDiqSccwT1kmsorcwQwaIy30yVh8T+Gspx4OlC0shX1y+ZuwXZvgnafmpRYKks0bAu9urJew==", - "dev": true, - "requires": { - "@xml-tools/parser": "^1.0.11", - "prettier": ">=2.4.0" - } - }, - "@salesforce/eslint-config-lwc": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.3.3.tgz", - "integrity": "sha512-AZyBta7Y9N2IcJ4LbmIXSQzUoPoZ2cvoi75mqS+9QgUJfB7Il/vRj6NlflSOG14gkA4dmxoT7R6siGj2AYQ+PQ==", - "dev": true, - "requires": { - "@babel/core": "~7.18.5", - "@babel/eslint-parser": "~7.18.2", - "eslint-restricted-globals": "~0.2.0", - "semver": "^7.3.7" - }, - "dependencies": { - "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "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/eslint-parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.9.tgz", - "integrity": "sha512-KzSGpMBggz4fKbRbWLNyPVTuQr6cmCcBhOyXTw/fieOVaw5oYAwcAj4a7UKcDYCPxQq+CG1NCDZH9e2JTXquiQ==", - "dev": true, - "requires": { - "eslint-scope": "^5.1.1", - "eslint-visitor-keys": "^2.1.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 - } - } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@salesforce/eslint-plugin-aura": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz", - "integrity": "sha512-7HfwSBKTHQZQboLoEhkBY7bYR9wTaT+G5jHXGlq8y31hEnNhJXRZ+RERDEwDm1jYa2SV9lE8nMNr0/8EKIGjlQ==", - "dev": true, - "requires": { - "eslint-plugin-compat": "^4.0.2" - } - }, - "@salesforce/eslint-plugin-lightning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz", - "integrity": "sha512-zk0PKXAcHKHepAG2EOSWlkOTxQM0Aw1CT6+MUxJcM42fCDwH/yPPpGkG3CWtRfmVViODGOwU9ywU2wlkAYcvUQ==", - "dev": true - }, - "@salesforce/sfdx-lwc-jest": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-1.3.0.tgz", - "integrity": "sha512-DT6AjFLldoWqeI1MdcStVhLj3p+XndUrHdPVwUo+CdiBmnTqNSPBDY/snDZJwZZK61M88mKz2xDzNj7xug3i8g==", - "dev": true, - "requires": { - "@lwc/compiler": "2.31.0", - "@lwc/engine-dom": "2.31.0", - "@lwc/jest-preset": "11.5.4", - "@lwc/jest-resolver": "11.5.4", - "@lwc/jest-serializer": "11.5.4", - "@lwc/jest-transformer": "11.5.4", - "@lwc/module-resolver": "2.31.0", - "@lwc/synthetic-shadow": "2.31.0", - "@lwc/wire-service": "2.31.0", - "@salesforce/wire-service-jest-util": "4.0.1", - "chalk": "^4.1.2", - "fast-glob": "^3.2.12", - "jest": "27.4.7", - "yargs": "~17.6.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==", - "dev": true, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "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.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" - } - }, - "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" - } - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - } - } - }, - "@salesforce/wire-service-jest-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.0.1.tgz", - "integrity": "sha512-6u3ZGXDCeRnKSX8WHRpVQAXmGiee6NkhmQb0gXmcPAm8zW/Q7o7lRJNvXKnxnXY7qyiKXVYDQAFKJjtGpaCfjw==", - "dev": true - }, - "@sideway/address": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", - "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0" - } - }, - "@sideway/formula": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", - "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true - }, - "@sideway/pinpoint": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", - "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true - }, - "@sinclair/typebox": { - "version": "0.25.24", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.25.24.tgz", - "integrity": "sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", - "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@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 - }, - "@types/babel__core": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.0.tgz", - "integrity": "sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - }, - "dependencies": { - "@babel/parser": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.4.tgz", - "integrity": "sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==", - "dev": true - }, - "@babel/types": { - "version": "7.21.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.4.tgz", - "integrity": "sha512-rU2oY501qDxE8Pyo7i/Orqma4ziCOrby0/9mvbDUGEfvZjb279Nk9k19e2fiCxHbRRpY2ZyrgW1eq22mvmOIzA==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - } - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.3.tgz", - "integrity": "sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/graceful-fs": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz", - "integrity": "sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "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==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/node": { - "version": "18.15.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.15.11.tgz", - "integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==", - "dev": true - }, - "@types/prettier": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.2.tgz", - "integrity": "sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==", - "dev": true - }, - "@types/semver": { - "version": "7.3.13", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.5", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.5.tgz", - "integrity": "sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@typescript-eslint/scope-manager": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.43.0.tgz", - "integrity": "sha512-XNWnGaqAtTJsUiZaoiGIrdJYHsUOd3BZ3Qj5zKp9w6km6HsrjPk/TGZv0qMTWyWj0+1QOqpHQ2gZOLXaGA9Ekw==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.43.0", - "@typescript-eslint/visitor-keys": "5.43.0" - } - }, - "@typescript-eslint/types": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.43.0.tgz", - "integrity": "sha512-jpsbcD0x6AUvV7tyOlyvon0aUsQpF8W+7TpJntfCUWU1qaIKu2K34pMwQKSzQH8ORgUrGYY6pVIh1Pi8TNeteg==", - "dev": true - }, - "@typescript-eslint/typescript-estree": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.43.0.tgz", - "integrity": "sha512-BZ1WVe+QQ+igWal2tDbNg1j2HWUkAa+CVqdU79L4HP9izQY6CNhXfkNwd1SS4+sSZAP/EthI1uiCSY/+H0pROg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.43.0", - "@typescript-eslint/visitor-keys": "5.43.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/utils": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.43.0.tgz", - "integrity": "sha512-8nVpA6yX0sCjf7v/NDfeaOlyaIIqL7OaIGOWSPFqUKK59Gnumd3Wa+2l8oAaYO2lk0sO+SbWFWRSvhu8gLGv4A==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.43.0", - "@typescript-eslint/types": "5.43.0", - "@typescript-eslint/typescript-estree": "5.43.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^3.0.0", - "semver": "^7.3.7" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@typescript-eslint/visitor-keys": { - "version": "5.43.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.43.0.tgz", - "integrity": "sha512-icl1jNH/d18OVHLfcwdL3bWUKsBeIiKYTGxMJCoGe7xFht+E4QgzOqoWYrU8XSLJWhVw8nTacbm03v23J/hFTg==", - "dev": true, - "requires": { - "@typescript-eslint/types": "5.43.0", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "@xml-tools/parser": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", - "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", - "dev": true, - "requires": { - "chevrotain": "7.1.1" - } - }, - "abab": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", - "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "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==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "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-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": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "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" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "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": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "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.21.3" - } - }, - "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": "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" - } - }, - "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" - } - }, - "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-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "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 - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "ast-metadata-inferer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz", - "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^3.3.14" - }, - "dependencies": { - "@mdn/browser-compat-data": { - "version": "3.3.14", - "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz", - "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==", - "dev": true - } - } - }, - "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 - }, - "astring": { - "version": "1.8.4", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.4.tgz", - "integrity": "sha512-97a+l2LBU3Op3bBQEff79i/E4jMD2ZLFD8rHx9B6mXyB2uQwhJQYfiDqUwtfjF4QA1F2qs//N6Cw8LetMbQjcw==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true - }, - "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", - "dev": true, - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "babel-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", - "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", - "dev": true, - "requires": { - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^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" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", - "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", - "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" - } - }, - "babel-preset-jest": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", - "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.5.1", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz", - "integrity": "sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "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": "29.5.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz", - "integrity": "sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^29.5.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "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 - }, - "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" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "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 - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "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==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "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==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "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 - }, - "chevrotain": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", - "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", - "dev": true, - "requires": { - "regexp-to-ast": "0.5.0" - } - }, - "ci-info": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "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": { - "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": { - "restore-cursor": "^3.1.0" - } - }, - "cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "requires": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "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 - }, - "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.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" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "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 - }, - "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": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "core-js": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.1.tgz", - "integrity": "sha512-21491RRQVzUn0GGM9Z1Jrpr6PNPxPi+Za8OM9q4tksTSnlbXXGKK1nXNg/QvwFYettXvSX6zWKCtHHfjN4puyA==", - "dev": true - }, - "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": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "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 - }, - "cssfontparser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/cssfontparser/-/cssfontparser-1.2.1.tgz", - "integrity": "sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg==", - "dev": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "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" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "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.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 - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true - }, - "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 - }, - "diff-sequences": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", - "dev": true - }, - "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": { - "path-type": "^4.0.0" - } - }, - "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" - } - }, - "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 - } - } - }, - "eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "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": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "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 - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "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" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - } - } - }, - "eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", - "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.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" - } - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "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 - }, - "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": { - "brace-expansion": "^1.1.7" - } - }, - "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-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 - } - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-plugin-compat": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz", - "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==", - "dev": true, - "requires": { - "@mdn/browser-compat-data": "^4.1.5", - "ast-metadata-inferer": "^0.7.0", - "browserslist": "^4.16.8", - "caniuse-lite": "^1.0.30001304", - "core-js": "^3.16.2", - "find-up": "^5.0.0", - "lodash.memoize": "4.1.2", - "semver": "7.3.5" - }, - "dependencies": { - "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" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "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" - } - }, - "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" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "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": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "eslint-plugin-jest": { - "version": "26.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-26.9.0.tgz", - "integrity": "sha512-TWJxWGp1J628gxh2KhaH1H1paEdgE2J61BBF1I59c6xWeL5+D1BzMxGDN/nXAfX+aSkR5u80K+XhskK6Gwq9ng==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "^5.10.0" - } - }, - "eslint-restricted-globals": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz", - "integrity": "sha512-kwYJALm5KS2QW3Mc1PgObO4V+pTR6RQtRT65L1GQILlEnAhabUQqGAX7/qUjoQR4KZJKehWpBtyDEiDecwmY9A==", - "dev": true - }, - "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": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - }, - "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 - }, - "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - } - } - }, - "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 - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "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 - } - } - }, - "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, - "requires": { - "estraverse": "^5.2.0" - }, - "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 - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "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==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "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" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", - "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1" - } - }, - "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.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "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" - }, - "dependencies": { - "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": { - "is-glob": "^4.0.1" - } - } - } - }, - "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": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "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": "^3.0.4" - } - }, - "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==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "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" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "dev": true - }, - "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==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "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 - }, - "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-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "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 - }, - "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 - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "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" - }, - "dependencies": { - "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" - } - }, - "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": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "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" - } - }, - "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 - }, - "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" - } - }, - "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 - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "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-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 - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "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 - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "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 - }, - "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==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "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 - }, - "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" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "husky": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz", - "integrity": "sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==", - "dev": true - }, - "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": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "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": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "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 - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "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==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "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": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "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 - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "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-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true - }, - "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 - }, - "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": { - "is-extglob": "^2.1.1" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "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-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": { - "has-tostringtag": "^1.0.0" - } - }, - "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-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.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" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "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 - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "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": { - "has-symbols": "^1.0.2" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true - }, - "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": { - "call-bind": "^1.0.2" - } - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.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" - } - } - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.4.7", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz", - "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==", - "dev": true, - "requires": { - "@jest/core": "^27.4.7", - "import-local": "^3.0.2", - "jest-cli": "^27.4.7" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "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 - }, - "jest-cli": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", - "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", - "dev": true, - "requires": { - "@jest/core": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "prompts": "^2.0.1", - "yargs": "^16.2.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" - } - }, - "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" - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, - "jest-canvas-mock": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jest-canvas-mock/-/jest-canvas-mock-2.4.0.tgz", - "integrity": "sha512-mmMpZzpmLzn5vepIaHk5HoH3Ka4WykbSoLuG/EKoJd0x0ID/t+INo1l8ByfcUJuDM+RIsL4QDg/gDnBbrj2/IQ==", - "dev": true, - "requires": { - "cssfontparser": "^1.2.1", - "moo-color": "^1.0.2" - } - }, - "jest-changed-files": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", - "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", - "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-config": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", - "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", - "dev": true, - "requires": { - "@babel/core": "^7.8.0", - "@jest/test-sequencer": "^27.5.1", - "@jest/types": "^27.5.1", - "babel-jest": "^27.5.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.9", - "jest-circus": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-jasmine2": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runner": "^27.5.1", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-diff": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", - "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", - "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-environment-jsdom": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", - "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - } - }, - "jest-get-type": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true - }, - "jest-haste-map": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", - "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^27.5.1", - "jest-serializer": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", - "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.5.1", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "pretty-format": "^27.5.1", - "throat": "^6.0.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "requires": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - } - } - }, - "jest-matcher-utils": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", - "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-message-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", - "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.5.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^27.5.1", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-mock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", - "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true - }, - "jest-regex-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", - "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", - "dev": true - }, - "jest-resolve": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", - "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.5.1", - "jest-validate": "^27.5.1", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "jest-resolve-dependencies": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", - "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-snapshot": "^27.5.1" - } - }, - "jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "requires": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "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" - } - } - } - }, - "jest-runtime": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", - "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", - "dev": true, - "requires": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/globals": "^27.5.1", - "@jest/source-map": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-mock": "^27.5.1", - "jest-regex-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-snapshot": "^27.5.1", - "jest-util": "^27.5.1", - "slash": "^3.0.0", - "strip-bom": "^4.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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "jest-serializer": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", - "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.9" - } - }, - "jest-snapshot": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", - "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.5.1", - "graceful-fs": "^4.2.9", - "jest-diff": "^27.5.1", - "jest-get-type": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-matcher-utils": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-util": "^27.5.1", - "natural-compare": "^1.4.0", - "pretty-format": "^27.5.1", - "semver": "^7.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==", - "dev": true, - "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==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "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" - } - } - } - }, - "jest-util": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", - "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "jest-validate": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", - "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", - "dev": true, - "requires": { - "@jest/types": "^27.5.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.5.1", - "leven": "^3.1.0", - "pretty-format": "^27.5.1" - }, - "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" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "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" - } - } - } - }, - "jest-watcher": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", - "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", - "dev": true, - "requires": { - "@jest/test-result": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.5.1", - "string-length": "^4.0.1" - }, - "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" - } - }, - "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": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "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" - } - }, - "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 - }, - "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" - } - } - } - }, - "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" - }, - "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": "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" - } - } - } - }, - "joi": { - "version": "17.11.0", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.11.0.tgz", - "integrity": "sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ==", - "dev": true, - "requires": { - "@hapi/hoek": "^9.0.0", - "@hapi/topo": "^5.0.0", - "@sideway/address": "^4.1.3", - "@sideway/formula": "^3.0.1", - "@sideway/pinpoint": "^2.0.0" - } - }, - "js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "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, - "requires": { - "argparse": "^2.0.1" - } - }, - "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": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "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": { - "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": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "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 - }, - "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==", - "dev": true - }, - "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": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", - "dev": true - }, - "line-column": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/line-column/-/line-column-1.0.2.tgz", - "integrity": "sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww==", - "dev": true, - "requires": { - "isarray": "^1.0.0", - "isobject": "^2.0.0" - } - }, - "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 - }, - "lint-staged": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-12.5.0.tgz", - "integrity": "sha512-BKLUjWDsKquV/JuIcoQW4MSAI3ggwEImF1+sB4zaKvyVx1wBk3FsG7UK9bpnmBTN1pm7EH2BBcMwINJzCRv12g==", - "dev": true, - "requires": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.16", - "commander": "^9.3.0", - "debug": "^4.3.4", - "execa": "^5.1.1", - "lilconfig": "2.0.5", - "listr2": "^4.0.5", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-inspect": "^1.12.2", - "pidtree": "^0.5.0", - "string-argv": "^0.3.1", - "supports-color": "^9.2.2", - "yaml": "^1.10.2" - }, - "dependencies": { - "supports-color": { - "version": "9.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.3.tgz", - "integrity": "sha512-aszYUX/DVK/ed5rFLb/dDinVJrQjG/vmU433wtqVSD800rYsJNWxh2R3USV90aLSU+UsyQkbNeffVLzc6B6foA==", - "dev": true - } - } - }, - "listr2": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-4.0.5.tgz", - "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", - "dev": true, - "requires": { - "cli-truncate": "^2.1.0", - "colorette": "^2.0.16", - "log-update": "^4.0.0", - "p-map": "^4.0.0", - "rfdc": "^1.3.0", - "rxjs": "^7.5.5", - "through": "^2.3.8", - "wrap-ansi": "^7.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" - } - }, - "cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "requires": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - } - }, - "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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.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" - } - } - } - }, - "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" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "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.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 - }, - "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": { - "ansi-escapes": "^4.3.0", - "cli-cursor": "^3.1.0", - "slice-ansi": "^4.0.0", - "wrap-ansi": "^6.2.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" - } - }, - "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 - }, - "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 - }, - "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 - }, - "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": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.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" - } - }, - "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": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "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": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "moo-color": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/moo-color/-/moo-color-1.0.3.tgz", - "integrity": "sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ==", - "dev": true, - "requires": { - "color-name": "^1.1.4" - }, - "dependencies": { - "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 - } - } - }, - "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 - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "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==", - "dev": true - }, - "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 - }, - "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" - } - }, - "nwsapi": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.3.tgz", - "integrity": "sha512-jscxIO4/VKScHlbmFBdV1Z6LXnLO+ZR4VMtypudUdfwtKxUN3TQcNFIHLwKtrUbDyHN4/GycY9+oRGZ2XMXYPw==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "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.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "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" - } - }, - "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==", - "dev": true, - "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==", - "dev": true - }, - "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": { - "callsites": "^3.0.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" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "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 - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "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 - }, - "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-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 - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz", - "integrity": "sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "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": { - "p-try": "^2.0.0" - } - }, - "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==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "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.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "prettier": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", - "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", - "dev": true - }, - "prettier-plugin-apex": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/prettier-plugin-apex/-/prettier-plugin-apex-1.13.0.tgz", - "integrity": "sha512-QeGHrNOR6EXoH0Mto385FDrRC+XSCc/8zvtqNvhEaFovEMC7InDp2Mn5WxjJzQUdgtUYoXL+NYcSm3nxMqsymQ==", - "dev": true, - "requires": { - "axios": "^1.0.0", - "jest-docblock": "^29.0.0", - "wait-on": "^7.0.0", - "yargs": "^17.0.0" - } - }, - "pretty-format": { - "version": "29.5.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.5.0.tgz", - "integrity": "sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==", - "dev": true, - "requires": { - "@jest/schemas": "^29.4.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "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==", - "dev": true - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "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 - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "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 - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "regexp-to-ast": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", - "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", - "dev": true - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "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 - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "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" - }, - "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 - } - } - }, - "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.exports": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", - "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", - "dev": true - }, - "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": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - } - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "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": { - "queue-microtask": "^1.2.2" - } - }, - "rxjs": { - "version": "7.5.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.7.tgz", - "integrity": "sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==", - "dev": true, - "requires": { - "tslib": "^2.1.0" - } - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "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": { - "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==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "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 - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", - "dev": true, - "requires": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "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 - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "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": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "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 - } - } - }, - "string-argv": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz", - "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==", - "dev": true - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, - "requires": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "dependencies": { - "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 - }, - "strip-ansi": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz", - "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==", - "dev": true, - "requires": { - "ansi-regex": "^6.0.1" - } - } - } - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "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": { - "ansi-regex": "^5.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==", - "dev": true - }, - "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 - }, - "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 - }, - "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" - } - }, - "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", - "dev": true, - "requires": { - "has-flag": "^4.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" - } - } - } - }, - "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 - }, - "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 - }, - "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" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "dependencies": { - "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" - } - }, - "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": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "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 - }, - "throat": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", - "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==", - "dev": true - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "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": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" - }, - "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": { - "is-number": "^7.0.0" - } - }, - "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" - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, - "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": { - "prelude-ls": "^1.2.1" - } - }, - "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-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 - }, - "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==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "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, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "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 - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "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": { - "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==", - "dev": true, - "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": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "v8-to-istanbul": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", - "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, - "w3c-hr-time": { - "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==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "wait-on": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", - "dev": true, - "requires": { - "axios": "^1.6.1", - "joi": "^17.11.0", - "lodash": "^4.17.21", - "minimist": "^1.2.8", - "rxjs": "^7.8.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "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" - } - } - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "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 - }, - "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" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "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, - "requires": { - "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" - } - }, - "word-wrap": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.4.tgz", - "integrity": "sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "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" - } - }, - "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 - }, - "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 - }, - "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.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" - } - } - } - }, - "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 - }, - "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" - } - }, - "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true - }, - "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==", - "dev": true - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "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": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "dependencies": { - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.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==", - "dev": true - }, - "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.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" - } - } - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - }, - "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 - } - } -} diff --git a/UploadAndAnnotateImages/package.json b/UploadAndAnnotateImages/package.json deleted file mode 100644 index c67deb0..0000000 --- a/UploadAndAnnotateImages/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "salesforce-app", - "private": true, - "version": "1.0.0", - "description": "Salesforce App", - "scripts": { - "lint": "eslint **/lwc/**", - "test": "npm run test:unit", - "test:unit": "sfdx-lwc-jest", - "test:unit:watch": "sfdx-lwc-jest --watch", - "test:unit:debug": "sfdx-lwc-jest --debug", - "test:unit:coverage": "sfdx-lwc-jest --coverage", - "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,json,md,page,trigger,xml,yaml,yml}\"", - "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,json,md,page,trigger,xml,yaml,yml}\"", - "postinstall": "cd ../ && husky install ./UploadAndAnnotateImages/.husky", - "precommit": "lint-staged", - "prepare": "cd ../ && husky install ./UploadAndAnnotateImages/.husky" - }, - "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", - "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "husky": "^7.0.4", - "jest-canvas-mock": "^2.4.0", - "lint-staged": "^12.3.7", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.13.0" - }, - "lint-staged": { - "**/*.{cls,cmp,component,css,html,json,md,page,trigger,xml,yaml,yml}": [ - "prettier --write" - ], - "!(**/utilsImageCapture/cropper.esm.js)**/lwc/**": [ - "eslint" - ] - }, - "husky": { - "hooks": { - "pre-commit": "yarn lint-staged" - } - } -} diff --git a/lerna.json b/lerna.json new file mode 100644 index 0000000..f6604bd --- /dev/null +++ b/lerna.json @@ -0,0 +1,4 @@ +{ + "$schema": "node_modules/lerna/schemas/lerna-schema.json", + "version": "0.0.0" +} diff --git a/package.json b/package.json index 4c8d7a8..2736b6e 100644 --- a/package.json +++ b/package.json @@ -9,22 +9,24 @@ }, "license": "CC0", "scripts": { - "format": "prettier --check '**/*.{js,ts,json}'", - "format:fix": "prettier --write '**/*.{js,ts,json}'", - "prepare": "husky install" + "lint": "lerna run lint", + "lint:fix": "lerna run lint:fix", + "test": "lerna run test", + "prettier": "lerna run prettier", + "prettier:verify": "lerna run prettier:verify", + "prepare": "husky install", + "precommit": "yarn lint && yarn prettier:verify && yarn test" }, "devDependencies": { - "husky": "^8.0.2", - "lint-staged": "^13.1.0", - "prettier": "^2.8.2" + "husky": "^8.0.3", + "lerna": "^8.0.0" }, "dependencies": {}, "engines": { - "node": ">=16.13.0" + "node": ">=18" }, - "husky": { - "hooks": { - "pre-commit": "yarn lint-staged" - } - } + "workspaces": [ + "projects/*", + "projects/LocalPreview/HelloWorld" + ] } diff --git a/DriverLicenseParser/.eslintignore b/projects/DriverLicenseParser/.eslintignore similarity index 100% rename from DriverLicenseParser/.eslintignore rename to projects/DriverLicenseParser/.eslintignore diff --git a/DriverLicenseParser/.forceignore b/projects/DriverLicenseParser/.forceignore similarity index 100% rename from DriverLicenseParser/.forceignore rename to projects/DriverLicenseParser/.forceignore diff --git a/DriverLicenseParser/.gitignore b/projects/DriverLicenseParser/.gitignore similarity index 100% rename from DriverLicenseParser/.gitignore rename to projects/DriverLicenseParser/.gitignore diff --git a/NameAndSignatureCapture/.prettierignore b/projects/DriverLicenseParser/.prettierignore similarity index 87% rename from NameAndSignatureCapture/.prettierignore rename to projects/DriverLicenseParser/.prettierignore index f3720b2..26253eb 100755 --- a/NameAndSignatureCapture/.prettierignore +++ b/projects/DriverLicenseParser/.prettierignore @@ -7,4 +7,6 @@ .sfdx .vscode -coverage/ \ No newline at end of file +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/DriverLicenseParser/.prettierrc b/projects/DriverLicenseParser/.prettierrc similarity index 78% rename from DriverLicenseParser/.prettierrc rename to projects/DriverLicenseParser/.prettierrc index 15683b6..03da7ba 100755 --- a/DriverLicenseParser/.prettierrc +++ b/projects/DriverLicenseParser/.prettierrc @@ -1,5 +1,6 @@ { "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], "overrides": [ { "files": "**/lwc/**/*.html", diff --git a/DriverLicenseParser/README.md b/projects/DriverLicenseParser/README.md similarity index 100% rename from DriverLicenseParser/README.md rename to projects/DriverLicenseParser/README.md diff --git a/DriverLicenseParser/config/project-scratch-def.json b/projects/DriverLicenseParser/config/project-scratch-def.json similarity index 100% rename from DriverLicenseParser/config/project-scratch-def.json rename to projects/DriverLicenseParser/config/project-scratch-def.json diff --git a/DriverLicenseParser/force-app/main/default/lwc/.eslintrc.json b/projects/DriverLicenseParser/force-app/main/default/lwc/.eslintrc.json similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/.eslintrc.json rename to projects/DriverLicenseParser/force-app/main/default/lwc/.eslintrc.json diff --git a/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js b/projects/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js rename to projects/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js diff --git a/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js-meta.xml b/projects/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js-meta.xml similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js-meta.xml rename to projects/DriverLicenseParser/force-app/main/default/lwc/aamvaParser/aamvaParser.js-meta.xml diff --git a/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.html b/projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.html similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.html rename to projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.html diff --git a/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js b/projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js rename to projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js diff --git a/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js-meta.xml b/projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js-meta.xml similarity index 100% rename from DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js-meta.xml rename to projects/DriverLicenseParser/force-app/main/default/lwc/parserDemo/parserDemo.js-meta.xml diff --git a/DriverLicenseParser/jest.config.js b/projects/DriverLicenseParser/jest.config.js similarity index 100% rename from DriverLicenseParser/jest.config.js rename to projects/DriverLicenseParser/jest.config.js diff --git a/projects/DriverLicenseParser/package.json b/projects/DriverLicenseParser/package.json new file mode 100644 index 0000000..e8846d2 --- /dev/null +++ b/projects/DriverLicenseParser/package.json @@ -0,0 +1,24 @@ +{ + "name": "driver-license-parser", + "private": true, + "version": "1.0.0", + "description": "Driver License Parser", + "scripts": { + "lint": "eslint **/lwc/**", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/DriverLicenseParser/sfdx-project.json b/projects/DriverLicenseParser/sfdx-project.json similarity index 100% rename from DriverLicenseParser/sfdx-project.json rename to projects/DriverLicenseParser/sfdx-project.json diff --git a/FindNearby/.eslintignore b/projects/FindNearby/.eslintignore similarity index 100% rename from FindNearby/.eslintignore rename to projects/FindNearby/.eslintignore diff --git a/FindNearby/.forceignore b/projects/FindNearby/.forceignore similarity index 100% rename from FindNearby/.forceignore rename to projects/FindNearby/.forceignore diff --git a/FindNearby/.gitignore b/projects/FindNearby/.gitignore similarity index 100% rename from FindNearby/.gitignore rename to projects/FindNearby/.gitignore diff --git a/DriverLicenseParser/.prettierignore b/projects/FindNearby/.prettierignore similarity index 87% rename from DriverLicenseParser/.prettierignore rename to projects/FindNearby/.prettierignore index f3720b2..26253eb 100755 --- a/DriverLicenseParser/.prettierignore +++ b/projects/FindNearby/.prettierignore @@ -7,4 +7,6 @@ .sfdx .vscode -coverage/ \ No newline at end of file +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/NameAndSignatureCapture/.prettierrc b/projects/FindNearby/.prettierrc similarity index 78% rename from NameAndSignatureCapture/.prettierrc rename to projects/FindNearby/.prettierrc index 15683b6..03da7ba 100755 --- a/NameAndSignatureCapture/.prettierrc +++ b/projects/FindNearby/.prettierrc @@ -1,5 +1,6 @@ { "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], "overrides": [ { "files": "**/lwc/**/*.html", diff --git a/projects/FindNearby/README.md b/projects/FindNearby/README.md new file mode 100644 index 0000000..fae0c06 --- /dev/null +++ b/projects/FindNearby/README.md @@ -0,0 +1,70 @@ +# Set Up the Find Nearby Lightning Web Component (LWC) + +Help your mobile workers figure out what records are close by. For example, mobile workers can search for service appointments to see where to go next. Or, they can search for a part they need to complete the task. + +**Note:** Find Nearby LWC is an open-source component and is not supported by Salesforce Support. + +## Before You Begin + +We recommend taking the [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components) Trailhead to learn how to: + +- Set up your Salesforce DX environment +- Set up Visual Studio Code +- Make sure your org is updated to the Summer '23 version and higher +- Authorize your org + +## Set Up the LWC + +1. Get the source code: + 1. From [LWC-Mobile-Samples](https://github.com/forcedotcom/LWC-Mobile-Samples), click **Code**. + 2. Clone the code or download the zip file. +2. Configure the LWC: + + 1. Open the FindNearby folder in Visual Studio Code. + 2. Under `force-app/main/default/lwc/mobileMapLayersMain`, open the `config.js` file. + 3. Review the predefined code blocks in the mapObjects array. Each code block represents an object that can be displayed on the map. The map shows one type of object at a time, and you can switch between types. By default, the object type you see when you launch the LWC is the first code block of the mapObjects array. According to the default configuration of the LWC, the displayed object is Service Appointment. + + `value`—The object’s name. + + `latField`—The object’s field that contains the latitude value. + `longField`—The object’s field that contains the longitude value. + `titleField`—The value of the entered field is displayed as the title of the marker’s card and list entry. + `detailField`—The value of the entered field is displayed as the detail of the marker’s card and list entry. + + Example: + ``` + { + value: 'ServiceAppointment', + latField: 'Latitude', + longField: 'Longitude', + titleField: 'AppointmentNumber', + detailField: 'Subject' + } + ``` + According to this code block: the map shows markers for service appointments; the service appointments are located on the map according to their latitude and longitude; the appointment number is the title of the card and the list entry; and the subject is the detail shown in the card and the list entry. + + + 4. Add a code block for every object type you want to see on the map. + * Within a code block, use different fields for `latField`, `longField`, `titleField`, and `detailField`. For example, you can't use the Name field for both `titleField` and `detailField`. + * Separate the code blocks using a comma. + + 5. The distance unit is predefined as kilometers. To change the distance unit to miles, replace km with mi: + + `distanceUnit: 'mi'` + +3. Authorize your org and deploy the code to your org. See [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components). +4. Grant access to the LWC’s users. + 1. From Setup, in the Quick Find box, enter `Users`, and then select **Profiles**. + 2. Open the required profile. + 3. Under Enabled Apex Class Access, click **Edit** and add MobileMapLayersService. + 4. Give the users access to the records you want them to see. +5. Connect the LWC to a global action. See Add Global Actions to the Field Service Mobile App. + 1. For Action Type, select **Lightning Web Components**. + 2. For Lightning Web Component, select **c:mobileMapLayersMain**. +6. To see the map on a mobile device, add the map URL to the org’s trusted URLs. For more information, see [lightning-map](https://developer.salesforce.com/docs/component-library/bundle/lightning-map/documentation). + 1. From Setup, in the Quick Find box, enter `Security` and select **Trusted URLs**. + 2. Click **New Trusted URL**. + 3. Enter an API Name. + 4. For URL, enter `maps.a.forceusercontent.com`. + 5. Select **frame-src (iframe content)**. + 6. Save your changes. diff --git a/projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls new file mode 100644 index 0000000..c3738b3 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls @@ -0,0 +1,172 @@ +public with sharing class MobileMapLayersService { + @AuraEnabled(cacheable=false) + public static List> getAllPicklistOptions( + String obj, + String field + ) { + try { + SObjectType objType = Schema.getGlobalDescribe().get(obj); + Map fields = objType.getDescribe() + .fields.getMap(); + Schema.DescribeFieldResult dfr = fields.get(field).getDescribe(); + + List> picklistOptions = new List>(); + Map temp = new Map(); + + List picklistVals = dfr.getPicklistValues(); + for (Schema.PicklistEntry picklistVal : picklistVals) { + temp = new Map(); + temp.put('value', picklistVal.getValue()); + temp.put('label', picklistVal.getLabel()); + picklistOptions.add(temp); + } + + return picklistOptions; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled(cacheable=false) + public static List executeFilterQuery( + String currentObjectFilter, + Map currentFieldFilter + ) { + try { + List results = new List(); + + String fieldType = currentFieldFilter.get('type'); + String fieldName = currentFieldFilter.get('value'); + String input = currentFieldFilter.get('input'); + + // verify object and fields are valid and accessible + if ( + !isSafeObject(currentObjectFilter) || + !isSafeField(currentObjectFilter, fieldName.toLowerCase()) + ) + return results; + + // sanitize input: cast and escape quotes + input = castToType(input, fieldType); + + if (isLikeNeeded(fieldType)) + input = '%' + input + '%'; + if (isQuotesNeeded(fieldType)) + input = '\'' + input + '\''; + if (fieldType == 'TIME') + input += 'Z'; + String operator = isLikeNeeded(fieldType) ? 'LIKE' : '='; + + String whereClause = buildWhereClause( + fieldType, + fieldName, + operator, + input + ); + List params = new List{ + currentObjectFilter, + whereClause + }; + String filterQuery = String.format( + 'SELECT Id FROM {0} WHERE {1}', + params + ); + + results = Database.Query(filterQuery); + return results; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + private static boolean isQuotesNeeded(String type) { + List types = new List{ + 'DATE', + 'TIME', + 'DATETIME', + 'BOOLEAN', + 'DOUBLE', + 'INTEGER', + 'CURRENCY', + 'PERCENT' + }; + return !types.contains(type); + } + + private static boolean isLikeNeeded(String type) { + List types = new List{ + 'DATE', + 'TIME', + 'DATETIME', + 'BOOLEAN', + 'DOUBLE', + 'INTEGER', + 'CURRENCY', + 'PERCENT', + 'REFERENCE' + }; + return !types.contains(type); + } + + private static String buildWhereClause( + String fieldType, + String field, + String operator, + String input + ) { + if (fieldType != 'DATETIME') + return field + ' ' + operator + ' ' + input; + + // for dateTime fields - search whole day, user don't need to put in the exact time + String startDate = input + 'T00:00:00.000Z'; + String endDate = input + 'T23:59:59.999Z'; + List params = new List{ field, startDate, endDate }; + return String.format('{0} > {1} and {0} < {2}', params); + } + + private static boolean isSafeObject(String objName) { + SObjectType myObj = Schema.getGlobalDescribe().get(objName); + return myObj.getDescribe().isAccessible(); + } + + private static boolean isSafeField(String objName, String fieldName) { + if (isSafeObject(objName)) { + SObjectType myObj = Schema.getGlobalDescribe().get(objName); + SObjectField myField = myObj.getDescribe().fields.getMap().get(fieldName); + return myField.getDescribe().isAccessible(); + } + return false; + } + + private static String castToType(String input, String fieldType) { + try { + switch on fieldType { + when 'TIME' { + Pattern MyPattern = Pattern.compile('\\d\\d:\\d\\d:\\d\\d.\\d\\d\\d'); + Matcher MyMatcher = MyPattern.matcher(input); + if (MyMatcher.matches()) + return input; + else + return ''; + } + when 'DATE', 'DATETIME' { + return String.valueOf(Date.valueOf(input)); + } + when 'BOOLEAN' { + return String.valueOf(Boolean.valueOf(input)); + } + when 'INTEGER' { + return String.valueOf(Integer.valueOf(input)); + } + when 'DOUBLE', 'CURRENCY', 'PERCENT' { + return String.valueOf(Double.valueOf(input)); + } + when else { + return String.escapeSingleQuotes(input); + } + } + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } +} diff --git a/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml similarity index 77% rename from FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml rename to projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml index 40d6793..891916b 100644 --- a/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml +++ b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersService.cls-meta.xml @@ -1,4 +1,4 @@ - + 54.0 Active diff --git a/projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls new file mode 100644 index 0000000..0229a7c --- /dev/null +++ b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls @@ -0,0 +1,52 @@ +@isTest +public with sharing class MobileMapLayersServiceTest { + public static ServiceResource sr; + + static { + sr = new ServiceResource( + RelatedRecordId = System.UserInfo.getUserId(), + Name = 'Resource Name', + LastKnownLatitude = 10.000000000000000, + LastKnownLongitude = 10.000000000000000, + ResourceType = 'T', + IsActive = true + ); + insert sr; + } + + @isTest + static void executeFilterQueryTest() { + try { + Map currentFieldFilter = new Map(); + currentFieldFilter.put('type', 'STRING'); + currentFieldFilter.put('value', 'name'); + currentFieldFilter.put('input', 'Resource Name'); + List result = MobileMapLayersService.executeFilterQuery( + 'ServiceResource', + currentFieldFilter + ); + + Assert.areEqual(result[0].id, sr.Id); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void executeFilterQueryInvalidInputTest() { + try { + Map currentFieldFilter = new Map(); + currentFieldFilter.put('type', 'DOUBLE'); + currentFieldFilter.put('value', 'lastknownlatitude'); + currentFieldFilter.put('input', 'text'); + MobileMapLayersService.executeFilterQuery( + 'ServiceResource', + currentFieldFilter + ); + + Assert.fail('Invalid value, should throw an error'); + } catch (Exception e) { + Assert.isTrue(true); + } + } +} diff --git a/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml similarity index 77% rename from FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml rename to projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml index 4b0bc9f..c47403d 100644 --- a/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml +++ b/projects/FindNearby/force-app/main/default/classes/MobileMapLayersServiceTest.cls-meta.xml @@ -1,4 +1,4 @@ - + 55.0 Active diff --git a/HelloWorld/force-app/main/default/lwc/.eslintrc.json b/projects/FindNearby/force-app/main/default/lwc/.eslintrc.json similarity index 100% rename from HelloWorld/force-app/main/default/lwc/.eslintrc.json rename to projects/FindNearby/force-app/main/default/lwc/.eslintrc.json diff --git a/FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js b/projects/FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js similarity index 54% rename from FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js rename to projects/FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js index 02b867f..0b573aa 100644 --- a/FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js +++ b/projects/FindNearby/force-app/main/default/lwc/confirmModal/__tests__/confirmModal.test.js @@ -1,11 +1,11 @@ -import { createElement } from 'lwc'; -import ConfirmModal from 'c/confirmModal'; +import { createElement } from "lwc"; +import ConfirmModal from "c/confirmModal"; let element; -describe('c-confirm-modal', () => { +describe("c-confirm-modal", () => { beforeEach(() => { - element = createElement('c-confirm-modal', { - is: ConfirmModal, + element = createElement("c-confirm-modal", { + is: ConfirmModal }); element.close = jest.fn(); @@ -18,16 +18,16 @@ describe('c-confirm-modal', () => { } }); - it('calls close with false on cancel', async () => { - const cancelButton = element.shadowRoot.querySelector('.cancel-button'); + it("calls close with false on cancel", async () => { + const cancelButton = element.shadowRoot.querySelector(".cancel-button"); cancelButton.click(); return Promise.resolve().then(() => { expect(element.close).toHaveBeenCalledWith(false); }); }); - it('calls close with true on ok', async () => { - const okButton = element.shadowRoot.querySelector('.ok-button'); + it("calls close with true on ok", async () => { + const okButton = element.shadowRoot.querySelector(".ok-button"); okButton.click(); return Promise.resolve().then(() => { expect(element.close).toHaveBeenCalledWith(true); diff --git a/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css new file mode 100644 index 0000000..781e443 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.css @@ -0,0 +1,25 @@ +.confirm-modal-container { + background: white; + border-radius: 12px; +} + +button { + height: 48px; + width: 140px; + border-radius: 12px; + font-size: 16px; + font-weight: 600; + line-height: 22px; +} + +.ok-button { + border: none; + color: white; + background-color: #0d7fa8; +} + +.cancel-button { + border: 2px solid #0d7fa8; + color: #0d7fa8; + background-color: white; +} diff --git a/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html new file mode 100644 index 0000000..e1183a7 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.html @@ -0,0 +1,19 @@ + diff --git a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js similarity index 75% rename from FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js rename to projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js index 4de1471..df895bf 100644 --- a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js +++ b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js @@ -1,5 +1,5 @@ -import { api } from 'lwc'; -import LightningModal from 'lightning/modal'; +import { api } from "lwc"; +import LightningModal from "lightning/modal"; export default class ConfirmModal extends LightningModal { @api content; diff --git a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml similarity index 67% rename from FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml index eac275d..e013881 100644 --- a/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/confirmModal/confirmModal.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json new file mode 100644 index 0000000..a620a89 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/oneLocation.json @@ -0,0 +1,13 @@ +[ + { + "location": { "Latitude": 10, "Longitude": 10 }, + "value": { + "id": "1234", + "title": "marker1", + "firstDetailFieldValue": "field2-1", + "secondDetailFieldValue": "field3-1", + "thirdDetailFieldValue": "field4-1", + "distance": "15 km" + } + } +] diff --git a/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json new file mode 100644 index 0000000..7d61f89 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/data/threeLocations.json @@ -0,0 +1,35 @@ +[ + { + "location": { "Latitude": 10, "Longitude": 10 }, + "value": { + "id": "1234", + "title": "marker1", + "firstDetailFieldValue": "field2-1", + "secondDetailFieldValue": "field3-1", + "thirdDetailFieldValue": "field4-1", + "distance": "15 km" + } + }, + { + "location": { "Latitude": 20, "Longitude": 20 }, + "value": { + "id": "5678", + "title": "marker2", + "firstDetailFieldValue": "field2-2", + "secondDetailFieldValue": "field3-2", + "thirdDetailFieldValue": "field4-2", + "distance": "25 km" + } + }, + { + "location": { "Latitude": 10, "Longitude": 10 }, + "value": { + "id": "9123", + "title": "marker3", + "firstDetailFieldValue": "field2-3", + "secondDetailFieldValue": "field3-3", + "thirdDetailFieldValue": "field4-3", + "distance": "35 km" + } + } +] diff --git a/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js new file mode 100644 index 0000000..2ec7524 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/__tests__/locationsList.test.js @@ -0,0 +1,230 @@ +/* eslint-disable @lwc/lwc/prefer-custom-event */ +import { createElement } from "lwc"; +import LocationsList from "c/locationsList"; + +let element; +const oneLocation = require("./data/oneLocation.json"); +const threeLocations = require("./data/threeLocations.json"); + +describe("c-locations-list", () => { + beforeEach(() => { + element = createElement("c-locations-list", { + is: LocationsList + }); + + element.currentObject = { + value: "WorkOrder", + label: "Work Order", + plural: "Work Orders", + iconUrl: "", + color: "" + }; + element.isIos = () => true; + element.setCurrentMarker = jest.fn(); + element.redirectToMarkerDetails = jest.fn(); + element.routeToMarkerLocation = jest.fn(); + element.handleError = jest.fn(console.log); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + element = null; + }); + + it("has correct plural title", async () => { + element.filteredMarkers = threeLocations; + document.body.appendChild(element); + + return Promise.resolve().then(() => { + const title = element.shadowRoot.querySelector(".title-tile"); + expect(title.textContent).toBe("3 Work Orders"); + }); + }); + + it("has correct singular title", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + return Promise.resolve().then(() => { + const title = element.shadowRoot.querySelector(".title-tile"); + expect(title.textContent).toBe("1 Work Order"); + }); + }); + + it("has correct subtitle", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + return Promise.resolve().then(() => { + const tileSub = element.shadowRoot.querySelector( + 'li[data-index="0"] .tile-subtitle' + ); + expect(tileSub.textContent).toBe("15 km • field2-1"); + }); + }); + + it("has correct number of records", async () => { + element.filteredMarkers = threeLocations; + document.body.appendChild(element); + + return Promise.resolve().then(() => { + const tiles = element.shadowRoot.querySelectorAll("li"); + expect(tiles).toHaveLength(4); + }); + }); + + it("sets current marker when clicked", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + const tile = element.shadowRoot.querySelector('li[data-index="0"]'); + tile.click(); + + return Promise.resolve().then(() => { + expect(element.setCurrentMarker).toHaveBeenCalledWith(0); + }); + }); + + it("shows popover when actions button clicked", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + const popover = element.shadowRoot.querySelector(".popover-container div"); + expect(popover.classList).toContain("popover-hidden"); + const actionsButton = element.shadowRoot.querySelector( + ".actions-button button" + ); + actionsButton.click(); + return Promise.resolve().then(() => { + expect(popover.classList).toContain("popover-shown"); + }); + }); + + it("triggers redirectToMarkerDetails when view clicked", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + const action = element.shadowRoot.querySelectorAll(".action-item")[0]; + action.click(); + return Promise.resolve().then(() => { + expect(element.redirectToMarkerDetails).toHaveBeenCalled(); + }); + }); + + it("triggers routeToMarkerLocation when route clicked", async () => { + element.filteredMarkers = threeLocations; + document.body.appendChild(element); + + const action = element.shadowRoot.querySelectorAll(".action-item")[1]; + action.click(); + return Promise.resolve().then(() => { + expect(element.routeToMarkerLocation).toHaveBeenCalled(); + }); + }); + + it("opens list on drag up", async () => { + element.filteredMarkers = threeLocations; + document.body.appendChild(element); + + const mainTemplate = element.shadowRoot.querySelector(".main-container"); + const header = element.shadowRoot.querySelector(".header"); + + const eStart = new Event("touchstart"); + const eMove = new Event("touchmove"); + const eEnd = new Event("touchend"); + const point1 = { x: 0, y: 0 }; + const point2 = { x: 0, y: 10 }; + eStart.touches = [{ target: header, clientX: point1.x, clientY: point1.y }]; + eMove.touches = [{ target: header, clientX: point2.x, clientY: point2.y }]; + header.dispatchEvent(eStart); + header.dispatchEvent(eMove); + header.dispatchEvent(eEnd); + + return Promise.resolve().then(() => { + expect(mainTemplate.style.transform).toBe("translateY(calc(85% - 10px)"); + }); + }); + + it("closes list on drag down", async () => { + element.filteredMarkers = threeLocations; + document.body.appendChild(element); + + const mainTemplate = element.shadowRoot.querySelector(".main-container"); + const header = element.shadowRoot.querySelector(".header"); + + const eStart = new Event("touchstart"); + const eMove = new Event("touchmove"); + const eEnd = new Event("touchend"); + const point1 = { x: 0, y: 10 }; + const point2 = { x: 0, y: 0 }; + eStart.touches = [{ target: header, clientX: point1.x, clientY: point1.y }]; + eMove.touches = [{ target: header, clientX: point2.x, clientY: point2.y }]; + header.dispatchEvent(eStart); + header.dispatchEvent(eMove); + header.dispatchEvent(eEnd); + + return Promise.resolve().then(() => { + expect(mainTemplate.style.transform).toBe( + "translateY(calc((90% - 0px) - -10px))" + ); + }); + }); + + it("hides popover on mask clicked", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + const actionsButton = element.shadowRoot.querySelector( + ".actions-button button" + ); + actionsButton.click(); + return Promise.resolve().then(async () => { + const popover = element.shadowRoot.querySelector( + ".popover-container div" + ); + expect(popover.classList).toContain("popover-shown"); + const mask = element.shadowRoot.querySelector(".popover-mask"); + mask.click(); + return Promise.resolve().then(() => { + expect(popover.classList).toContain("popover-hidden"); + }); + }); + }); + + it("hides popover after second click on same button", async () => { + element.filteredMarkers = oneLocation; + document.body.appendChild(element); + + const actionsButton = element.shadowRoot.querySelector( + ".actions-button button" + ); + actionsButton.click(); + return Promise.resolve().then(async () => { + const popover = element.shadowRoot.querySelector( + ".popover-container div" + ); + expect(popover.classList).toContain("popover-shown"); + actionsButton.click(); + return Promise.resolve().then(() => { + expect(popover.classList).toContain("popover-hidden"); + }); + }); + }); + + it("sets paddingBottom correctly when using iOS devices", async () => { + element.filteredMarkers = oneLocation; + + const navigatorGetter = jest.spyOn(window, "navigator", "get"); + navigatorGetter.mockReturnValue({ + userAgent: "Macintosh", + maxTouchPoints: 2, + platform: "" + }); + document.body.appendChild(element); + + const list = element.shadowRoot.querySelector(".list"); + expect(list.style.paddingBottom).toBe("34px"); + }); +}); diff --git a/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css new file mode 100644 index 0000000..9f38d17 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.css @@ -0,0 +1,176 @@ +.main-container { + position: relative; + background-color: white; + float: left; + height: 100%; + width: 100%; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + transition: transform 0.6s; + transform: translateY(85%); + pointer-events: all; + box-shadow: 0px -1px 4px rgb(0 0 0 / 35%); +} + +.grabber { + display: flex; + justify-content: center; + height: 8px; +} + +.header .tile-container { + height: 48px; +} + +.title-tile { + height: 35px; + display: flex; + align-items: center; + justify-content: center; + width: 100%; +} + +.title-tile p { + color: black !important; +} + +.empty-state { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + margin-top: 40px; + padding-bottom: 20px; +} + +.empty-state-text { + padding: 20px 0; + color: #444444; + font-size: 16px; + text-align: center; +} + +.list { + overflow-y: scroll; + background-color: white; +} + +.tile-container { + display: flex; + align-items: center; + justify-content: space-between; + overflow: hidden; + text-overflow: ellipsis; +} + +.slds-item { + padding: 12px 16px; +} + +.icon-and-text { + display: flex; + flex: 1 auto; + width: calc(100% - 44px); +} + +.actions-button { + display: flex; + justify-content: right; + width: 44px; +} + +button { + background: white; + color: #0d7fa8; + border: none; + border-radius: 10px; + height: 44px; + width: 44px; + line-height: 0px; + padding: 0; + margin: 0; +} + +.popover-container { + z-index: 1; + position: absolute; + background-color: white; + color: #0d7fa8; + right: 55px; + pointer-events: all; +} + +.popover-shown { + display: flex; + flex-direction: column; + justify-content: space-between; + overflow: hidden; + box-shadow: 0px 2px rgba(0, 0, 0, 0.16); + border: 1px #c9c9c9 solid; + border-radius: 12px; + + width: 200px; + height: 100px; + transition: all linear 180ms; +} + +.popover-hidden { + display: flex; + flex-direction: column; + justify-content: space-between; + overflow: hidden; + + height: 0; + width: 0; + padding: 0; + transition: all linear 180ms; +} + +.action-item { + display: flex; + flex-direction: row; + align-items: center; + cursor: pointer; + font-size: 16px; + line-height: 22px; + padding: 13px; +} + +.action-icon { + --sds-c-icon-color-foreground-default: #0d7fa8; + margin-right: 8px; +} + +.popover-mask { + height: 100vh; + width: 100vw; + background-color: transparent; + pointer-events: all; + position: absolute; +} + +.list-spinner { + margin-top: 24px; + left: calc(50% - 24px); + position: absolute; + animation: spin 2s linear infinite; + -webkit-animation: spin 2s linear infinite; +} + +@keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@-webkit-keyframes spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} diff --git a/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html new file mode 100644 index 0000000..f4b2619 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.html @@ -0,0 +1,173 @@ + diff --git a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js similarity index 67% rename from FindNearby/force-app/main/default/lwc/locationsList/locationsList.js rename to projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js index 41605e8..059005e 100644 --- a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class LocationsList extends LightningElement { @api filteredMarkers; @@ -15,16 +15,18 @@ export default class LocationsList extends LightningElement { showPopover = false; actionButtonIndexClicked; - IOS_MARGIN = '34px'; + IOS_MARGIN = "34px"; init = false; renderedCallback() { this.setSpinner(); - this.mainTemplate = this.template.querySelector('.main-container'); - this.headerElement = this.template.querySelector('.header'); - this.listElement = this.template.querySelector('.list'); + this.mainTemplate = this.template.querySelector(".main-container"); + this.headerElement = this.template.querySelector(".header"); + this.listElement = this.template.querySelector(".list"); if (this.listElement) - this.listElement.style.paddingBottom = this.isIos() ? this.IOS_MARGIN : '0'; + this.listElement.style.paddingBottom = this.isIos() + ? this.IOS_MARGIN + : "0"; if (!this.init && this.headerElement) { this.detectDrag(); this.init = true; @@ -42,7 +44,7 @@ export default class LocationsList extends LightningElement { e.preventDefault(); e.stopPropagation(); const index = e?.currentTarget?.dataset?.index; - if (index) this.setCurrentMarker(parseInt(index)); + if (index) this.setCurrentMarker(parseInt(index, 10)); } catch (error) { this.handleError(error); } @@ -52,9 +54,12 @@ export default class LocationsList extends LightningElement { try { e.stopPropagation(); const el = e.currentTarget; - const markerInd = parseInt(el.closest('li')?.dataset?.index); - this.template.querySelector('.popover-container').style.bottom = `${ - el.offsetParent?.offsetHeight - el.offsetTop - el.offsetHeight + this.listElement.scrollTop + const markerInd = parseInt(el.closest("li")?.dataset?.index, 10); + this.template.querySelector(".popover-container").style.bottom = `${ + el.offsetParent?.offsetHeight - + el.offsetTop - + el.offsetHeight + + this.listElement.scrollTop }px`; if (!this.showPopover || markerInd === this.actionButtonIndexClicked) this.showPopover = !this.showPopover; @@ -85,12 +90,14 @@ export default class LocationsList extends LightningElement { } get popoverClass() { - return this.showPopover ? 'popover-shown' : 'popover-hidden'; + return this.showPopover ? "popover-shown" : "popover-hidden"; } get titleObjectText() { - if (!this.currentObject.label) return 'Locations'; - return this.filteredMarkers.length === 1 ? this.currentObject.label : this.currentObject.plural; + if (!this.currentObject.label) return "Locations"; + return this.filteredMarkers.length === 1 + ? this.currentObject.label + : this.currentObject.plural; } // List Opening & Closing @@ -99,6 +106,7 @@ export default class LocationsList extends LightningElement { const top = this.mainTemplate.style.top; if (this.listElement.clientHeight > (window.innerHeight * 85) / 100) { this.mainTemplate.style.transform = `translateY(calc(20% - ${top}))`; + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { this.setListHeight(); }, 800); @@ -121,22 +129,12 @@ export default class LocationsList extends LightningElement { } detectDrag = () => { + // eslint-disable-next-line no-unused-vars let pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0; - const dragTouchStart = (e) => { - this.listElement.style.height = 'fit-content'; - this.showPopover = false; - e = e || window.event; - e.preventDefault(); - pos3 = e.touches[0].clientX; - pos4 = e.touches[0].clientY; - this.headerElement.addEventListener('touchend', dragEnd); - this.headerElement.addEventListener('touchmove', dragMove); - }; - const dragMove = (e) => { e = e || window.event; e.preventDefault(); @@ -150,21 +148,32 @@ export default class LocationsList extends LightningElement { const dragEnd = () => { if (pos2 > 0) this.openLocationsList(); else this.closeLocationsList(); - this.headerElement.removeEventListener('touchend', dragEnd); - this.headerElement.removeEventListener('touchmove', dragMove); + this.headerElement.removeEventListener("touchend", dragEnd); + this.headerElement.removeEventListener("touchmove", dragMove); + }; + + const dragTouchStart = (e) => { + this.listElement.style.height = "fit-content"; + this.showPopover = false; + e = e || window.event; + e.preventDefault(); + pos3 = e.touches[0].clientX; + pos4 = e.touches[0].clientY; + this.headerElement.addEventListener("touchend", dragEnd); + this.headerElement.addEventListener("touchmove", dragMove); }; - this.headerElement.addEventListener('touchstart', dragTouchStart); + this.headerElement.addEventListener("touchstart", dragTouchStart); }; // Helpers setSpinner() { // set same id (if set in html, it changes dynamically) - const g = this.template.querySelector('.spinner-g'); - const mask = this.template.querySelector('.spinner-mask'); - const id = 'spinner-mask-id'; - mask?.setAttribute('id', id); - g?.setAttribute('mask', `url(#${id})`); + const g = this.template.querySelector(".spinner-g"); + const mask = this.template.querySelector(".spinner-mask"); + const id = "spinner-mask-id"; + mask?.setAttribute("id", id); + g?.setAttribute("mask", `url(#${id})`); } } diff --git a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml similarity index 67% rename from FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml index eac275d..e013881 100644 --- a/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/locationsList/locationsList.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js b/projects/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js new file mode 100644 index 0000000..1f66988 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mapFilters/__tests__/mapFilters.test.js @@ -0,0 +1,312 @@ +/* eslint-disable @lwc/lwc/prefer-custom-event */ +import { createElement } from "lwc"; +import MapFilters from "c/mapFilters"; + +let element; + +let objectFilterButton; +let objectSheet; +let objectRadio; +let xButtonObj; + +let fieldFilterButton; +let fieldFilterSheet; +let xButtonFieldFilter; +let inputField; +let showResultsButton; + +let fieldsListSheet; +let fieldListRadio; +let xButtonFieldsList; + +describe("c-map-filters", () => { + beforeEach(() => { + element = createElement("c-map-filters", { + is: MapFilters + }); + + element.mapObjects = [ + { + value: "ServiceAppointment", + label: "Service Appointment", + latField: "Latitude", + longField: "Longitude", + titleField: "AppointmentNumber", + firstDetailField: "Subject", + secondDetailField: "Status", + thirdDetailField: "DurationInMinutes", + fields: [ + { value: "a", label: "A", type: "String" }, + { value: "b", label: "B", type: "Boolean" }, + { value: "c", label: "C", type: "DateTime" } + ] + }, + { + value: "Asset", + label: "Asset", + latField: "Latitude", + longField: "Longitude", + titleField: "Name", + firstDetailField: "Quantity", + secondDetailField: "Address", + thirdDetailField: "Price" + } + ]; + element.currentObjectFilter = { + value: "ServiceAppointment", + label: "Service Appointment", + plural: "", + iconUrl: "", + color: "" + }; + element.currentFieldFilter = { + isActive: true, + field: { value: "", label: "", type: "", input: "" } + }; + element.setCurrentObjectFilter = jest.fn(); + element.setCurrentFieldFilter = jest.fn(); + element.handleError = jest.fn(console.log); + + document.body.appendChild(element); + + objectFilterButton = + element.shadowRoot.querySelectorAll(".filter-button")[0]; + objectSheet = element.shadowRoot.querySelector( + ".object-filter-bottom-sheet" + ); + objectRadio = element.shadowRoot.querySelector( + ".object-filter-bottom-sheet lightning-radio-group" + ); + xButtonObj = element.shadowRoot.querySelector( + ".object-filter-bottom-sheet .x" + ); + + fieldFilterButton = + element.shadowRoot.querySelectorAll(".filter-button")[1]; + fieldFilterSheet = element.shadowRoot.querySelector( + ".field-filter-bottom-sheet" + ); + xButtonFieldFilter = element.shadowRoot.querySelector( + ".field-filter-bottom-sheet .x" + ); + showResultsButton = element.shadowRoot.querySelector( + ".filters-sheet-show-results" + ); + + fieldsListSheet = element.shadowRoot.querySelector( + ".fields-list-bottom-sheet" + ); + fieldListRadio = element.shadowRoot.querySelector( + ".fields-list-bottom-sheet lightning-radio-group" + ); + xButtonFieldsList = element.shadowRoot.querySelector( + ".fields-list-bottom-sheet .x" + ); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("has object filter filled", async () => { + return Promise.resolve().then(() => { + const currentObject = + objectFilterButton.querySelector(".button-text-main"); + expect(currentObject.textContent).toBe("Service Appointment"); + }); + }); + + it("has field filter empty", () => { + const currentField = fieldFilterButton.querySelector(".button-text-main"); + expect(currentField.textContent).toBe("None"); + }); + + it("has correct number of options in objects list", () => { + expect(objectRadio.options).toHaveLength(2); + }); + + it("opens object sheet when object filter button clicked", async () => { + expect(objectSheet.classList).not.toContain("pt-page-moveToTop"); + + objectFilterButton.click(); + return Promise.resolve().then(() => { + expect(objectSheet.classList).toContain("pt-page-moveToTop"); + }); + }); + + it("calls setCurrentObjectFilter when changing object filter", async () => { + objectFilterButton.click(); + return Promise.resolve().then(async () => { + objectRadio.value = "Asset"; + objectRadio.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + expect(element.setCurrentObjectFilter).toHaveBeenCalledWith( + element.mapObjects[1] + ); + }); + }); + }); + + it("opens field filter sheet when field filter button clicked", async () => { + expect(fieldFilterSheet.classList).not.toContain("pt-page-moveToTop"); + + fieldFilterButton.click(); + return Promise.resolve().then(() => { + expect(fieldFilterSheet.classList).toContain("pt-page-moveToTop"); + }); + }); + + it("opens fields list sheet when field combo clicked", async () => { + expect(fieldsListSheet.classList).not.toContain("pt-page-moveToTop"); + + const fieldCombo = element.shadowRoot.querySelector(".field-combo-cover"); + fieldCombo.click(); + return Promise.resolve().then(() => { + expect(fieldsListSheet.classList).toContain("pt-page-moveToTop"); + }); + }); + + it("closes objects sheet on x click", async () => { + objectFilterButton.click(); + return Promise.resolve().then(async () => { + expect(objectSheet.classList).toContain("pt-page-moveToTop"); + xButtonObj.click(); + return Promise.resolve().then(() => { + expect(objectSheet.classList).not.toContain("pt-page-moveToTop"); + }); + }); + }); + + it("closes field filter sheet on x click", async () => { + fieldFilterButton.click(); + return Promise.resolve().then(async () => { + expect(fieldFilterSheet.classList).toContain("pt-page-moveToTop"); + xButtonFieldFilter.click(); + return Promise.resolve().then(() => { + expect(fieldFilterSheet.classList).not.toContain("pt-page-moveToTop"); + }); + }); + }); + + it("closes fields list sheet on x click", async () => { + const fieldCombo = element.shadowRoot.querySelector(".field-combo-cover"); + fieldCombo.click(); + return Promise.resolve().then(async () => { + expect(fieldsListSheet.classList).toContain("pt-page-moveToTop"); + xButtonFieldsList.click(); + return Promise.resolve().then(() => { + expect(fieldsListSheet.classList).not.toContain("pt-page-moveToTop"); + }); + }); + }); + + describe("c-map-filters field filter", () => { + describe("basic field filter", () => { + beforeEach(async () => { + // open the fields list and select the string field + fieldListRadio.value = "a"; + fieldListRadio.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + inputField = element.shadowRoot.querySelector( + ".field-input-container lightning-input" + ); + }); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("shows correct input component when field selected", async () => { + expect(inputField).not.toBeNull(); + expect(inputField.type).toBe("String"); + }); + + it("enables show results button on input change", async () => { + inputField.value = "text"; + inputField.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + expect(showResultsButton.disabled).toBe(false); + }); + }); + + it("changes field filter button to active when show results clicked", async () => { + inputField.value = "text"; + inputField.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + showResultsButton.click(); + return Promise.resolve().then(() => { + const btn = + element.shadowRoot.querySelectorAll(".filter-button")[1]; + expect(btn.classList).toContain("active-button"); + }); + }); + }); + }); + + describe("boolean field filter", () => { + beforeEach(async () => { + // open the fields list and select the boolean field + fieldListRadio.value = "b"; + fieldListRadio.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + inputField = element.shadowRoot.querySelector( + ".field-input-container lightning-input" + ); + }); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("shows correct input component when field selected", async () => { + expect(inputField).not.toBeNull(); + expect(inputField.type).toBe("toggle"); + }); + + it("enables show results button even when nothing changes (boolean field can be left unchanged)", async () => { + expect(showResultsButton.disabled).toBe(false); + }); + + it("enables show results button also when toggle changes", async () => { + inputField.checked = true; + inputField.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + expect(inputField.checked).toBe(true); + expect(showResultsButton.disabled).toBe(false); + }); + }); + }); + + describe("date field filter", () => { + beforeEach(async () => { + // open the fields list and select the dateTime field + fieldListRadio.value = "c"; + fieldListRadio.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + inputField = element.shadowRoot.querySelector( + ".field-input-container lightning-input" + ); + }); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("shows correct input component when field selected", async () => { + expect(inputField).not.toBeNull(); + expect(inputField.type).toBe("Date"); + }); + }); + }); +}); diff --git a/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css new file mode 100644 index 0000000..ecfcb8c --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.css @@ -0,0 +1,236 @@ +.buttons-container { + background: white; + display: flex; + overflow-x: scroll; + padding: 8px 16px; + width: 100%; +} + +.button { + border: 2px #0d7fa8 solid; + border-radius: 10px; + padding: 8px 16px; + margin-bottom: 8px; + font-size: 14px; + line-height: 18px; + letter-spacing: 0px; + font-weight: 500; + white-space: nowrap; +} + +.filter-button { + display: flex; + flex-direction: row; + align-items: center; + margin: 0; + margin-right: 8px; +} + +.active-button { + color: white; + background-color: #0d7fa8; +} + +.inactive-button { + background: white; + color: #0d7fa8; +} + +.active-button .icon { + --sds-c-icon-color-foreground-default: white; + margin-left: 8px; +} + +.inactive-button .icon { + --sds-c-icon-color-foreground-default: #0d7fa8; + margin-left: 8px; +} + +.button-text { + display: flex; + flex-direction: column; + align-items: start; +} + +.button-text-title { + font-size: 12px; + line-height: 14px; + margin-bottom: 2px; +} + +.button-text-main { + font-size: 16px; + line-height: 22px; +} + +/* bottom sheets */ + +.bottom-sheet { + position: absolute; + display: flex; + flex-direction: column; + background-color: white; + width: 100%; + overflow-x: hidden; + overflow-y: hidden; + top: 100vh; + padding-bottom: 50px; + max-height: 85vh; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.shadow { + box-shadow: 0px -1px 4px rgb(0 0 0 / 35%); +} + +.grabber { + display: flex; + justify-content: center; + height: 8px; +} + +.sheet-title-and-buttons { + display: flex; + justify-content: space-between; +} + +.back { + background: none; + border: none; + cursor: none; + width: 48px; + padding: 0; +} + +.x { + cursor: pointer; + background: none; + border: none; + padding: 0; + width: 48px; +} + +.x-icon { + --sds-c-icon-color-foreground-default: #0d7fa8; + padding: 0 13px; +} + +.sheet-content { + display: flex; + flex-direction: column; + margin: 16px; + overflow-y: scroll; +} + +.sheet-footer { + display: flex; + flex-direction: column; + margin: 16px; +} + +.filters-sheet-title { + display: flex; + justify-content: center; + align-items: center; + font-size: 18px; + line-height: 21px; + height: 48px; + text-align: center; +} + +.field-combo-container { + position: relative; +} + +.field-combo-cover { + position: absolute; + top: 0; +} + +.field-input-container { + margin-top: 16px; +} + +.boolean-input-frame { + border: 1px solid #d4d4d4; + border-radius: 12px; + padding: 12px; +} + +select { + height: 48px; +} + +.filters-sheet-show-results, +.filters-sheet-clear { + height: 48px; + font-size: 16px; + line-height: 22px; +} + +.filters-sheet-show-results:enabled { + background: #0d7fa8; + color: white; + border: none; +} + +.filters-sheet-show-results[disabled], +.filters-sheet-show-results:disabled { + background: #eeeeee; + color: #9faab5; + border: none; +} + +.filters-sheet-clear:enabled { + background: white; + color: #0d7fa8; + border: 2px #0d7fa8 solid; +} + +.filters-sheet-clear[disabled], +.filters-sheet-clear:disabled { + background: white; + color: #9faab5; + border: 2px #e4e4e8 solid; +} + +/* animations top-bottom */ + +.pt-page-moveToTop { + -webkit-animation: moveToTop 0.4s ease both; + animation: moveToTop 0.4s ease both; +} + +.pt-page-moveFromTop { + -webkit-animation: moveFromTop 0.4s ease both; + animation: moveFromTop 0.4s ease both; +} + +@-webkit-keyframes moveToTop { + from { + } + to { + -webkit-transform: translateY(-100%); + } +} +@keyframes moveToTop { + from { + } + to { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} + +@-webkit-keyframes moveFromTop { + from { + -webkit-transform: translateY(-100%); + } +} +@keyframes moveFromTop { + from { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); + } +} diff --git a/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html new file mode 100644 index 0000000..3464c92 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.html @@ -0,0 +1,228 @@ + diff --git a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js similarity index 61% rename from FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js rename to projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js index 1aee2b5..aa1d74c 100644 --- a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js +++ b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js @@ -1,5 +1,5 @@ -import { LightningElement, api } from 'lwc'; -import getAllPicklistOptions from '@salesforce/apex/MobileMapLayersService.getAllPicklistOptions'; +import { LightningElement, api } from "lwc"; +import getAllPicklistOptions from "@salesforce/apex/MobileMapLayersService.getAllPicklistOptions"; export default class MapFilters extends LightningElement { @api mapObjects; @@ -8,7 +8,7 @@ export default class MapFilters extends LightningElement { @api currentFieldFilter; @api setCurrentObjectFilter; @api setCurrentFieldFilter; - selectedFieldFilter = { label: '', value: '', type: '', input: '' }; + selectedFieldFilter = { label: "", value: "", type: "", input: "" }; picklistOptions; connectedCallback() { @@ -17,8 +17,10 @@ export default class MapFilters extends LightningElement { } renderedCallback() { - const fieldContainer = this.template.querySelector('.field-combo-container'); - const comboCover = this.template.querySelector('.field-combo-cover'); + const fieldContainer = this.template.querySelector( + ".field-combo-container" + ); + const comboCover = this.template.querySelector(".field-combo-cover"); comboCover.style.height = `${fieldContainer.clientHeight}px`; comboCover.style.width = `${fieldContainer.clientWidth}px`; } @@ -26,18 +28,18 @@ export default class MapFilters extends LightningElement { // Getters get filteredObjectText() { - return this.currentObjectFilter?.label || 'None'; + return this.currentObjectFilter?.label || "None"; } get filteredFieldText() { const currentField = this.currentFieldFilter.field.label; - return !currentField ? 'None' : currentField; + return !currentField ? "None" : currentField; } get filterFieldButtonClass() { - let buttonClasses = 'button filter-button'; + let buttonClasses = "button filter-button"; return `${buttonClasses} ${ - this.currentFieldFilter.isActive ? 'active-button' : 'inactive-button' + this.currentFieldFilter.isActive ? "active-button" : "inactive-button" }`; } @@ -60,16 +62,16 @@ export default class MapFilters extends LightningElement { } get inputType() { - if (this.selectedFieldFilter?.type === 'DateTime') return 'Date'; + if (this.selectedFieldFilter?.type === "DateTime") return "Date"; return this.selectedFieldFilter?.type; } get isFieldTypeBoolean() { - return this.selectedFieldFilter.type === 'Boolean'; + return this.selectedFieldFilter.type === "Boolean"; } get isFieldTypePicklist() { - return this.selectedFieldFilter.type === 'Picklist'; + return this.selectedFieldFilter.type === "Picklist"; } get isFieldTypeRegular() { @@ -94,8 +96,10 @@ export default class MapFilters extends LightningElement { e.preventDefault(); e.stopPropagation(); this.clearFieldFilter(); - this.setCurrentObjectFilter(this.objRadioOptions.find((o) => o.value === e.target.value)); - this.closeSheet('object-filter-bottom-sheet'); + this.setCurrentObjectFilter( + this.objRadioOptions.find((o) => o.value === e.target.value) + ); + this.closeSheet("object-filter-bottom-sheet"); } catch (error) { this.handleError(error); } @@ -106,11 +110,11 @@ export default class MapFilters extends LightningElement { e.preventDefault(); e.stopPropagation(); this.selectedFieldFilter = { - ...this.fieldRadioOptions.find((o) => o.value === e.target.value), + ...this.fieldRadioOptions.find((o) => o.value === e.target.value) }; - this.selectedFieldFilter.input = this.isFieldTypeBoolean ? false : ''; + this.selectedFieldFilter.input = this.isFieldTypeBoolean ? false : ""; this.refreshPicklistOptions(); - this.closeSheet('fields-list-bottom-sheet'); + this.closeSheet("fields-list-bottom-sheet"); } catch (error) { this.handleError(error); } @@ -128,43 +132,44 @@ export default class MapFilters extends LightningElement { // Buttons Handlers handleTopFiltersObjClick = () => { - this.openSheet('object-filter-bottom-sheet'); - this.closeSheet('field-filter-bottom-sheet'); - this.closeSheet('fields-list-bottom-sheet'); + this.openSheet("object-filter-bottom-sheet"); + this.closeSheet("field-filter-bottom-sheet"); + this.closeSheet("fields-list-bottom-sheet"); }; handleTopFiltersFieldClick = () => { this.selectedFieldFilter = this.currentFieldFilter.field; - this.openSheet('field-filter-bottom-sheet'); - this.closeSheet('object-filter-bottom-sheet'); + this.openSheet("field-filter-bottom-sheet"); + this.closeSheet("object-filter-bottom-sheet"); }; handleFieldComboClick = () => { - this.openSheet('fields-list-bottom-sheet'); + this.openSheet("fields-list-bottom-sheet"); }; handleCloseObjFiltersClick = () => { - this.closeSheet('object-filter-bottom-sheet'); + this.closeSheet("object-filter-bottom-sheet"); }; handleCloseFieldFiltersClick = () => { - this.closeSheet('field-filter-bottom-sheet'); + this.closeSheet("field-filter-bottom-sheet"); }; handleCloseFieldsListClick = () => { - this.closeSheet('fields-list-bottom-sheet'); + this.closeSheet("fields-list-bottom-sheet"); }; handleShowResultsClick = () => { - if (this.isFieldTypeBoolean) this.selectedFieldFilter.input = !!this.selectedFieldFilter.input; + if (this.isFieldTypeBoolean) + this.selectedFieldFilter.input = !!this.selectedFieldFilter.input; this.setCurrentFieldFilter(true, this.selectedFieldFilter); - this.closeSheet('field-filter-bottom-sheet'); + this.closeSheet("field-filter-bottom-sheet"); }; handleClearClick = () => { this.clearFieldFilter(); - this.closeSheet('field-filter-bottom-sheet'); - this.closeSheet('fields-list-bottom-sheet'); + this.closeSheet("field-filter-bottom-sheet"); + this.closeSheet("fields-list-bottom-sheet"); }; // Helpers @@ -173,11 +178,11 @@ export default class MapFilters extends LightningElement { if (this.isFieldTypePicklist) { const allOptions = await getAllPicklistOptions({ obj: this.currentObjectFilter.value, - field: this.selectedFieldFilter.value, + field: this.selectedFieldFilter.value }); this.picklistOptions = [ - { label: '', value: '' }, - ...allOptions.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)), + { label: "", value: "" }, + ...allOptions.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)) ]; } else { this.picklistOptions = []; @@ -186,27 +191,29 @@ export default class MapFilters extends LightningElement { clearFieldFilter() { this.setCurrentFieldFilter(false, { - label: '', - value: '', - type: '', - input: '', + label: "", + value: "", + type: "", + input: "" }); } openSheet(sheet) { const sheetClasses = this.template.querySelector(`.${sheet}`).classList; - sheetClasses.add('pt-page-moveToTop'); - sheetClasses.add('shadow'); - sheetClasses.remove('pt-page-moveFromTop'); + sheetClasses.add("pt-page-moveToTop"); + sheetClasses.add("shadow"); + sheetClasses.remove("pt-page-moveFromTop"); } closeSheet(sheet) { const sheetClasses = this.template.querySelector(`.${sheet}`).classList; - if (Array.from(sheetClasses).includes('pt-page-moveToTop')) { - sheetClasses.add('pt-page-moveFromTop'); - sheetClasses.remove('pt-page-moveToTop'); + if (Array.from(sheetClasses).includes("pt-page-moveToTop")) { + sheetClasses.add("pt-page-moveFromTop"); + sheetClasses.remove("pt-page-moveToTop"); } - sheetClasses.remove('shadow'); - this.template.querySelectorAll('.sheet-content').forEach((s) => (s.scrollTop = 0)); + sheetClasses.remove("shadow"); + this.template + .querySelectorAll(".sheet-content") + .forEach((s) => (s.scrollTop = 0)); } } diff --git a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml similarity index 67% rename from FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml index eac275d..e013881 100644 --- a/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/mapFilters/mapFilters.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js b/projects/FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js similarity index 57% rename from FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js rename to projects/FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js index 62a6eda..65c8ea8 100644 --- a/FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMap/__tests__/mobileMap.test.js @@ -1,27 +1,27 @@ -import { createElement } from 'lwc'; -import MobileMap from 'c/mobileMap'; +import { createElement } from "lwc"; +import MobileMap from "c/mobileMap"; let element; -describe('c-mobile-map', () => { +describe("c-mobile-map", () => { beforeEach(() => { - element = createElement('c-mobile-map', { - is: MobileMap, + element = createElement("c-mobile-map", { + is: MobileMap }); element.filteredMarkers = [ { location: { Latitude: 10, Longitude: 10 }, - value: { titleFieldValue: 'marker title1' }, + value: { titleFieldValue: "marker title1" } }, { location: { Latitude: 20, Longitude: 20 }, - value: { titleFieldValue: 'marker title2' }, + value: { titleFieldValue: "marker title2" } }, { location: { Latitude: 30, Longitude: 30 }, - value: { titleFieldValue: 'marker title3' }, - }, + value: { titleFieldValue: "marker title3" } + } ]; element.currentMarker = element.filteredMarkers[0]; element.currentMarkerInd = 0; @@ -40,64 +40,66 @@ describe('c-mobile-map', () => { element = null; }); - it('should show map and hide cards on launch', () => { - const map = element.shadowRoot.querySelector('lightning-map'); - const cards = element.shadowRoot.querySelector('.cards'); + it("should show map and hide cards on launch", () => { + const map = element.shadowRoot.querySelector("lightning-map"); + const cards = element.shadowRoot.querySelector(".cards"); expect(map).not.toBeNull(); expect(cards).toBeNull(); }); - it('should be 2 markers on the map', async () => { - const map = element.shadowRoot.querySelector('lightning-map'); + it("should be 2 markers on the map", async () => { + const map = element.shadowRoot.querySelector("lightning-map"); return Promise.resolve().then(() => { expect(map.mapMarkers).toHaveLength(3); }); }); - it('card has correct title', async () => { + it("card has correct title", async () => { element.currentMarkerSet(false); return Promise.resolve().then(() => { - const cards = element.shadowRoot.querySelector('.cards'); + const cards = element.shadowRoot.querySelector(".cards"); expect(cards).not.toBeNull(); - const cardTitle = element.shadowRoot.querySelector('.title-text'); - expect(cardTitle.textContent).toBe('marker title1'); + const cardTitle = element.shadowRoot.querySelector(".title-text"); + expect(cardTitle.textContent).toBe("marker title1"); }); }); - it('closes card on x click', async () => { + it("closes card on x click", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const cardClose = element.shadowRoot.querySelector('.x'); + const cardClose = element.shadowRoot.querySelector(".x"); cardClose.click(); return Promise.resolve().then(() => { - const cards = element.shadowRoot.querySelector('.cards'); + const cards = element.shadowRoot.querySelector(".cards"); expect(cards).toBeNull(); }); }); }); - it('closes card when locator clicked', async () => { + it("closes card when locator clicked", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const locator = element.shadowRoot.querySelector('.locator'); + const locator = element.shadowRoot.querySelector(".locator"); locator.click(); return Promise.resolve().then(() => { - const cards = element.shadowRoot.querySelector('.cards'); + const cards = element.shadowRoot.querySelector(".cards"); expect(cards).toBeNull(); }); }); }); - it('triggers redirectToMarkerDetails when open record clicked', async () => { + it("triggers redirectToMarkerDetails when open record clicked", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const action = element.shadowRoot.querySelectorAll('.card-primary-button')[0]; + const action = element.shadowRoot.querySelectorAll( + ".card-primary-button" + )[0]; action.click(); return Promise.resolve().then(() => { expect(element.redirectToMarkerDetails).toHaveBeenCalled(); @@ -105,11 +107,13 @@ describe('c-mobile-map', () => { }); }); - it('triggers routeToMarkerLocation when get directions clicked', async () => { + it("triggers routeToMarkerLocation when get directions clicked", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const action = element.shadowRoot.querySelectorAll('.card-primary-button')[1]; + const action = element.shadowRoot.querySelectorAll( + ".card-primary-button" + )[1]; action.click(); return Promise.resolve().then(() => { expect(element.routeToMarkerLocation).toHaveBeenCalled(); @@ -117,11 +121,11 @@ describe('c-mobile-map', () => { }); }); - it('moves to previous item when back clicked', async () => { + it("moves to previous item when back clicked", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const back = element.shadowRoot.querySelectorAll('.card-footer-arrow')[0]; + const back = element.shadowRoot.querySelectorAll(".card-footer-arrow")[0]; back.click(); return Promise.resolve().then(() => { expect(element.setCurrentMarker).toHaveBeenCalledWith(2); @@ -129,11 +133,11 @@ describe('c-mobile-map', () => { }); }); - it('moves to next item when next clicked', async () => { + it("moves to next item when next clicked", async () => { element.currentMarkerSet(false); return Promise.resolve().then(async () => { - const back = element.shadowRoot.querySelectorAll('.card-footer-arrow')[1]; + const back = element.shadowRoot.querySelectorAll(".card-footer-arrow")[1]; back.click(); return Promise.resolve().then(() => { expect(element.setCurrentMarker).toHaveBeenCalledWith(1); diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css new file mode 100644 index 0000000..3a97718 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.css @@ -0,0 +1,199 @@ +.main-container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + position: relative; + height: 100%; + width: 100%; +} + +.locator { + display: flex; + justify-content: center; + align-items: center; + height: 48px; + width: 48px; + background-color: white; + border-radius: 100px; + top: 90px; + right: 16px; + position: absolute; + z-index: 1; + box-shadow: 0px 4px rgba(0, 0, 0, 0.25); +} + +lightning-map { + height: 100%; + width: 100%; + padding: 0; + margin: 0; +} + +.buttons { + margin-top: 10px; + margin-left: 0; +} + +/* cards */ + +.cards { + position: absolute; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + background-color: white; + border: 2px #9faab5 solid; + border-radius: 10px; + width: 360px; + top: calc(50% + 10px); + height: fit-content; + box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.16); +} + +.card-top-arrow { + height: 16px; + width: 16px; + background-color: white; + position: absolute; + left: 50%; + top: -1px; + border-left: 2px #9faab5 solid; + border-top: 2px #9faab5 solid; + transform: translate(-50%, -50%) rotate(45deg); +} + +.card-header { + display: flex; + justify-content: space-between; + width: 100%; + height: 48px; +} + +.card-title { + padding: 16px; + padding-bottom: 16px; + display: flex; + align-items: center; +} + +.title-text { + color: #181818; + font-size: 20px; + font-weight: 500; + margin-left: 8px; +} + +.x { + cursor: pointer; + background: none; + border: none; + padding: 16px; +} + +.x-icon { + --sds-c-icon-color-foreground-default: #0d7fa8; +} + +.card-main { + padding: 16px; + padding-top: 0; + display: flex; + flex-direction: column; + align-items: flex-start; + justify-content: space-between; + width: 100%; + height: fit-content; + text-align: left; +} + +.card-details { + display: flex; + flex-direction: column; + width: 100%; + font-size: 14px; +} + +.card-details-row { + display: flex; + flex-direction: row; + width: 100%; +} + +.first-row { + margin-bottom: 12px; +} + +.card-details-text { + margin-right: 30px; + flex: 1; + color: black; +} + +.card-secondary-title { + color: #444444; + font-size: 14px; +} + +.card-secondary-text { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.card-buttons-container { + display: flex; + flex-direction: row; + justify-content: space-between; + margin-top: 10px; + width: 100%; +} + +.card-buttons-container button { + background: white; + color: #0d7fa8; + border: 1.5px #0d7fa8 solid; + height: 44px; + border-radius: 10px; + padding: 8px 12px; + font-size: 14px; + line-height: 18px; + letter-spacing: 0px; + font-weight: 500; + width: 160px; +} + +.card-primary-button { + margin: 0; +} + +.slds-button__icon { + margin: 0; +} + +.card-footer { + width: 100%; + background: #eeeeee; + color: #444444; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 16px 0; + height: 50px; + border-radius: 0 0 10px 10px; + font-size: 16px; +} + +.card-footer-arrow { + border: none; + background: none; + height: 48px; + width: 48px; +} + +.arrow-icon { + --sds-c-icon-color-foreground-default: #444444; +} diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html new file mode 100644 index 0000000..327bcb5 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.html @@ -0,0 +1,125 @@ + diff --git a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js similarity index 91% rename from FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js rename to projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js index 44ffccf..6b58754 100644 --- a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js @@ -1,4 +1,4 @@ -import { LightningElement, api, track } from 'lwc'; +import { LightningElement, api, track } from "lwc"; export default class MobileMaps extends LightningElement { // Markers @@ -21,10 +21,10 @@ export default class MobileMaps extends LightningElement { // Map options zoom = 15; - listView = ''; + listView = ""; mapOptions = { disableDefaultUI: true, - zoomControl: false, + zoomControl: false }; renderedCallback() { @@ -36,10 +36,14 @@ export default class MobileMaps extends LightningElement { } isMarkersListEqual() { - const markers = this.markersWithResource.filter((m) => m.value !== undefined); + const markers = this.markersWithResource.filter( + (m) => m.value !== undefined + ); return ( this.filteredMarkers.length === markers.length && - this.filteredMarkers.every((m, ind) => m.value.id === markers[ind].value.id) + this.filteredMarkers.every( + (m, ind) => m.value.id === markers[ind].value.id + ) ); } @@ -47,9 +51,9 @@ export default class MobileMaps extends LightningElement { this.resourceMarker = { location: { Latitude: lat, - Longitude: lng, + Longitude: lng }, - mapIcon: this.getResourceMarkerSVG(), + mapIcon: this.getResourceMarkerSVG() }; } @@ -165,6 +169,6 @@ export default class MobileMaps extends LightningElement { `; - return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(icon); + return "data:image/svg+xml;charset=UTF-8," + encodeURIComponent(icon); } } diff --git a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml similarity index 67% rename from FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml index eac275d..e013881 100644 --- a/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMap/mobileMap.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json new file mode 100644 index 0000000..53a7d28 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/data/getObjectInfosResponse.json @@ -0,0 +1,174 @@ +{ + "results": [ + { + "statusCode": 200, + "result": { + "apiName": "ServiceAppointment", + "associateEntityType": null, + "associateParentEntity": null, + "childRelationships": [ + { + "childObjectApiName": "ActivityHistory", + "fieldName": "WhatId", + "junctionIdListNames": [], + "junctionReferenceTo": [], + "relationshipName": "ActivityHistories" + } + ], + "createable": true, + "custom": false, + "defaultRecordTypeId": "012000000000000AAA", + "deletable": true, + "dependentFields": {}, + "feedEnabled": false, + "fields": { + "AccountId": { + "apiName": "AccountId", + "calculated": false, + "compound": false, + "compoundComponentName": null, + "compoundFieldName": null, + "controllerName": null, + "controllingFields": [], + "createable": false, + "custom": false, + "dataType": "Reference", + "extraTypeInfo": null, + "filterable": true, + "filteredLookupInfo": null, + "highScaleNumber": false, + "htmlFormatted": false, + "inlineHelpText": null, + "label": "Account ID", + "length": 18, + "nameField": false, + "polymorphicForeignKey": false, + "precision": 0, + "reference": true, + "referenceTargetField": null, + "referenceToInfos": [ + { + "apiName": "Account", + "nameFields": ["Name"] + } + ], + "relationshipName": "Account", + "required": false, + "scale": 0, + "searchPrefilterable": true, + "sortable": true, + "unique": false, + "updateable": false + } + }, + "keyPrefix": "08p", + "label": "Service Appointment", + "labelPlural": "Service Appointments", + "layoutable": true, + "mruEnabled": true, + "nameFields": ["AppointmentNumber"], + "queryable": true, + "recordTypeInfos": { + "012000000000000AAA": { + "available": true, + "defaultRecordTypeMapping": true, + "master": true, + "name": "Master", + "recordTypeId": "012000000000000AAA" + } + }, + "searchable": true, + "themeInfo": { + "color": "5867E8", + "iconUrl": "https://inbalorg-dev-ed.develop.my.salesforce.com/img/icon/t4v35/standard/service_appointment_120.png" + }, + "updateable": true + } + }, + { + "statusCode": 200, + "result": { + "apiName": "ServiceResource", + "associateEntityType": null, + "associateParentEntity": null, + "childRelationships": [ + { + "childObjectApiName": "ActivityHistory", + "fieldName": "WhatId", + "junctionIdListNames": [], + "junctionReferenceTo": [], + "relationshipName": "ActivityHistories" + } + ], + "createable": true, + "custom": false, + "defaultRecordTypeId": "012000000000000AAA", + "deletable": false, + "dependentFields": {}, + "feedEnabled": false, + "fields": { + "AccountId": { + "apiName": "AccountId", + "calculated": false, + "compound": false, + "compoundComponentName": null, + "compoundFieldName": null, + "controllerName": null, + "controllingFields": [], + "createable": true, + "custom": false, + "dataType": "Reference", + "extraTypeInfo": null, + "filterable": true, + "filteredLookupInfo": null, + "highScaleNumber": false, + "htmlFormatted": false, + "inlineHelpText": null, + "label": "Account ID", + "length": 18, + "nameField": false, + "polymorphicForeignKey": false, + "precision": 0, + "reference": true, + "referenceTargetField": null, + "referenceToInfos": [ + { + "apiName": "Account", + "nameFields": ["Name"] + } + ], + "relationshipName": "Account", + "required": false, + "scale": 0, + "searchPrefilterable": true, + "sortable": true, + "unique": false, + "updateable": true + } + }, + "keyPrefix": "0Hn", + "label": "Service Resource", + "labelPlural": "Service Resources", + "layoutable": true, + "mruEnabled": true, + "nameFields": ["Name"], + "queryable": true, + "recordTypeInfos": { + "012000000000000AAA": { + "available": true, + "defaultRecordTypeMapping": true, + "master": true, + "name": "Master", + "recordTypeId": "012000000000000AAA" + } + }, + "searchable": true, + "themeInfo": { + "color": "5867E8", + "iconUrl": "https://inbalorg-dev-ed.develop.my.salesforce.com/img/icon/t4v35/standard/service_resource_120.png" + }, + "updateable": true + } + } + ] +} diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js new file mode 100644 index 0000000..41cf1d0 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/__tests__/mobileMapLayersMain.test.js @@ -0,0 +1,56 @@ +import { createElement } from "lwc"; +import MobileMapLayersMain from "c/mobileMapLayersMain"; +import { graphql } from "lightning/uiGraphQLApi"; +import { getObjectInfos } from "lightning/uiObjectInfoApi"; + +let element; +const getObjectInfosResponse = require("./data/getObjectInfosResponse.json"); + +describe("c-mobile-map-layers-main", () => { + beforeEach(() => { + element = createElement("c-mobile-map-layers-main", { + is: MobileMapLayersMain + }); + + document.body.appendChild(element); + + graphql.emit({ + uiapi: { + query: { + ServiceResource: { + edges: [ + { + node: { + Id: "0HnB00000002TLwKAM", + LastKnownLatitude: { + value: 32.4 + }, + LastKnownLongitude: { + value: 34.9 + } + } + } + ] + } + } + } + }); + + getObjectInfos.emit(getObjectInfosResponse); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("should contain all 3 components", () => { + const mapFilters = element.shadowRoot.querySelector("c-map-filters"); + expect(mapFilters).not.toBeNull(); + const mobileMap = element.shadowRoot.querySelector("c-mobile-map"); + expect(mobileMap).not.toBeNull(); + const locationsList = element.shadowRoot.querySelector("c-locations-list"); + expect(locationsList).not.toBeNull(); + }); +}); diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js new file mode 100644 index 0000000..18c7bdb --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/config.js @@ -0,0 +1,23 @@ +export const config = { + mapObjects: [ + { + value: "ServiceAppointment", + latField: "Latitude", + longField: "Longitude", + titleField: "AppointmentNumber", + firstDetailField: "Subject", + secondDetailField: "Status", + thirdDetailField: "DurationInMinutes" + }, + { + value: "ServiceResource", + latField: "LastKnownLatitude", + longField: "LastKnownLongitude", + titleField: "Name", + firstDetailField: "ResourceType", + secondDetailField: "IsActive", + thirdDetailField: "Description" + } + ], + distanceUnit: "km" // Preferred distance unit: km or mi +}; diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css new file mode 100644 index 0000000..e56276e --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.css @@ -0,0 +1,32 @@ +.find-nearby-main-container { + position: relative; + width: 100%; + height: 100vh; + overflow: hidden; + background-color: white; +} + +.page { + position: absolute; + width: 100%; +} + +.filters-container { + position: absolute; + z-index: 3; + width: 100%; +} + +.map-container { + display: inline-block; + height: calc(85% + 70px); + padding: 0; + margin: 0; +} + +.locations-list-container { + z-index: 2; + height: 100%; + width: 100%; + pointer-events: none; +} diff --git a/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html new file mode 100644 index 0000000..98a5dfa --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.html @@ -0,0 +1,39 @@ + diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js similarity index 81% rename from FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js rename to projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js index d853ef3..b83425f 100644 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js @@ -1,32 +1,34 @@ -import { LightningElement, wire } from 'lwc'; -import { gql, graphql } from 'lightning/uiGraphQLApi'; -import { getObjectInfos } from 'lightning/uiObjectInfoApi'; -import { NavigationMixin } from 'lightning/navigation'; -import executeFilterQuery from '@salesforce/apex/MobileMapLayersService.executeFilterQuery'; -import Id from '@salesforce/user/Id'; -import { config } from './config'; -import ConfirmModal from 'c/confirmModal'; -import overrideCSS from './overrideCSS'; - -export default class MobileMapLayersMain extends NavigationMixin(LightningElement) { +import { LightningElement, wire } from "lwc"; +import { gql, graphql } from "lightning/uiGraphQLApi"; +import { getObjectInfos } from "lightning/uiObjectInfoApi"; +import { NavigationMixin } from "lightning/navigation"; +import executeFilterQuery from "@salesforce/apex/MobileMapLayersService.executeFilterQuery"; +import Id from "@salesforce/user/Id"; +import { config } from "./config"; +import ConfirmModal from "c/confirmModal"; +import overrideCSS from "./overrideCSS"; + +export default class MobileMapLayersMain extends NavigationMixin( + LightningElement +) { CONFIG = config; userId = Id; - resourceLocation = { lat: '0.0', lng: '0.0' }; + resourceLocation = { lat: "0.0", lng: "0.0" }; isResourceLocationSet = false; allMarkers = []; filteredMarkers = []; currentMarker; currentMarkerInd = 0; currentObjectFilter = { - value: '', - label: '', - plural: '', - iconUrl: '', - color: '', + value: "", + label: "", + plural: "", + iconUrl: "", + color: "" }; currentFieldFilter = { isActive: false, - field: { value: '', label: '', type: '', input: '' }, + field: { value: "", label: "", type: "", input: "" } }; fullQuery; init = false; @@ -35,9 +37,11 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen objQueries = []; connectedCallback() { - if (!['km', 'mi'].includes(this.CONFIG.distanceUnit)) this.CONFIG.distanceUnit = 'km'; + if (!["km", "mi"].includes(this.CONFIG.distanceUnit)) + this.CONFIG.distanceUnit = "km"; - const myStyle = document.createElement('style'); + const myStyle = document.createElement("style"); + // eslint-disable-next-line @lwc/lwc/no-inner-html myStyle.innerHTML = overrideCSS; document.head.appendChild(myStyle); } @@ -45,8 +49,10 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen renderedCallback() { if (!this.init) { this.init = true; - window.visualViewport?.addEventListener('resize', (e) => { - if (window.visualViewport.height === window.innerHeight) window.scrollTo(0, 0); + // eslint-disable-next-line no-unused-vars + window.visualViewport?.addEventListener("resize", (e) => { + if (window.visualViewport.height === window.innerHeight) + window.scrollTo(0, 0); }); } } @@ -75,7 +81,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen } } `, - variables: '$userIdVariable', + variables: "$userIdVariable" }) GetAssignedResourceLocation({ data, errors }) { if (data?.uiapi && !this.isResourceLocationSet) { @@ -87,7 +93,9 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen this.resourceLocation = { lat, lng }; } - this.template.querySelector('c-mobile-map')?.setResourceMarker(this.resourceLocation); + this.template + .querySelector("c-mobile-map") + ?.setResourceMarker(this.resourceLocation); this.isResourceLocationSet = true; this.addLocations(); @@ -106,18 +114,21 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen } } - @wire(getObjectInfos, { objectApiNames: '$queriedObjects' }) + @wire(getObjectInfos, { objectApiNames: "$queriedObjects" }) async getObjectInfos({ data, error }) { if (data) { const allObjResults = data.results; this.CONFIG.mapObjects.forEach(async (o, ind) => { - const objResult = allObjResults.find((r) => r.result?.apiName === o.value)?.result; + const objResult = allObjResults.find( + (r) => r.result?.apiName === o.value + )?.result; + // eslint-disable-next-line no-unused-vars const fields = Object.entries(objResult.fields).map(([_, value]) => ({ value: value.apiName, label: value.label, - type: value.dataType, + type: value.dataType })); o.fields = fields; @@ -135,7 +146,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen o.label = objResult.label; o.plural = objResult.labelPlural; o.iconUrl = objResult.themeInfo.iconUrl; - o.color = `#${objResult.themeInfo.color ?? '4bc076'}`; + o.color = `#${objResult.themeInfo.color ?? "4bc076"}`; o.infoReceived = true; this.objQueries.push(this.buildQueryForObject(o)); @@ -189,7 +200,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen const q = `query GetLocations { uiapi { query { - ${objQueries.join('\n')} + ${objQueries.join("\n")} } } }`; @@ -199,7 +210,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen }; @wire(graphql, { - query: '$fullQuery', + query: "$fullQuery" }) GetObjectLocationsResults({ data, errors }) { if (data) { @@ -218,7 +229,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen titleFieldValue: fieldsList[3], firstDetailFieldValue: fieldsList[4], secondDetailFieldValue: fieldsList[5], - thirdDetailFieldValue: fieldsList[6], + thirdDetailFieldValue: fieldsList[6] }); } this.addAllObjectsLocations(obj.value, records); @@ -252,7 +263,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen const marker = { location: { Latitude: lat, Longitude: long }, mapIcon: this.getMarkerSVG(objDetails.color), - value: { ...objDetails, ...recordDetails, navUrl, routeUrl, distance }, + value: { ...objDetails, ...recordDetails, navUrl, routeUrl, distance } }; this.addToMarkers(marker); } @@ -269,7 +280,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen try { ids = await executeFilterQuery({ currentObjectFilter: this.currentObjectFilter.value, - currentFieldFilter: this.currentFieldFilter.field, + currentFieldFilter: this.currentFieldFilter.field }); } catch (error) { this.handleError(error); @@ -291,8 +302,8 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen try { this.currentMarkerInd = ind; this.currentMarker = { ...this.filteredMarkers[ind] }; - this.template.querySelector('c-locations-list').currentMarkerSet(); - this.template.querySelector('c-mobile-map').currentMarkerSet(init); + this.template.querySelector("c-locations-list").currentMarkerSet(); + this.template.querySelector("c-mobile-map").currentMarkerSet(init); } catch (error) { this.handleError(error); } @@ -306,19 +317,19 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen let toOpen = true; if (this.isIos()) { toOpen = await ConfirmModal.open({ - content: 'Opening the record resets your search.', - header: 'Open Record?', - okButtonText: 'Open Record', - cancelButtonText: 'Cancel', + content: "Opening the record resets your search.", + header: "Open Record?", + okButtonText: "Open Record", + cancelButtonText: "Cancel" }); } if (toOpen) { this[NavigationMixin.Navigate]({ - type: 'standard__webPage', + type: "standard__webPage", attributes: { - url: this.filteredMarkers[index].value.navUrl, - }, + url: this.filteredMarkers[index].value.navUrl + } }); } }; @@ -326,10 +337,10 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen routeToMarkerLocation = (ind) => { const index = ind ?? this.currentMarkerInd; this[NavigationMixin.Navigate]({ - type: 'standard__webPage', + type: "standard__webPage", attributes: { - url: this.filteredMarkers[index].value.routeUrl, - }, + url: this.filteredMarkers[index].value.routeUrl + } }); }; @@ -349,7 +360,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen get userIdVariable() { return { - userId: this.userId, + userId: this.userId }; } @@ -372,22 +383,25 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen getDistance(lat1, lng1, lat2, lng2, distanceUnit) { const deg2rad = (deg) => deg * (Math.PI / 180); - const R = distanceUnit === 'mi' ? 3958.8 : 6371; // radius of earth + const R = distanceUnit === "mi" ? 3958.8 : 6371; // radius of earth const dLat = deg2rad(lat2 - lat1); const dLng = deg2rad(lng2 - lng1); const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + - Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.sin(dLng / 2) * Math.sin(dLng / 2); + Math.cos(deg2rad(lat1)) * + Math.cos(deg2rad(lat2)) * + Math.sin(dLng / 2) * + Math.sin(dLng / 2); const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return R * c; } isIos = () => { const isIpad = - navigator.userAgent.includes('Macintosh') && + navigator.userAgent.includes("Macintosh") && navigator.maxTouchPoints && navigator.maxTouchPoints > 1; - const isIphone = navigator.platform.includes('iPhone'); + const isIphone = navigator.platform.includes("iPhone"); return isIpad || isIphone; }; @@ -401,7 +415,7 @@ export default class MobileMapLayersMain extends NavigationMixin(LightningElemen `; - return 'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(icon); + return "data:image/svg+xml;charset=UTF-8," + encodeURIComponent(icon); } handleError(error) { diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml similarity index 90% rename from FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml index 75f7c95..e6373b3 100644 --- a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/mobileMapLayersMain.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 true @@ -16,4 +16,4 @@ ScreenAction - \ No newline at end of file + diff --git a/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/overrideCSS.js b/projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/overrideCSS.js similarity index 100% rename from FindNearby/force-app/main/default/lwc/mobileMapLayersMain/overrideCSS.js rename to projects/FindNearby/force-app/main/default/lwc/mobileMapLayersMain/overrideCSS.js diff --git a/projects/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js b/projects/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js new file mode 100644 index 0000000..52bd53e --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/objectIcon/__tests__/objectIcon.test.js @@ -0,0 +1,34 @@ +import { createElement } from "lwc"; +import ObjectIcon from "c/objectIcon"; + +describe("c-object-icon", () => { + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("should produce component with the provided values", () => { + const element = createElement("c-object-icon", { + is: ObjectIcon + }); + + element.iconUrl = "https://moble-map-layers-test.com"; + element.color = "#123456"; + document.body.appendChild(element); + + const img = element.shadowRoot.querySelector("img"); + expect(img.src).toBe("https://moble-map-layers-test.com/"); + }); + + it("should produce component with the default icon", () => { + const element = createElement("c-object-icon", { + is: ObjectIcon + }); + + document.body.appendChild(element); + + const icon = element.shadowRoot.querySelector("lightning-icon"); + expect(icon.iconName).toBe("standard:address"); + }); +}); diff --git a/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css new file mode 100644 index 0000000..a2e62d2 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.css @@ -0,0 +1,10 @@ +.lightning-icon-container { + display: flex; + align-items: flex-start; +} + +.icon { + height: 24px; + width: 24px; + border-radius: 4px; +} diff --git a/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html new file mode 100644 index 0000000..6005565 --- /dev/null +++ b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.html @@ -0,0 +1,13 @@ + diff --git a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js similarity index 80% rename from FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js rename to projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js index ee32db3..a93fa85 100644 --- a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js +++ b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class ObjectIcon extends LightningElement { @api iconUrl; diff --git a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml similarity index 67% rename from FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml rename to projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml index eac275d..e013881 100644 --- a/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml +++ b/projects/FindNearby/force-app/main/default/lwc/objectIcon/objectIcon.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modal.js b/projects/FindNearby/force-app/test/jest-mocks/lightning/modal.js similarity index 64% rename from FindNearby/force-app/test/jest-mocks/lightning/modal.js rename to projects/FindNearby/force-app/test/jest-mocks/lightning/modal.js index ee04736..a2eabbe 100644 --- a/FindNearby/force-app/test/jest-mocks/lightning/modal.js +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modal.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class LightningModal extends LightningElement { @api close; diff --git a/projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.html @@ -0,0 +1 @@ + diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.js similarity index 60% rename from MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js rename to projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.js index 2ef978f..b820da7 100644 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalBody.js @@ -1,3 +1,3 @@ -import { LightningElement } from 'lwc'; +import { LightningElement } from "lwc"; export default class ModalBody extends LightningElement {} diff --git a/projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.html @@ -0,0 +1 @@ + diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js similarity index 60% rename from FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js rename to projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js index c4a4708..31663a7 100644 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalFooter.js @@ -1,3 +1,3 @@ -import { LightningElement } from 'lwc'; +import { LightningElement } from "lwc"; export default class ModalFooter extends LightningElement {} diff --git a/projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.html @@ -0,0 +1 @@ + diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js similarity index 63% rename from FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js rename to projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js index 2268506..4616b71 100644 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/modalHeader.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class ModalHeader extends LightningElement { @api label; diff --git a/FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js b/projects/FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js similarity index 89% rename from FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js rename to projects/FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js index 7d115f3..eb4e350 100644 --- a/FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js +++ b/projects/FindNearby/force-app/test/jest-mocks/lightning/uiGraphQLApi.js @@ -4,7 +4,7 @@ * SPDX-License-Identifier: MIT * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT */ -import { createTestWireAdapter } from '@salesforce/wire-service-jest-util'; +import { createTestWireAdapter } from "@salesforce/wire-service-jest-util"; export class graphql extends createTestWireAdapter() { static emit(value, filterFn) { diff --git a/projects/FindNearby/jest.config.js b/projects/FindNearby/jest.config.js new file mode 100644 index 0000000..0a5775d --- /dev/null +++ b/projects/FindNearby/jest.config.js @@ -0,0 +1,17 @@ +const { jestConfig } = require("@salesforce/sfdx-lwc-jest/config"); + +module.exports = { + ...jestConfig, + modulePathIgnorePatterns: ["/.localdevserver"], + moduleNameMapper: { + "^lightning/modal$": "/force-app/test/jest-mocks/lightning/modal", + "^lightning/modalBody$": + "/force-app/test/jest-mocks/lightning/modalBody", + "^lightning/modalFooter$": + "/force-app/test/jest-mocks/lightning/modalFooter", + "^lightning/modalHeader$": + "/force-app/test/jest-mocks/lightning/modalHeader", + "^lightning/uiGraphQLApi$": + "/force-app/test/jest-mocks/lightning/uiGraphQLApi" + } +}; diff --git a/DriverLicenseParser/package.json b/projects/FindNearby/package.json similarity index 58% rename from DriverLicenseParser/package.json rename to projects/FindNearby/package.json index c8b953b..15eb8b5 100644 --- a/DriverLicenseParser/package.json +++ b/projects/FindNearby/package.json @@ -1,8 +1,8 @@ { - "name": "salesforce-app", + "name": "find-nearby", "private": true, "version": "1.0.0", - "description": "Salesforce App", + "description": "Find Nearby", "scripts": { "lint": "eslint **/lwc/**", "test": "npm run test:unit", @@ -14,16 +14,16 @@ "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" }, "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.10.0" + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" } } diff --git a/projects/FindNearby/sfdx-project.json b/projects/FindNearby/sfdx-project.json new file mode 100644 index 0000000..aa31486 --- /dev/null +++ b/projects/FindNearby/sfdx-project.json @@ -0,0 +1,12 @@ +{ + "packageDirectories": [ + { + "path": "force-app", + "default": true + } + ], + "name": "FindNearby", + "namespace": "", + "sfdcLoginUrl": "https://login.salesforce.com/", + "sourceApiVersion": "55.0" +} diff --git a/HelloWorld/.eslintignore b/projects/FollowUpAppointment/.eslintignore similarity index 100% rename from HelloWorld/.eslintignore rename to projects/FollowUpAppointment/.eslintignore diff --git a/HelloWorld/.prettierignore b/projects/FollowUpAppointment/.prettierignore similarity index 87% rename from HelloWorld/.prettierignore rename to projects/FollowUpAppointment/.prettierignore index f3720b2..26253eb 100755 --- a/HelloWorld/.prettierignore +++ b/projects/FollowUpAppointment/.prettierignore @@ -7,4 +7,6 @@ .sfdx .vscode -coverage/ \ No newline at end of file +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/HelloWorld/.prettierrc b/projects/FollowUpAppointment/.prettierrc similarity index 78% rename from HelloWorld/.prettierrc rename to projects/FollowUpAppointment/.prettierrc index 15683b6..03da7ba 100755 --- a/HelloWorld/.prettierrc +++ b/projects/FollowUpAppointment/.prettierrc @@ -1,5 +1,6 @@ { "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], "overrides": [ { "files": "**/lwc/**/*.html", diff --git a/projects/FollowUpAppointment/README.md b/projects/FollowUpAppointment/README.md new file mode 100644 index 0000000..39f49a3 --- /dev/null +++ b/projects/FollowUpAppointment/README.md @@ -0,0 +1,47 @@ +## Set Up the Follow-Up Appointment Lightning Web Component (LWC) + +Let your mobile workers create and schedule follow-up appointments for customers directly from the mobile app, without contacting customer services. + +Note: Follow-Up Appointment LWC is an open-source component and is not supported by Salesforce Support. + +1. To install the package, click + https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1Q0000012BwaQAE. +2. Enable access to LWCs. See [Define a Permission Set for Your Org](https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/quickstart_lwc_action_org_setup.htm#quickstart_lwc_action_org_setup_create_permset). +3. Enable the permission sets. + 1. From Setup, in the Quick Find box, enter Users, and then select **Users**. + 2. Select the required user. + 3. Under Permission Set Assignments, click **Edit Assignments**. + 4. Enable these permission sets: + - Field Service Agent License + - Field Service Agent Permissions + - Field Service Mobile License + - Field Service Resource License + - Field Service Resource Permissions + - Field Service Follow-Up Appointment Permissions +4. Grant access to Apex classes. + 1. From Setup, in the Quick Find box, enter `Custom Code`, and then select **Apex Classes**. + 2. For FollowUpAppointmentController, click **Security**. + 3. Add the relevant profiles to the Enabled Profiles list. +5. From the App Launcher, find and select **Follow-Up Appointment Settings**. +6. Configure the LWC. + + 1. In the Settings tab, determine which appointment slots the mobile worker sees and determine who the work can be assigned to and what kind of work they can create. + If you choose to let mobile workers create the service appointment, only a service appointment is created. If you choose to let mobile workers create work orders or work order line items, a service appointment is created automatically. A service appointment is created regardless of the Auto-Create Service Appointment setting for the work type. + + *Tip:* To control whether the service appointment can be assigned only to the mobile worker in the app, make sure that your scheduling policy includes the **Field Service - Required Resources work rule**. + + 2. In the Mobile Workflow tab, configure up to four steps. + - To add the address, use the fields that compose the address, such as City and Street. + - Lookup fields appear as read-only fields for the mobile user. + +7. Add the component to the Work Order record page to troubleshoot the setup. + 1. From a Work Order record page in Field Service, click the settings icon and select Edit Page. + 2. In Lightning App Builder, drag the Follow-Up Appointment component onto the layout. + 3. Save your changes. + 4. Log in to the org with a user that is a Service Resource (mobile worker) and check the process end to end. + 5. If you encounter an issue with the component, click F12 to check the console logs. +8. Connect the LWC to a quick action on the Work Order, or Work Order Line Item object. See [Create Quick Actions for the Field Service Mobile App](https://help.salesforce.com/s/articleView?id=sf.mfs_quick_actions.htm&type=5). + 1. For Action Type, select **Lightning Web Components**. + 2. For Lightning Web Component, select **c:followUpAppointmentMain**. +9. Add the quick action to the required layout. +10. Log in to the Field Service mobile app as a mobile user and open the LWC to verify that everything works as expected on a mobile device. diff --git a/projects/FollowUpAppointment/config/project-scratch-def.json b/projects/FollowUpAppointment/config/project-scratch-def.json new file mode 100644 index 0000000..f04b851 --- /dev/null +++ b/projects/FollowUpAppointment/config/project-scratch-def.json @@ -0,0 +1,34 @@ +{ + "orgName": "Demo company", + "namespace": "", + "template": "trialforce", + "features": [ + "EnableSetPasswordInApi", + "FieldService:10", + "FieldServiceAppointmentAssistantUser:10", + "EnableSetPasswordInApi", + "Communities" + ], + + "settings": { + "communitiesSettings": { + "enableNetworksEnabled": true, + "enableCommunityWorkspaces": true + }, + "lightningExperienceSettings": { + "enableS1DesktopEnabled": true + }, + "fieldServiceSettings": { + "fieldServiceOrgPref": true, + "optimizationServiceAccess": true + }, + "mobileSettings": { + "enableS1EncryptedStoragePref2": false + }, + "languageSettings": { + "enableTranslationWorkbench": true, + "enableEndUserLanguages": true, + "enablePlatformLanguages": true + } + } +} diff --git a/FollowUpAppointment/force-app/main/default/Assets/SFS_FollowupAppointmentPerm.permissionset-meta.xml b/projects/FollowUpAppointment/force-app/main/default/Assets/SFS_FollowupAppointmentPerm.permissionset-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/Assets/SFS_FollowupAppointmentPerm.permissionset-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/Assets/SFS_FollowupAppointmentPerm.permissionset-meta.xml diff --git a/projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls b/projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls new file mode 100644 index 0000000..a7fc04d --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls @@ -0,0 +1,2563 @@ +public without sharing class FollowUpAppointmentController { + public FollowUpAppointmentController() { + } + private static final String UNAUTH_MSG = 'User is not allowed to perform this operation.'; + + @AuraEnabled + public static Decimal getWorkTypeOffset(String workTypeName) { + workTypeName = sanitizeFieldValues(workTypeName); + try { + WorkType wt = [ + SELECT FSL__Due_Date_Offset__c + FROM WorkType + WHERE Name = :workTypeName + ][0]; + System.debug('workType ' + wt); + return wt.FSL__Due_Date_Offset__c; + } catch (Exception e) { + return -1; + } + } + + @AuraEnabled + public static Map getServiceAppointment( + String serviceAppointmentId + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + Map serviceAppointmentInfo = new Map(); + + try { + ServiceAppointment sa = [ + SELECT + Id, + Contact.FirstName, + Contact.LastName, + Contact.Phone, + Status, + Address, + WorkType.Name, + Subject, + EarliestStartTime, + ArrivalWindowStartTime, + ArrivalWindowEndTime, + SchedStartTime, + SchedEndTime, + DueDate, + Description, + AppointmentNumber, + ServiceTerritoryId + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + + if (sa.ServiceTerritoryId != null) { + ServiceTerritory st = [ + SELECT OperatingHoursId + FROM ServiceTerritory + WHERE ID = :sa.ServiceTerritoryId + ][0]; + OperatingHours oh = [ + SELECT TimeZone + FROM OperatingHours + WHERE ID = :st.OperatingHoursID + ][0]; + serviceAppointmentInfo.put('ServiceTerritoryTimeZone', oh.TimeZone); + } + + Address addr = sa.Address; + String customerAddress = ''; + if (addr != null) { + if (addr.Street != null) + customerAddress = customerAddress + addr.Street + ' '; + if (addr.City != null) + customerAddress = customerAddress + addr.City + ' '; + if (addr.State != null) + customerAddress = customerAddress + addr.State + ' '; + if (addr.PostalCode != null) + customerAddress = customerAddress + addr.PostalCode + ' '; + if (addr.Country != null) + customerAddress = customerAddress + addr.Country + ' '; + } + + serviceAppointmentInfo.put('serviceAppointmentId', serviceAppointmentId); + serviceAppointmentInfo.put('CustomerFirstName', sa.Contact.FirstName); + serviceAppointmentInfo.put('CustomerLastName', sa.Contact.LastName); + serviceAppointmentInfo.put('CustomerPhone', sa.Contact.Phone); + serviceAppointmentInfo.put('ServiceAppointmentStatus', sa.Status); + serviceAppointmentInfo.put('CustomerAddress', customerAddress); + serviceAppointmentInfo.put('WorkTypeName', sa.WorkType.Name); + serviceAppointmentInfo.put('ServiceAppointmentSubject', sa.Subject); + serviceAppointmentInfo.put( + 'EarliestStartTime', + '' + sa.EarliestStartTime + ); + serviceAppointmentInfo.put( + 'ArrivalWindowStartTime', + '' + sa.ArrivalWindowStartTime + ); + serviceAppointmentInfo.put( + 'ArrivalWindowEndTime', + '' + sa.ArrivalWindowEndTime + ); + serviceAppointmentInfo.put('SchedStartTime', '' + sa.SchedStartTime); + serviceAppointmentInfo.put('SchedEndTime', '' + sa.SchedEndTime); + serviceAppointmentInfo.put('DueDate', '' + sa.DueDate); + serviceAppointmentInfo.put( + 'ServiceAppointmentDescription', + sa.Description + ); + serviceAppointmentInfo.put('AppointmentNumber', sa.AppointmentNumber); + } catch (Exception e) { + serviceAppointmentInfo.put( + 'error', + 'SA not found: ' + e.getMessage() + ', ' + e.getLineNumber() + ); + } + + try { + AssignedResource ar = [ + SELECT Id, ServiceResourceId + FROM AssignedResource + WHERE ServiceAppointmentId = :serviceAppointmentId + ][0]; + + ServiceResource sr = [ + SELECT Id, Name + FROM ServiceResource + WHERE Id = :ar.ServiceResourceId + ][0]; + serviceAppointmentInfo.put('ServiceResourceName', sr.Name); + } catch (Exception e) { + serviceAppointmentInfo.put( + 'error', + 'ServiceResource or AssignedResource not found: ' + + e.getMessage() + + ', ' + + e.getLineNumber() + ); + } + + return serviceAppointmentInfo; + } + + @AuraEnabled + public static Map getSlots( + String serviceAppointmentId, + Id operatingHoursId, + Id schedulingPolicyId, + Boolean arrivalWindowFlag, + String localetimezone + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + localetimezone = sanitizeFieldValues(localetimezone); + + Map slotsList = new Map(); + + try { + if (serviceAppointmentId != null) { + ServiceAppointment sa = [ + SELECT Id, ServiceTerritoryId + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + Timezone timeZone = Timezone.getTimeZone(localetimezone); + if (timeZone == null) { + timeZone = UserInfo.getTimeZone(); + } + slotsList.put('timeZone', +timeZone.getId()); + + if (sa.ServiceTerritoryId != null) { + ServiceTerritory st = [ + SELECT OperatingHoursId + FROM ServiceTerritory + WHERE ID = :sa.ServiceTerritoryId + ][0]; + OperatingHours oh = [ + SELECT TimeZone + FROM OperatingHours + WHERE ID = :st.OperatingHoursID + ][0]; + timeZone = System.Timezone.getTimeZone(oh.TimeZone); + slotsList.put('timeZone', +timeZone.getId()); + } + + List timeSlots = FSL.AppointmentBookingService.GetSlots( + serviceAppointmentId, + schedulingPolicyId, + operatingHoursId, + timeZone, + arrivalWindowFlag + ); + + slotsList.put('list', timeSlots); + List timeSlotRange = new List(); + + for (integer i = 0; i < timeSlots.size(); i++) { + timeSlotRange.add( + timeSlots[i].Interval.Start + + '#' + + timeSlots[i].Interval.Finish + + '#' + + (timeSlots[i].Grade).longValue() + ); + } + slotsList.put('timeSlotList', timeSlotRange); + } else { + slotsList.put('error', 'Invalid SA ID or token expired'); + } + return slotsList; + } catch (Exception e) { + slotsList.put('error', '' + e.getMessage()); + return slotsList; + } + } + + @AuraEnabled + public static Map getSlotsByAssignmentMethod( + String serviceAppointmentId, + Id operatingHoursId, + Id schedulingPolicyId, + Boolean arrivalWindowFlag, + String localetimezone + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + localetimezone = sanitizeFieldValues(localetimezone); + try { + return getSlots( + serviceAppointmentId, + operatingHoursId, + schedulingPolicyId, + arrivalWindowFlag, + localetimezone + ); + } catch (Exception e) { + throw new AuraHandledException( + 'Error in getSlotsByAssignmentMethod:::' + e.getMessage() + ); + } + } + + @AuraEnabled + public static Map scheduleSA( + String serviceAppointmentId, + String schedulingPolicyId + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + schedulingPolicyId = sanitizeFieldValues(schedulingPolicyId); + Map updateStatusArray = new Map(); + + try { + FSL.ScheduleResult myResult = new FSL.ScheduleResult(); + + if (!Test.isRunningTest()) { + // avoid unit test to cover schedule SA + myResult = FSL.ScheduleService.schedule( + schedulingPolicyId, + serviceAppointmentId + ); + } + updateStatusArray.put('success', '' + myResult); + + return updateStatusArray; + } catch (Exception e) { + throw new AuraHandledException( + 'Error in scheduleSA:::' + e.getMessage() + ' ' + e.getLineNumber() + ); + } + } + + @AuraEnabled + public static Map updateSASlot( + String serviceAppointmentId, + DateTime arrivalWindowStartTime, + DateTime arrivalWindowEndTime + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + Map updateStatusArray = new Map(); + + try { + ServiceAppointment sa = [ + SELECT Id + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() + ) { + sa.ArrivalWindowStartTime = arrivalWindowStartTime; + sa.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + updateStatusArray.put( + 'DML', + 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime' + ); + + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update sa; + } else + updateStatusArray.put( + 'DML', + 'Permission denied to update ServiceAppointment' + ); + + updateStatusArray.put('success', 'Appointment Updated'); + } catch (Exception e) { + updateStatusArray.put('error', '' + e); + } + + return updateStatusArray; + } + + @AuraEnabled + public static Map updateServiceAppointmentStatus( + String serviceAppointmentId, + String statusId + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + statusId = sanitizeFieldValues(statusId); + Map updateStatusArray = new Map(); + + try { + ServiceAppointment sa = [ + SELECT Id + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + + if (Schema.sObjectType.ServiceAppointment.fields.Status.isUpdateable()) { + sa.Status = statusId; + } else + updateStatusArray.put('DML', 'Permission denied to update Status'); + + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update sa; + } else + updateStatusArray.put( + 'DML', + 'Permission denied to update ServiceAppointment' + ); + + updateStatusArray.put('success', 'Appointment Updated'); + } catch (Exception e) { + updateStatusArray.put('error', '' + e.getMessage()); + } + + return updateStatusArray; + } + + @AuraEnabled + public static Map updateSA( + String serviceAppointmentId, + DateTime earliestStartDate, + DateTime arrivalStartDate, + DateTime arrivalEndDate + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + Map newSaArray = new Map(); + + try { + if (serviceAppointmentId != null) { + ServiceAppointment sa = [ + SELECT Id, EarliestStartTime + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + if (sa != null) { + if ( + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + sa.EarliestStartTime = earliestStartDate; + sa.ArrivalWindowEndTime = arrivalEndDate; + sa.ArrivalWindowStartTime = arrivalStartDate; + } else + newSaArray.put( + 'DML', + 'Permission denied to update EarliestStartTime, ArrivalWindowEndTime, ArrivalWindowStartTime' + ); + + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update sa; + } else + newSaArray.put( + 'DML', + 'Permission denied to update ServiceAppointment' + ); + + newSaArray.put('success', 'service appointment updated'); + } else { + newSaArray.put('error', 'Unable to find service appointment'); + } + } else { + newSaArray.put('error', 'No service appointment found'); + } + } catch (Exception e) { + newSaArray.put('error', '' + e.getMessage()); + return newSaArray; + } + return newSaArray; + } + + @AuraEnabled + public static String deleteExistingRequiredResources(String workOrderId) { + workOrderId = sanitizeFieldValues(workOrderId); + String response; + try { + List requiredResourcePreferenceList = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE RelatedRecordId = :workOrderId AND PreferenceType = :'Required' + ]; + if (!requiredResourcePreferenceList.isEmpty()) { + delete requiredResourcePreferenceList; + } + response = 'success'; + } catch (Exception e) { + response = '**ERROR** ' + e.getMessage(); + throw new AuraHandledException( + 'Error in deleteExistingRequiredResources:::' + e.getMessage() + ); + } + return response; + } + + @AuraEnabled + public static String deleteExistingResourcePreferencesForResource( + String workOrderId, + String serviceResourceId + ) { + workOrderId = sanitizeFieldValues(workOrderId); + serviceResourceId = sanitizeFieldValues(serviceResourceId); + String response; + try { + List resourcePreferenceList = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE + RelatedRecordId = :workOrderId + AND ServiceResourceId = :serviceResourceId + ]; + if (!resourcePreferenceList.isEmpty()) { + delete resourcePreferenceList; + } + response = 'success'; + } catch (Exception e) { + response = '**ERROR** ' + e.getMessage(); + throw new AuraHandledException( + 'Error in deleteExistingResourcePreferencesForResource:::' + + e.getMessage() + ); + } + return response; + } + + @AuraEnabled + public static String addNewRequiredResource( + String workOrderId, + String serviceResourceId + ) { + workOrderId = sanitizeFieldValues(workOrderId); + serviceResourceId = sanitizeFieldValues(serviceResourceId); + String response; + try { + List existingResourcePreference = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE + RelatedRecordId = :workOrderId + AND ServiceResourceId = :serviceResourceId + ]; + + if ( + existingResourcePreference == null || + existingResourcePreference.IsEmpty() + ) { + ResourcePreference techReq = new ResourcePreference( + PreferenceType = 'Required', + RelatedRecordId = workOrderId, + ServiceResourceId = serviceResourceId + ); + insert techReq; + response = 'success'; + } else if (existingResourcePreference[0].PreferenceType != 'Required') { + existingResourcePreference[0].PreferenceType = 'Required'; + update existingResourcePreference; + response = 'success'; + } + } catch (Exception e) { + response = '**ERROR** ' + e.getMessage(); + throw new AuraHandledException( + 'Error in addNewRequiredResource resource ' + + serviceResourceId + + ' : ' + + e.getMessage() + ); + } + return response; + } + + @AuraEnabled + public static Map assignCurrentUserAsRequiredResource( + String serviceAppointmentId, + String currentAssignmentMethod + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + currentAssignmentMethod = sanitizeFieldValues(currentAssignmentMethod); + try { + Map resultArray = new Map(); + String serviceResourceId = [ + SELECT Id + FROM ServiceResource + WHERE RelatedRecordId = :Userinfo.getUserId() + ][0] + ?.Id; + String workOrderId = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE Id = :serviceAppointmentId + ][0] + ?.ParentRecordId; + + if (workOrderId != null && serviceResourceId != null) { + if (ServiceResource.sObjectType.getDescribe().isUpdateable()) { + resultArray.put( + 'deleteExistingRequiredResources: ', + deleteExistingRequiredResources(workOrderId) + ); + } else + resultArray.put('DML', 'Permission denied to delete ServiceResource'); + if (ServiceResource.sObjectType.getDescribe().isUpdateable()) { + resultArray.put( + 'deleteExistingResourcePreferencesForResource: ', + deleteExistingResourcePreferencesForResource( + workOrderId, + serviceResourceId + ) + ); + } else + resultArray.put('DML', 'Permission denied to delete ServiceResource'); + if (currentAssignmentMethod == 'assignToMe') { + if (ServiceResource.sObjectType.getDescribe().isCreateable()) { + if (ServiceResource.sObjectType.getDescribe().isUpdateable()) { + resultArray.put( + 'addNewRequiredResource: ', + addNewRequiredResource(workOrderId, serviceResourceId) + ); + List resourcePreferenceList = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE + RelatedRecordId = :workOrderId + AND PreferenceType = :'Required' + ]; + if ( + resourcePreferenceList != null && + resourcePreferenceList.size() == 1 + ) { + resultArray.put('success', serviceResourceId); + } else { + resultArray.put('error', serviceResourceId); + } + } else + resultArray.put( + 'DML', + 'Permission denied to update ServiceResource' + ); + } else + resultArray.put( + 'DML', + 'Permission denied to create ServiceResource' + ); + } + } else { + resultArray.put('error', serviceResourceId); + } + + return resultArray; + } catch (Exception e) { + throw new AuraHandledException( + 'Error in assignCurrentUserAsRequiredResource:::' + e.getMessage() + ); + } + } + + @AuraEnabled + public static Map isUserExcludedResource( + String serviceAppointmentId + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + Map results = new Map(); + + try { + String serviceResourceId = [ + SELECT Id + FROM ServiceResource + WHERE RelatedRecordId = :Userinfo.getUserId() + ][0] + ?.Id; + String workOrderId = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE Id = :serviceAppointmentId + ][0] + ?.ParentRecordId; + results.put('serviceResourceId', serviceResourceId != null); + results.put('workOrderId', workOrderId != null); + + if (serviceResourceId != null && workOrderId != null) { + List resourcePreference = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE + ServiceResourceId = :serviceResourceId + AND RelatedRecordId = :workOrderId + ]; + if (!resourcePreference.isEmpty()) { + resourcePreference tech = resourcePreference[0]; + if ( + (String) tech.get('PreferenceType') != null && + (String) tech.get('PreferenceType') == 'Excluded' + ) { + results.put('success', true); + } else { + results.put('success', false); + } + } + } else { + results.put('error', false); + } + } catch (Exception e) { + results.put('error ' + e.getMessage() + ', ' + e.getLineNumber(), false); + throw new AuraHandledException( + 'Error in isUserExcludedResource:::' + + e.getMessage() + + ', ' + + e.getLineNumber() + ); + } + + return results; + } + + @AuraEnabled + public static Map cloneWorkOrder( + String originalSaId, + DateTime startPermitDate, + DateTime maxValidCalendarDate, + String dummySA, + String dummyWO + ) { + originalSaId = sanitizeFieldValues(originalSaId); + dummySA = sanitizeFieldValues(dummySA); + dummyWO = sanitizeFieldValues(dummyWO); + Map results = new Map(); + + try { + ServiceAppointment originalSa = [ + SELECT + Id, + WorkTypeId, + EarliestStartTime, + ArrivalWindowStartTime, + ArrivalWindowEndTime, + SchedStartTime, + SchedEndTime, + DueDate, + ServiceTerritoryId, + Address, + ParentRecordId + FROM ServiceAppointment + WHERE ID = :originalSaId + ][0]; + + DateTime dueDate = originalSa.DueDate; + if (dummySA != null) { + //update existing startdate and due date + updateDummySa( + dummySA, + startPermitDate, + maxValidCalendarDate, + originalSa.ServiceTerritoryId + ); + results.put('dummyServiceAppointmentId', dummySA); + results.put('dummyWorkOrderId', dummyWO); + } else { + String originalWOId = originalSa.ParentRecordId; + + Address address = originalSa.Address; + + String newWOId = createNewDummyWorkOrder( + originalSa.ServiceTerritoryId, + originalSa.WorkTypeId, + originalWOId + ); + + if (String.isNotEmpty(newWOId)) { + List saList = [ + SELECT Id + FROM ServiceAppointment + WHERE ParentRecordId = :newWOId + ]; + if (saList.size() == 0) { + ServiceAppointment sa = new ServiceAppointment(); + if ( + Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ServiceTerritoryId.isUpdateable() + ) { + sa.ParentRecordId = newWOId; + sa.DueDate = dueDate; + sa.EarliestStartTime = startPermitDate; + sa.ServiceTerritoryId = originalSa.ServiceTerritoryId; + } else + results.put( + 'DML', + 'Permission denied to update DueDate, EarliestStartTime, ServiceTerritoryId' + ); + if (ServiceAppointment.sObjectType.getDescribe().isCreateable()) { + insert sa; + results.put('dummyServiceAppointmentId', sa.Id); + results.put('dummyWorkOrderId', newWOId); + } else + results.put( + 'DML', + 'Permission denied to create ServiceAppointment' + ); + } else { + ServiceAppointment sa = saList[0]; + updateDummySa( + sa.Id, + startPermitDate, + maxValidCalendarDate, + originalSa.ServiceTerritoryId + ); + results.put('dummyServiceAppointmentId', sa.Id); + results.put('dummyWorkOrderId', newWOId); + } + //Clone resource preference list + String workOrderId = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE Id = :originalSAId + ][0] + ?.ParentRecordId; + + // cloneResourcePreference(workOrderId, newWOId); + } + } + + return results; + } catch (Exception e) { + results.put( + 'error', + 'Error in clone work order:::' + e.getMessage() + e.getLineNumber() + ); + return results; + } + } + + @AuraEnabled + public static string deleteClonedResourcePreference( + String clonedEorkOrderId + ) { + clonedEorkOrderId = sanitizeFieldValues(clonedEorkOrderId); + try { + List resourcePreferenceList = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE RelatedRecordId = :clonedEorkOrderId + ]; + + if (!resourcePreferenceList.isEmpty()) { + if (ServiceResource.sObjectType.getDescribe().isUpdateable()) { + delete resourcePreferenceList; + } else + return ('error: Permission denied to update ServiceResource'); + } + + return clonedEorkOrderId; + } catch (Exception e) { + throw new AuraHandledException(e.getMessage()); + } + } + + @AuraEnabled + public static string deleteClonedWorkOrder(String clonedEorkOrderId) { + clonedEorkOrderId = sanitizeFieldValues(clonedEorkOrderId); + try { + WorkOrder wo = [ + SELECT Id + FROM WorkOrder + WHERE Id = :clonedEorkOrderId + ][0]; + + if (wo != null) { + if (WorkOrder.sObjectType.getDescribe().isDeletable()) { + delete wo; + } else + return 'error: Permission denied to delete WorkOrder - deleteClonedWorkOrder'; + + return wo.Id; + } else { + return ''; + } + } catch (Exception e) { + throw new AuraHandledException(e.getMessage()); + } + } + + // @AuraEnabled + // public static string cloneResourcePreference(String workOrderId, String newWOId){ + // try { + + // List resourcePreferenceList = [SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId FROM ResourcePreference WHERE RelatedRecordId =: workOrderId]; + + // if(!resourcePreferenceList.isEmpty()){ + // //copy list + // if(ServiceResourcePreference.sObjectType.getDescribe().isCreateable()) { + // for (ResourcePreference tech : resourcePreferenceList){ + // copyResourcePreferenceObject(tech, newWOId); + // } + // } else return 'Error: Permission denied to create ServiceResourcePreference'; + // } + + // return newWOId; + // } catch (Exception e) { + // throw new AuraHandledException(e.getMessage()); + // } + // } + + @AuraEnabled + public static void copyResourcePreferenceObject( + ResourcePreference originalRFObj, + String newWO + ) { + newWO = sanitizeFieldValues(newWO); + try { + ResourcePreference RFCopy = new ResourcePreference( + PreferenceType = originalRFObj.PreferenceType, + RelatedRecordId = newWO, + ServiceResourceId = originalRFObj.serviceResourceId + ); + if (!Test.isRunningTest()) { + insert RFCopy; + } + } catch (Exception e) { + throw new AuraHandledException( + 'Error in copyResourcePreferenceObject::: ' + + newWO + + ' ' + + originalRFObj.serviceResourceId + + e.getMessage() + ); + } + } + + @AuraEnabled + public static Map deleteClonedAppointmentData( + String clonedServiceAppointmentId + ) { + clonedServiceAppointmentId = sanitizeFieldValues( + clonedServiceAppointmentId + ); + Map result = new Map(); + try { + ServiceAppointment sa = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE Id = :clonedServiceAppointmentId + ][0]; + + if (sa != null) { + String woid = sa.ParentRecordId; + WorkOrder wo = [SELECT Id FROM WorkOrder WHERE Id = :woid][0]; + if (ServiceAppointment.sObjectType.getDescribe().isDeletable()) { + delete sa; + } else + result.put( + 'error1', + 'Permission denied to delete ServiceAppointment - deleteClonedAppointmentData' + ); + + if (wo != null && String.isNotEmpty(woid)) { + //delete after + List resourcePreferenceList = [ + SELECT Id, PreferenceType, RelatedRecordId, ServiceResourceId + FROM ResourcePreference + WHERE RelatedRecordId = :woid + ]; + if (resourcePreferenceList != null) { + if (ServiceResource.sObjectType.getDescribe().isUpdateable()) { + delete resourcePreferenceList; + } else + result.put( + 'error2', + 'Permission denied to update ServiceResource - deleteClonedAppointmentData' + ); + } + if (WorkOrder.sObjectType.getDescribe().isDeletable()) { + delete wo; + } else + result.put( + 'error3', + 'Permission denied to delete WorkOrder - deleteClonedAppointmentData' + ); + result.put('success', 'Sa: ' + sa.id + ' WO: ' + woid); + } + } + + return result; + } catch (Exception e) { + result.put('error', e.getMessage()); + return result; + } + } + + @AuraEnabled + public static Map updateDummySa( + String dummySA, + DateTime startPermitDate, + DateTime maxValidCalendarDate, + String serviceTerritoryId + ) { + dummySA = sanitizeFieldValues(dummySA); + serviceTerritoryId = sanitizeFieldValues(serviceTerritoryId); + try { + Map results = new Map(); + + ServiceAppointment sa = [ + SELECT Id, ServiceTerritoryId + FROM ServiceAppointment + WHERE Id = :dummySA + ][0]; + if (sa != null) { + if ( + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() + ) { + sa.EarliestStartTime = startPermitDate; + sa.DueDate = maxValidCalendarDate; + } else + results.put( + 'DML', + 'Permission denied to update EarliestStartTime, DueDate' + ); + + if (String.isNotEmpty(serviceTerritoryId)) { + if ( + Schema.sObjectType.ServiceAppointment.fields.ServiceTerritoryId.isUpdateable() + ) { + sa.ServiceTerritoryId = serviceTerritoryId; + } else + results.put( + 'DML', + 'Permission denied to update ServiceTerritoryId' + ); + } + + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update sa; + } else + results.put('DML', 'Permission denied to update ServiceAppointment'); + + results.put('said', sa.Id); + } else { + results.put('error', 'Could not find dummySa'); + } + + return results; + } catch (Exception e) { + Map results = new Map(); + results.put('error', e.getMessage() + e.getLineNumber()); + return results; + } + } + + @AuraEnabled + public static string createNewDummyWorkOrder( + String serviceTerritoryId, + String workTypeId, + String originalWOId + ) { + serviceTerritoryId = sanitizeFieldValues(serviceTerritoryId); + workTypeId = sanitizeFieldValues(workTypeId); + originalWOId = sanitizeFieldValues(originalWOId); + try { + String result = ''; + WorkOrder newWO = new WorkOrder(); + if (String.isNotEmpty(workTypeId)) { + if (Schema.sObjectType.WorkOrder.fields.WorkTypeId.isUpdateable()) { + newWO.WorkTypeId = workTypeId; + } else + return 'error: Permission denied to update WorkTypeId'; + } + + Address originalAddress; + try { + originalAddress = [ + SELECT Address + FROM WorkOrder + WHERE Id = :originalWOId + ][0] + ?.Address; + } catch (Exception e) { + originalAddress = [ + SELECT Address + FROM WorkOrderLineItem + WHERE Id = :originalWOId + ][0] + ?.Address; + } + + if (String.IsEmpty(ServiceTerritoryId) && originalAddress != null) { + if ( + originalAddress.Latitude != null && + originalAddress.Longitude != null + ) { + if ( + Schema.sObjectType.WorkOrder.fields.Longitude.isUpdateable() && + Schema.sObjectType.WorkOrder.fields.Latitude.isUpdateable() + ) { + newWO.Longitude = originalAddress.Longitude; + newWO.Latitude = originalAddress.Latitude; + } else + return 'error: Permission denied to update Longitude, Latitude'; + } else { + if ( + Schema.sObjectType.WorkOrder.fields.Street.isUpdateable() && + Schema.sObjectType.WorkOrder.fields.City.isUpdateable() && + Schema.sObjectType.WorkOrder.fields.State.isUpdateable() && + Schema.sObjectType.WorkOrder.fields.Country.isUpdateable() && + Schema.sObjectType.WorkOrder.fields.PostalCode.isUpdateable() + ) { + newWO.Street = originalAddress.Street; + newWO.City = originalAddress.City; + newWO.State = originalAddress.State; + newWO.Country = originalAddress.Country; + newWO.PostalCode = originalAddress.PostalCode; + } else + return 'error: Permission denied to update Street, City, State, Country, PostalCode'; + } + } + + if (WorkOrder.sObjectType.getDescribe().isCreateable()) { + insert newWo; + } else + return 'Error: Permission denied to create WorkOrder'; + + result = newWO.Id; + return result; + } catch (Exception e) { + throw new AuraHandledException( + 'Error in create new Dummy Work Order' + e.getMessage() + ); + } + } + + @AuraEnabled(cacheable=true) + public static String getUserName() { + ServiceResource sr = [ + SELECT RelatedRecordId, Name + FROM ServiceResource + WHERE RelatedRecordId = :Userinfo.getUserId() + ][0]; + + return sr.Name; + } + + @AuraEnabled + public static Map convertTimeToOtherTimeZone( + DateTime date1, + DateTime date2, + string sourceTimezone, + string targetTimezone + ) { + sourceTimezone = sanitizeFieldValues(sourceTimezone); + targetTimezone = sanitizeFieldValues(targetTimezone); + + Map detailArray = new Map(); + // Source Timezone + TimeZone tz = Timezone.getTimeZone(sourceTimezone); + + Integer offset = tz.getOffset(date1); + + Integer offset2 = tz.getOffset(date2); + + // target Timezone. + TimeZone targetTZ = Timezone.getTimeZone(targetTimezone); + + // Date 1 + integer offsetTotargetTZ = targetTZ.getOffset(date1); + integer correction1 = offset - offsetTotargetTZ; + + // Date 2 + integer offsetTotargetTZ2 = targetTZ.getOffset(date2); + integer correction2 = offset2 - offsetTotargetTZ2; + + detailArray.put('date1', date1.addMinutes(correction1 / (1000 * 60))); + detailArray.put('date2', date2.addMinutes(correction2 / (1000 * 60))); + + return detailArray; + } + + @AuraEnabled + public static Map getUpdatedSASchedulingInfo( + String serviceAppointmentId + ) { + serviceAppointmentId = sanitizeFieldValues(serviceAppointmentId); + Map serviceAppointmentInfo = new Map(); + + try { + ServiceAppointment sa = [ + SELECT + Id, + EarliestStartTime, + ArrivalWindowStartTime, + ArrivalWindowEndTime, + SchedStartTime, + SchedEndTime, + DueDate + FROM ServiceAppointment + WHERE ID = :serviceAppointmentId + ][0]; + + serviceAppointmentInfo.put( + 'EarliestStartTime', + '' + sa.EarliestStartTime + ); + serviceAppointmentInfo.put( + 'ArrivalWindowStartTime', + '' + sa.ArrivalWindowStartTime + ); + serviceAppointmentInfo.put( + 'ArrivalWindowEndTime', + '' + sa.ArrivalWindowEndTime + ); + serviceAppointmentInfo.put('SchedStartTime', '' + sa.SchedStartTime); + serviceAppointmentInfo.put('SchedEndTime', '' + sa.SchedEndTime); + serviceAppointmentInfo.put('DueDate', '' + sa.DueDate); + } catch (Exception e) { + serviceAppointmentInfo.put('error', '' + e); + } + return serviceAppointmentInfo; + } + + @AuraEnabled(cacheable=true) + public static Id getSchedulingPolicyId(String schedulingPolicyName) { + schedulingPolicyName = sanitizeFieldValues(schedulingPolicyName); + Id schedulingPolicyId = [ + SELECT Id, Name + FROM FSL__Scheduling_Policy__c + WHERE Name = :schedulingPolicyName + LIMIT 1 + ] + .Id; + return schedulingPolicyId; + } + + @AuraEnabled(cacheable=true) + public static Id getOperatingHoursId(String operatingHoursName) { + operatingHoursName = sanitizeFieldValues(operatingHoursName); + Id operatingHoursId = [ + SELECT Id, Name + FROM OperatingHours + WHERE Name = :operatingHoursName + LIMIT 1 + ] + .Id; + return operatingHoursId; + } + + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------- FOLLOWUP APPOINTMENT FEATURE ------------------ + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + + @AuraEnabled + public static Map getSettingsObject(String recordId) { + recordId = sanitizeFieldValues(recordId); + Map settings = new Map(); + + try { + FollowupAppointmentSettings__c obj = [ + SELECT + ShowExactArrivalTime__c, + Operating_Hours__c, + Scheduling_Policy__c, + Scheduling_Horizon_Value__c, + Fields_To_Show_Page_1__c, + Fields_To_Show_Page_2__c, + Fields_To_Show_Page_3__c, + Record_To_Create__c, + Screen_Title_1__c, + Screen_Title_2__c, + Screen_Title_3__c, + Technician_Assigment__c + FROM FollowupAppointmentSettings__c + ][0]; + + settings.put('showExactArrivalTime', '' + obj.ShowExactArrivalTime__c); + settings.put('operatingHoursId', obj.Operating_Hours__c); + settings.put('schedulingPolicyId', obj.Scheduling_Policy__c); + settings.put( + 'schedulingHorizonValue', + '' + obj.Scheduling_Horizon_Value__c + ); + settings.put('fieldsToShowPage1', '' + obj.Fields_To_Show_Page_1__c); + settings.put('fieldsToShowPage2', '' + obj.Fields_To_Show_Page_2__c); + settings.put('fieldsToShowPage3', '' + obj.Fields_To_Show_Page_3__c); + settings.put('headerCustomPage1', '' + obj.Screen_Title_1__c); + settings.put('headerCustomPage2', '' + obj.Screen_Title_2__c); + settings.put('headerCustomPage3', '' + obj.Screen_Title_3__c); + settings.put('recordToCreate', '' + obj.Record_To_Create__c); + settings.put('workerAssignmentOptions', '' + obj.Technician_Assigment__c); + } catch (Exception e) { + settings.put('error1', '' + e); + } + + try { + WorkOrder wo = [SELECT ContactId FROM WorkOrder WHERE Id = :recordId][0]; + Contact contact = [SELECT Name FROM Contact WHERE Id = :wo.ContactId][0]; + settings.put('contactName', '' + contact.Name); + } catch (Exception e) { + try { + // If parent record is WOLI + WorkOrderLineItem woli = [ + SELECT WorkOrderId + FROM WorkOrderLineItem + WHERE Id = :recordId + ][0]; + WorkOrder wo = [ + SELECT ContactId + FROM WorkOrder + WHERE Id = :woli.WorkOrderId + ][0]; + Contact contact = [ + SELECT Name + FROM Contact + WHERE Id = :wo.ContactId + ][0]; + settings.put('contactName', '' + contact.Name); + } catch (Exception e1) { + System.debug('-- error while getting ContactId from parent record'); + settings.put('contactName', ''); + } + } + + List saList = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE ParentRecordId = :recordId + ]; + ServiceAppointment sa; + if (saList.size() > 1) { + try { + // search for the relevant SA + sa = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE ParentRecordId = :recordId AND StatusCategory = :'In Progress' + ][0]; + settings.put('serviceAppointmentId', '' + sa.Id); + settings.put('parentRecordId', '' + sa.ParentRecordId); + } catch (Exception e) { + try { + sa = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE ParentRecordId = :recordId AND StatusCategory = :'Dispatched' + ][0]; + settings.put('serviceAppointmentId', '' + sa.Id); + settings.put('parentRecordId', '' + sa.ParentRecordId); + } catch (Exception e1) { + try { + sa = [ + SELECT Id, ParentRecordId + FROM ServiceAppointment + WHERE ParentRecordId = :recordId AND StatusCategory = :'Scheduled' + ORDER BY AppointmentNumber DESC NULLS LAST + ][0]; + settings.put('serviceAppointmentId', '' + sa.Id); + settings.put('parentRecordId', '' + sa.ParentRecordId); + } catch (Exception e2) { + settings.put( + 'error2', + 'No Active Service Appointment found (StatusCategory = In Progress, Dispatched) AND no Service Appointment with StatusCategory = Dispatched: ' + + e2 + ); + } + } + } + } else { + settings.put('serviceAppointmentId', '' + saList[0].Id); + settings.put('parentRecordId', '' + saList[0].ParentRecordId); + } + + return settings; + } + + // ---------------------------------------------------------------- + // ------------------------ CREATE RECORD ------------------------- + // ---------------------------------------------------------------- + + public static Object formatDataBaseOnValue( + String fieldDataType, + String fieldValue + ) { + fieldDataType = sanitizeFieldValues(fieldDataType); + fieldValue = sanitizeFieldValues(fieldValue); + + switch on fieldDataType { + when 'Double', 'Location' { + System.debug('-> format to Double or Location'); + Decimal value = decimal.valueof(fieldValue); + return value; + } + when 'DateTime' { + System.debug('-> format to DateTime'); + DateTime value = Datetime.valueof(fieldValue.replace('T', ' ')); + return value; + } + when 'Boolean' { + System.debug('-> format to Boolean'); + Boolean value = boolean.valueof(fieldValue); + return value; + } + when 'Address' { + // unsupported types + System.debug('-> Address field is not allowed'); + String value = 'Address field is not allowed'; + return value; + } + when else { + // when string + System.debug('-> format to String'); + String value = fieldValue; + return value; + } + } + } + + @AuraEnabled + public static Map createRecord( + String recordToCreate, + String recordId, + List listOfFields, + DateTime arrivalWindowStartTime, + DateTime arrivalWindowEndTime, + String schedulingHorizonValue + ) { + Map newRecord = new Map(); + try { + recordToCreate = sanitizeFieldValues(recordToCreate); + recordId = sanitizeFieldValues(recordId); + schedulingHorizonValue = sanitizeFieldValues(schedulingHorizonValue); + + switch on recordToCreate { + // ---------------------------------------------------------------- + // ---------------------- CREATE WORK ORDER ----------------------- + // ---------------------------------------------------------------- + when 'WorkOrder' { + System.debug('** creating new WO **'); + WorkOrder newWO = new WorkOrder(); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'WorkOrder') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newWO.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (WorkOrder.sObjectType.getDescribe().isCreateable()) { + insert newWO; + newRecord.put('success', 'Work Order created'); + System.debug('*** Created WorkOrder record: ' + newWO); + } else { + newRecord.put('DML', 'Permission denied to create Work Order'); + } + + try { + ServiceAppointment newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWO.Id + ][0]; + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + newSA.ArrivalWindowStartTime = arrivalWindowStartTime; + newSA.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + newRecord.put( + 'DML', + 'Permission denied to update ArrivalWindowEndTime, ArrivalWindowStartTime' + ); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'ServiceAppointment') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newSA.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update newSA; + newRecord.put('success', 'Service Appointment Updated'); + System.debug('*** Updated SA record: ' + newSA); + newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWO.Id + ][0]; + newRecord.put('SAId', newSA.Id); + newRecord.put('SANumber', newSA.AppointmentNumber); + } else { + newRecord.put( + 'DML', + 'Permission denied to update Service Appointment' + ); + } + } catch (Exception e) { + // if SA not created automatically, create new SA and update its fields + try { + ServiceAppointment newSA = new ServiceAppointment(); + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + newSA.ParentRecordId = newWO.Id; + newSA.ArrivalWindowStartTime = arrivalWindowStartTime; + newSA.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + newRecord.put( + 'DML', + 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime' + ); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'ServiceAppointment') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newSA.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (newSA.EarliestStartTime == null) { + // Must add ESP and DD values + if ( + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() + ) { + newSA.EarliestStartTime = System.now(); + newSA.DueDate = System.now() + .addDays(integer.valueof(schedulingHorizonValue)); + } else + newRecord.put( + 'DML', + 'Permission denied to update EarliestStartTime, DueDate' + ); + } + if (ServiceAppointment.sObjectType.getDescribe().isCreateable()) { + insert newSA; + newRecord.put('success', 'Service Appointment Created'); + System.debug('*** Created SA record: ' + newSA); + newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWO.Id + ][0]; + newRecord.put('SAId', newSA.Id); + newRecord.put('SANumber', newSA.AppointmentNumber); + } else { + newRecord.put( + 'DML', + 'Permission denied to create Service Appointment' + ); + } + } catch (Exception e2) { + System.debug('*** error: Service Appointment not created: ' + e2); + newRecord.put( + 'error', + 'error: Service Appointment not created: ' + e2 + ); + } + } + } + // ---------------------------------------------------------------- + // ----------------- CREATE WORK ORDER LINE ITEM ------------------ + // ---------------------------------------------------------------- + + when 'WorkOrderLineItem' { + System.debug('** creating new WOLI **'); + WorkOrderLineItem newWOLI = new WorkOrderLineItem(); + try { + // when initiated via WO + WorkOrder woParent = [ + SELECT Id + FROM WorkOrder + WHERE Id = :recordId + ][0]; + newWOLI.WorkOrderId = recordId; + } catch (Exception e2) { + // when initiated via WOLI + WorkOrderLineItem woliParent = [ + SELECT Id, WorkOrderId + FROM WorkOrderLineItem + WHERE Id = :recordId + ][0]; + newWOLI.WorkOrderId = woliParent.WorkOrderId; + } + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'WorkOrderLineItem') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newWOLI.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (WorkOrderLineItem.sObjectType.getDescribe().isCreateable()) { + insert newWOLI; + newRecord.put('success', 'Work Order Line Item created'); + System.debug('*** Created WorkOrderLineItem record: ' + newWOLI); + } else { + newRecord.put( + 'DML', + 'Permission denied to create Work Order Line Item' + ); + } + + try { + ServiceAppointment newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWOLI.Id + ][0]; + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + newSA.ArrivalWindowStartTime = arrivalWindowStartTime; + newSA.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + newRecord.put( + 'DML', + 'Permission denied to update ArrivalWindowEndTime, ArrivalWindowStartTime' + ); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'ServiceAppointment') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newSA.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (ServiceAppointment.sObjectType.getDescribe().isUpdateable()) { + update newSA; + newRecord.put('success', 'Service Appointment Updated'); + System.debug('*** Updated SA record: ' + newSA); + newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWOLI.Id + ][0]; + newRecord.put('SAId', newSA.Id); + newRecord.put('SANumber', newSA.AppointmentNumber); + } else { + newRecord.put( + 'DML', + 'Permission denied to update Service Appointment' + ); + } + } catch (Exception e) { + // if SA not created automatically, create new SA and update its fields + try { + ServiceAppointment newSA = new ServiceAppointment(); + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + newSA.ParentRecordId = newWOLI.Id; + newSA.ArrivalWindowStartTime = arrivalWindowStartTime; + newSA.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + newRecord.put( + 'DML', + 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime' + ); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'ServiceAppointment') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newSA.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (newSA.EarliestStartTime == null) { + // Must add ESP and DD values + if ( + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() + ) { + newSA.EarliestStartTime = System.now(); + newSA.DueDate = System.now() + .addDays(integer.valueof(schedulingHorizonValue)); + } else + newRecord.put( + 'DML', + 'Permission denied to update EarliestStartTime, DueDate' + ); + } + if (ServiceAppointment.sObjectType.getDescribe().isCreateable()) { + insert newSA; + newRecord.put('success', 'Service Appointment Created'); + System.debug('*** Created SA record: ' + newSA); + newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE ParentRecordId = :newWOLI.Id + ][0]; + newRecord.put('SAId', newSA.Id); + newRecord.put('SANumber', newSA.AppointmentNumber); + } else { + newRecord.put( + 'DML', + 'Permission denied to create Service Appointment' + ); + } + } catch (Exception e2) { + System.debug('*** error: Service Appointment not created: ' + e2); + newRecord.put('error', 'Service Appointment not created: ' + e2); + } + } + } + // ---------------------------------------------------------------- + // ----------------- CREATE SERVICE APPOINTMENT ------------------ + // ---------------------------------------------------------------- + + when else { + try { + System.debug('** creating new SA **'); + ServiceAppointment newSA = new ServiceAppointment(); + if ( + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowEndTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.ArrivalWindowStartTime.isUpdateable() + ) { + newSA.ParentRecordId = recordId; + newSA.ArrivalWindowStartTime = arrivalWindowStartTime; + newSA.ArrivalWindowEndTime = arrivalWindowEndTime; + } else + newRecord.put( + 'DML', + 'Permission denied to update ArrivalWindowStartTime, ArrivalWindowEndTime' + ); + for (String field : listOfFields) { + List split = field.split(','); // 0 - objectApiName, 1 - fieldApiName, 2 - dataType, 3 - value + String objectApiName = split[0]; + String fieldApiName = split[1]; + String fieldDataType = split[2]; + String fieldValue = split[3]; + if (objectApiName == 'ServiceAppointment') { + System.debug('field input: ' + split); + if (fieldValue != 'null') { + newSA.put( + fieldApiName, + formatDataBaseOnValue(fieldDataType, fieldValue) + ); + System.debug('--- value added to record'); + } else { + System.debug('--- disregarding null values'); + } + } + } + if (newSA.EarliestStartTime == null) { + if ( + Schema.sObjectType.ServiceAppointment.fields.EarliestStartTime.isUpdateable() && + Schema.sObjectType.ServiceAppointment.fields.DueDate.isUpdateable() + ) { + newSA.EarliestStartTime = System.now(); + newSA.DueDate = System.now() + .addDays(integer.valueof(schedulingHorizonValue)); + System.debug( + '--- added EarliestStartTime: ' + newSA.EarliestStartTime + ); + System.debug('--- added DueDate: ' + newSA.DueDate); + } else + newRecord.put( + 'DML', + 'Permission denied to update EarliestStartTime, DueDate' + ); + } + if (ServiceAppointment.sObjectType.getDescribe().isCreateable()) { + insert newSA; + newRecord.put('success', 'Service Appointment Created'); + System.debug('*** Created SA record: ' + newSA); + newSA = [ + SELECT Id, AppointmentNumber + FROM ServiceAppointment + WHERE Id = :newSA.Id + ][0]; + newRecord.put('SAId', newSA.Id); + newRecord.put('SANumber', newSA.AppointmentNumber); + } else { + newRecord.put( + 'DML', + 'Permission denied to create Service Appointment' + ); + } + } catch (Exception e2) { + System.debug('*** error: Service Appointment not created: ' + e2); + System.debug('*** newRecord: ' + newRecord); + newRecord.put('error', ' Service Appointment not created: ' + e2); + } + } + } + + return newRecord; + } catch (Exception e) { + throw new AuraHandledException( + '--debug-- ' + newRecord + ' ; ' + e.getMessage() + ); + } + } + + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------------- SETTING PAGE LWC ------------------------ + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + // ---------------------------------------------------------------- + + // ************************* Settings APIs ********** // + + @Auraenabled(cacheable=true) + public static List getSchedulingPolicyList() { + List schedulingPolicyListNames = new List(); + + List schedulingPolicyList = [ + SELECT Id, Name + FROM FSL__Scheduling_Policy__c + WHERE IsDeleted = :false + WITH SECURITY_ENFORCED + ]; + + for (integer i = 0; i < schedulingPolicyList.size(); i++) { + schedulingPolicyListNames.add(schedulingPolicyList[i].Name); + } + return schedulingPolicyListNames; + } + + @Auraenabled(cacheable=true) + public static List getOperatingHoursList() { + List operatingHoursListNames = new List(); + + List operatingHourList = [ + SELECT Id, Name + FROM OperatingHours + WHERE IsDeleted = :false + WITH SECURITY_ENFORCED + ]; + + for (integer i = 0; i < operatingHourList.size(); i++) { + operatingHoursListNames.add(operatingHourList[i].Name); + } + return operatingHoursListNames; + } + + @Auraenabled(cacheable=false) + public static List getObjectNames() { + List stdObjectNames = new List(); + List allowedObjects = new List(); + try { + List followUpSettingList = [ + SELECT Id, Record_To_Create__c + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followupObj = followUpSettingList[0]; + if (followupObj.Record_To_Create__c == 'ServiceAppointment') { + allowedObjects.add('ServiceAppointment'); + } else { + allowedObjects.add('ServiceAppointment'); + allowedObjects.add('WorkOrder'); + allowedObjects.add('WorkOrderLineItem'); + } + } else { + allowedObjects.add('ServiceAppointment'); + allowedObjects.add('WorkOrder'); + allowedObjects.add('WorkOrderLineItem'); + } + + for (Schema.SObjectType typ : Schema.getGlobalDescribe().values()) { + String sobjName = String.valueOf(typ); + for (String obj : allowedObjects) { + if (sobjName.equals(obj)) { + stdObjectNames.add(sobjName); + } + } + } + System.debug('stdObjectNames: ' + stdObjectNames); + stdObjectNames.sort(); + } catch (Exception e) { + } + return stdObjectNames; + } + + @AuraEnabled + public static Map checkPermSetAssignedToUser() { + // First check if the user is admin user. If so, allow to add perm set. + if (!isAuthorized()) { + throw new HandledException(UNAUTH_MSG); + } + + Map resList = new Map(); + List hasPermList = [ + SELECT count(Id) co + FROM PermissionSetAssignment + WHERE + AssigneeId = :Userinfo.getUserId() + AND PermissionSet.Name = 'SFS_FollowupAppointmentPerm' + ]; + Integer count = (Integer) hasPermList[0].get('co'); + if (count == 1) { + system.debug('User has permission'); + resList.put( + 'success', + 'User has SFS followup appointment permission assigned' + ); + } else { + system.debug('Permission is missing'); + List permissionSetList = new List(); + for (User u : [ + SELECT ID, UserRole.Name, Profile.Name, IsActive + FROM User + WHERE Id = :UserInfo.getUserId() + ]) { + // Add fields as per your requirement... + PermissionSet ps = [ + SELECT Id + FROM PermissionSet + WHERE Name = 'SFS_FollowupAppointmentPerm' + ]; + PermissionSetAssignment psa = new PermissionSetAssignment( + PermissionSetId = ps.Id, + AssigneeId = u.Id + ); + permissionSetList.add(psa); + } + try { + upsert permissionSetList; + resList.put('success', 'permission set assigned successfully'); + } catch (exception e) { + system.debug('exception caught' + e); + resList.put( + 'error', + 'error while assigning permissionset to user : ' + e.getMessage() + ); + } + } + return resList; + } + + @AuraEnabled + public static Map getConfigurationData() { + Map settingList = new Map(); + + try { + FollowupAppointmentSettings__c obj = [ + SELECT + ShowExactArrivalTime__c, + Operating_Hours__c, + Scheduling_Policy__c, + Scheduling_Horizon_Value__c, + Fields_To_Show_Page_1__c, + Fields_To_Show_Page_2__c, + Fields_To_Show_Page_3__c, + Record_To_Create__c, + Screen_Title_1__c, + Screen_Title_2__c, + Screen_Title_3__c, + Technician_Assigment__c + FROM FollowupAppointmentSettings__c + WITH SECURITY_ENFORCED + ][0]; + + if (obj != null) { + if (obj.Scheduling_Policy__c != null) { + String schedulingPolicyName = [ + SELECT Id, Name + FROM FSL__Scheduling_Policy__c + WHERE Id = :obj.Scheduling_Policy__c + ] + .Name; + if (schedulingPolicyName != null) { + settingList.put( + 'schedulingPolicyName', + String.valueOf(schedulingPolicyName) + ); + } + } + + if (obj.Operating_Hours__c != null) { + String opName = [ + SELECT Id, Name + FROM OperatingHours + WHERE Id = :obj.Operating_Hours__c + ] + .Name; + if (opName != null) { + settingList.put('operatingHoursName', String.valueOf(opName)); + } + } + + settingList.put( + 'showExactArrivalTime', + '' + obj.ShowExactArrivalTime__c + ); + settingList.put('operatingHoursId', obj.Operating_Hours__c); + settingList.put('schedulingPolicyId', obj.Scheduling_Policy__c); + settingList.put( + 'schedulingHorizonValue', + '' + obj.Scheduling_Horizon_Value__c + ); + settingList.put('fieldsToShowPage1', '' + obj.Fields_To_Show_Page_1__c); + settingList.put('fieldsToShowPage2', '' + obj.Fields_To_Show_Page_2__c); + settingList.put('fieldsToShowPage3', '' + obj.Fields_To_Show_Page_3__c); + settingList.put('objectsToCreate', '' + obj.Record_To_Create__c); + settingList.put('Screen_Title_1__c', '' + obj.Screen_Title_1__c); + settingList.put('Screen_Title_2__c', '' + obj.Screen_Title_2__c); + settingList.put('Screen_Title_3__c', '' + obj.Screen_Title_3__c); + settingList.put( + 'Technician_Assigment__c', + '' + obj.Technician_Assigment__c + ); + } else { + settingList.put('null', 'null'); + } + } catch (Exception e) { + settingList.put('error', '' + e); + } + + return settingList; + } + + @AuraEnabled + public static Map getSavedScreenData() { + Map settingList = new Map(); + + try { + FollowupAppointmentSettings__c obj = [ + SELECT + Screen_Title_1__c, + Screen_Title_2__c, + Screen_Title_3__c, + Fields_To_Show_Page_1__c, + Fields_To_Show_Page_2__c, + Fields_To_Show_Page_3__c + FROM FollowupAppointmentSettings__c + ][0]; + + if (obj != null) { + settingList.put('Screen_Title_1__c', '' + obj.Screen_Title_1__c); + settingList.put('Screen_Title_2__c', '' + obj.Screen_Title_2__c); + settingList.put('Screen_Title_3__c', '' + obj.Screen_Title_3__c); + settingList.put( + 'Fields_To_Show_Page_1__c', + '' + obj.Fields_To_Show_Page_1__c + ); + settingList.put( + 'Fields_To_Show_Page_2__c', + '' + obj.Fields_To_Show_Page_2__c + ); + settingList.put( + 'Fields_To_Show_Page_3__c', + '' + obj.Fields_To_Show_Page_3__c + ); + } else { + settingList.put('null', 'null'); + } + } catch (Exception e) { + settingList.put('error', '' + e); + } + + return settingList; + } + + @Auraenabled(cacheable=false) + public static List getFieldNames(String objectName) { + String escapeFields = 'Address'; + Set escapeFieldList = new Set{ + 'Address', + 'AppointmentNumber', + 'CreatedById', + 'CreatedDate', + 'DurationInMinutes', + 'FSL__Duration_In_Minutes__c', + 'FSL__InternalSLRGeolocation__c', + 'IsDeleted', + 'LastModifiedById', + 'LastModifiedDate', + 'LastReferencedDate', + 'LastViewedDate', + 'ParentRecordId', + 'ParentRecordStatusCategory', + 'ParentRecordType', + 'StatusCategory', + 'SystemModstamp', + 'Discount', + 'DurationInMinutes', + 'FSL_Schedluing_Priority_c', + 'GrandTotal', + 'Id', + 'IsClosed', + 'IsDeleted', + 'IsGeneratedFromMainianacePlan', + 'LastModfiedById', + 'LastModfiedDate', + 'LastRefrencedDate', + 'LastViewedDate', + 'LineItemCount', + 'MileStoneStatus', + 'RootWorkOrderId', + 'ServiceAppointmentCount', + 'StatusCategory', + 'SubTotal', + 'SystemModStamp', + 'TotalPrice', + 'WorkOrderNumber' + }; + + SObjectType objectType = Schema.getGlobalDescribe().get(objectName); + Map mfields = objectType.getDescribe() + .fields.getMap(); + + List sObjectDetailsList = new List(); + for (String s : mfields.keySet()) { + //sObjectDetailsList.add(objectName+'.'+String.valueOf(mfields.get(s))); + Boolean isStrinList = false; + + for (String escapeStr : escapeFieldList) { + if (String.valueOf(mfields.get(s)).equals(escapeStr)) { + isStrinList = true; + break; + } + } + if (!isStrinList) { + sObjectDetailsList.add(String.valueOf(mfields.get(s))); + } + System.debug('Field Names : ' + String.valueOf(mfields.get(s))); + } + sObjectDetailsList.sort(); + return sObjectDetailsList; + } + + // Save settings + + @AuraEnabled + public static Map saveSettings(List inputArr) { + String schedulingPolicy = sanitizeFieldValues(inputArr.get(0)); + String operatingHours = sanitizeFieldValues(inputArr.get(1)); + Boolean isExactAppintmentTime = Boolean.valueOf(inputArr.get(2)); + Integer schedulingHorizonUnits = Integer.valueof(inputArr.get(3)); + String objectsAllowedToBeCreated = sanitize(inputArr.get(4)); + String technicianAssignment = sanitize(inputArr.get(5)); + String objectsAllowed = sanitize(inputArr.get(6)); + + Map responseResult = new Map(); + try { + OperatingHours op = [ + SELECT Id + FROM OperatingHours + WHERE Name = :operatingHours + WITH SECURITY_ENFORCED + ]; + FSL__Scheduling_Policy__c sp = [ + SELECT Id + FROM FSL__Scheduling_Policy__c + WHERE Name = :schedulingPolicy + WITH SECURITY_ENFORCED + ]; + + List followUpSettingList; + followUpSettingList = [ + SELECT Id + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; + + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Operating_Hours__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Horizon_Value__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Policy__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.ShowExactArrivalTime__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Technician_Assigment__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Record_To_Create__c.isUpdateable() + ) { + followUpSetting.Operating_Hours__c = op.id; + followUpSetting.Scheduling_Horizon_Value__c = schedulingHorizonUnits; + followUpSetting.Scheduling_Policy__c = sp.id; + followUpSetting.ShowExactArrivalTime__c = isExactAppintmentTime; + followUpSetting.Technician_Assigment__c = technicianAssignment; + followUpSetting.Record_To_Create__c = objectsAllowed; + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isUpdateable() + ) { + update followUpSetting; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to update the record'); + } + } else { + FollowupAppointmentSettings__c newRecord; + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isCreateable() + ) { + newRecord = new FollowupAppointmentSettings__c(); + } + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Name.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Operating_Hours__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Horizon_Value__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Scheduling_Policy__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.ShowExactArrivalTime__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Technician_Assigment__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Record_To_Create__c.isCreateable() + ) { + newRecord.Name = 'AA_Followup_Settings'; + newRecord.Operating_Hours__c = op.id; + newRecord.Scheduling_Horizon_Value__c = schedulingHorizonUnits; + newRecord.Scheduling_Policy__c = sp.id; + newRecord.ShowExactArrivalTime__c = isExactAppintmentTime; + newRecord.Technician_Assigment__c = technicianAssignment; + newRecord.Record_To_Create__c = objectsAllowed; + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isCreateable() + ) { + insert newRecord; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to create the record'); + } + } + } catch (Exception e) { + System.debug('Error while saving the record' + e); + responseResult.put('error', e); + } + + return responseResult; + } + + @AuraEnabled + public static Map saveFieldSettings(List inputArr) { + Integer pageNo = Integer.valueof(inputArr.get(0)); + String screenTitle = sanitize(inputArr.get(1)); + String fieldList = sanitizeFieldValues(String.valueOf(inputArr.get(2))); + + Map responseResult = new Map(); + try { + List followUpSettingList = [ + SELECT Id + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; + + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() + ) { + if (pageNo == 1) { + followUpSetting.Screen_Title_1__c = screenTitle; + followUpSetting.Fields_To_Show_Page_1__c = fieldList; + } else if (pageNo == 2) { + followUpSetting.Screen_Title_2__c = screenTitle; + followUpSetting.Fields_To_Show_Page_2__c = fieldList; + } else { + followUpSetting.Screen_Title_3__c = screenTitle; + followUpSetting.Fields_To_Show_Page_3__c = fieldList; + } + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isUpdateable() + ) { + update followUpSetting; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to update the record'); + } + } else { + FollowupAppointmentSettings__c newRecord = new FollowupAppointmentSettings__c(); + + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Name.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isCreateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isCreateable() + ) { + newRecord.Name = 'AA_Followup_Settings'; + if (pageNo == 1) { + newRecord.Screen_Title_1__c = screenTitle; + newRecord.Fields_To_Show_Page_1__c = fieldList; + } else if (pageNo == 2) { + newRecord.Screen_Title_2__c = screenTitle; + newRecord.Fields_To_Show_Page_2__c = fieldList; + } else { + newRecord.Screen_Title_3__c = screenTitle; + newRecord.Fields_To_Show_Page_3__c = fieldList; + } + } + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isCreateable() + ) { + insert newRecord; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to create the record'); + } + } + } catch (Exception e) { + System.debug('Error while saving the record' + e); + responseResult.put('error', e); + } + + return responseResult; + } + + @AuraEnabled + public static Map deleteScreen(Integer screenNo) { + Integer pageNo = Integer.valueOf(screenNo); + + Map responseResult = new Map(); + try { + List followUpSettingList = [ + SELECT Id + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() + ) { + if (pageNo == 1) { + followUpSetting.Screen_Title_1__c = null; + followUpSetting.Fields_To_Show_Page_1__c = null; + } else if (pageNo == 2) { + followUpSetting.Screen_Title_2__c = null; + followUpSetting.Fields_To_Show_Page_2__c = null; + } else { + followUpSetting.Screen_Title_3__c = null; + followUpSetting.Fields_To_Show_Page_3__c = null; + } + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isUpdateable() + ) { + update followUpSetting; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to update the record'); + } + } + } catch (Exception e) { + System.debug('Error while saving the record' + e); + responseResult.put('error', e); + } + + return responseResult; + } + + @AuraEnabled + public static Map duplicateScreenData( + Integer fromScreenNo, + Integer toScreenNo + ) { + Integer pageNo = Integer.valueOf(fromScreenNo); + + Map responseResult = new Map(); + try { + List followUpSettingList = [ + SELECT + Id, + Screen_Title_1__c, + Fields_To_Show_Page_1__c, + Screen_Title_2__c, + Fields_To_Show_Page_2__c, + Screen_Title_3__c, + Fields_To_Show_Page_3__c + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; + String copyTitle = ''; + String copyFields = ''; + if (fromScreenNo == 1) { + copyTitle = followUpSetting.Screen_Title_1__c; + copyFields = followUpSetting.Fields_To_Show_Page_1__c; + } else if (fromScreenNo == 2) { + copyTitle = followUpSetting.Screen_Title_2__c; + copyFields = followUpSetting.Fields_To_Show_Page_2__c; + } else { + copyTitle = followUpSetting.Screen_Title_3__c; + copyFields = followUpSetting.Fields_To_Show_Page_3__c; + } + + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() + ) { + switch on toScreenNo { + when 1 { + followUpSetting.Screen_Title_1__c = copyTitle; + followUpSetting.Fields_To_Show_Page_1__c = copyFields; + } + when 2 { + followUpSetting.Screen_Title_2__c = copyTitle; + followUpSetting.Fields_To_Show_Page_2__c = copyFields; + } + when 3 { + followUpSetting.Screen_Title_3__c = copyTitle; + followUpSetting.Fields_To_Show_Page_3__c = copyFields; + } + } + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isUpdateable() + ) { + update followUpSetting; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to update the record'); + } + } + } catch (Exception e) { + System.debug('Error while saving the record' + e); + responseResult.put('error', e); + } + + return responseResult; + } + + @AuraEnabled + public static Map swapScreenLeftRight( + Integer fromScreenNo, + Integer toScreenNo + ) { + Integer pageNo = Integer.valueOf(fromScreenNo); + + Map responseResult = new Map(); + try { + List followUpSettingList = [ + SELECT + Id, + Screen_Title_1__c, + Fields_To_Show_Page_1__c, + Screen_Title_2__c, + Fields_To_Show_Page_2__c, + Screen_Title_3__c, + Fields_To_Show_Page_3__c + FROM FollowupAppointmentSettings__c + WHERE Name = 'AA_Followup_Settings' + WITH SECURITY_ENFORCED + ]; + + if (followUpSettingList.size() > 0) { + FollowupAppointmentSettings__c followUpSetting = followUpSettingList[0]; + + String copyTitle = ''; + String copyFields = ''; + + if ( + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_1__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_2__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Screen_Title_3__c.isUpdateable() && + Schema.sObjectType.FollowupAppointmentSettings__c.fields.Fields_To_Show_Page_3__c.isUpdateable() + ) { + if (fromScreenNo == 1 && toScreenNo == 2) { + String title1 = followUpSetting.Screen_Title_1__c; + String fields1 = followUpSetting.Fields_To_Show_Page_1__c; + + followUpSetting.Screen_Title_1__c = followUpSetting.Screen_Title_2__c; + followUpSetting.Fields_To_Show_Page_1__c = followUpSetting.Fields_To_Show_Page_2__c; + + followUpSetting.Screen_Title_2__c = title1; + followUpSetting.Fields_To_Show_Page_2__c = fields1; + } else if (fromScreenNo == 2 && toScreenNo == 3) { + String title2 = followUpSetting.Screen_Title_2__c; + String fields2 = followUpSetting.Fields_To_Show_Page_2__c; + + followUpSetting.Screen_Title_2__c = followUpSetting.Screen_Title_3__c; + followUpSetting.Fields_To_Show_Page_2__c = followUpSetting.Fields_To_Show_Page_3__c; + + followUpSetting.Screen_Title_3__c = title2; + followUpSetting.Fields_To_Show_Page_3__c = fields2; + } else { + System.debug('screen not in record'); + } + } + + if ( + FollowupAppointmentSettings__c.sObjectType.getDescribe() + .isUpdateable() + ) { + update followUpSetting; + responseResult.put('success', 'success'); + } else { + responseResult.put('DML', 'Permission denied to update the record'); + } + } + } catch (Exception e) { + System.debug('Error while saving the record' + e); + responseResult.put('error', e); + } + + return responseResult; + } + + private static String sanitize(String name) { + if (name == null) { + return name; + } + return name.replaceAll('[^\\w\\s]', '').replaceAll('_', ' ').trim(); + } + + private static String sanitizeFieldValues(String name) { + if (name == null) { + return name; + } + string HTML_TAG_PATTERN = '<.*?>'; + // compile the pattern + pattern myPattern = pattern.compile(HTML_TAG_PATTERN); + // get your matcher instance + matcher myMatcher = myPattern.matcher(name); + //remove the tags + return myMatcher.replaceAll(''); + } + + private static boolean isAuthorized() { + try { + return [SELECT Id FROM Profile WHERE Name = 'System Administrator'].Id == + System.UserInfo.getProfileId(); + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } +} diff --git a/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml b/projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml similarity index 77% rename from FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml index 4b0bc9f..c47403d 100644 --- a/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/classes/FollowUpAppointmentController.cls-meta.xml @@ -1,4 +1,4 @@ - + 55.0 Active diff --git a/projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls b/projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls new file mode 100644 index 0000000..d4f756c --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls @@ -0,0 +1,1171 @@ +@isTest +public without sharing class ut_FollowUpAppointmentController { + public static final String ADMIN_EMAIL = 'ApptAssistantAdmin@SFDC.com'; + public static final String PERMSET_ADMIN = 'aa_Admin'; + public static final String PROFILE_ADMIN = 'System Administrator'; + public static final String PROFILE_USER = 'Standard User'; + public static final String AA_PSL = 'FSLApptAssistant'; + + public static AssignedResource ar; + public static ServiceAppointment sa; + public static WorkOrder wo; + public static WorkOrder wo_sa; + public static ServiceResource sr; + public static ResourcePreference rp; + public static OperatingHours oh; + public static WorkType wt; + public static WorkType wt_sa; + public static FSL__Scheduling_Policy__c sp; + + public enum UserType { + ADMIN + } + + /** + * setupUser description + * @param profileName profileName description + * @param email email description + * @param doInsert doInsert description + * @return return description + */ + public static User setupUser( + String profileName, + String email, + Boolean doInsert + ) { + return setupUser(profileName, 'Test', 'User ', null, email, doInsert); + } + + private static Map mapProfileNameToId = new Map(); + private static Id getIdForProfile(String profileName) { + if (!mapProfileNameToId.containsKey(profileName.toUpperCase())) { + for (Profile p : [ + SELECT Id, Name + FROM Profile + WHERE Name = :profileName + ]) { + mapProfileNameToId.put(p.Name.toUpperCase(), p.Id); + } + } + + return mapProfileNameToId.get(profileName.toUpperCase()); + } + + /** + * Setup User with Profile, name and number + **/ + public static User setupUser( + String profileName, + String firstName, + String lastName, + String employeeNumber, + String email, + Boolean doInsert + ) { + if (email == null) { + email = + 'unit.test.user@' + + UserInfo.getOrganizationId() + + '.apexanalytixtest.com'; + } + User u = new User(); + u.FirstName = firstName; + u.LastName = lastName; + u.EmployeeNumber = employeeNumber; + u.Email = email; + u.Username = email; + u.Alias = 'tuser' + String.valueOf(Integer.valueOf((Math.random() * 999))); + u.Phone = '503-555-1212'; + u.ProfileId = getIdForProfile(profileName); + u.TimeZoneSidKey = 'America/Los_Angeles'; + u.LocaleSidKey = 'en_US'; + u.EmailEncodingKey = 'ISO-8859-1'; + u.LanguageLocaleKey = 'en_US'; + + if (UserInfo.isMultiCurrencyOrganization()) { + ((SObject) u).put('CurrencyIsoCode', 'USD'); + } + + if (doInsert) { + insert u; + } + + return u; + } + + static AssignedResource makeData(User user) { + System.runAs(user) { + sr = new ServiceResource(); + + // ServiceTerritoryMember + sr.Name = 'John Doe'; + sr.RelatedRecordId = user.Id; + sr.LastKnownLatitude = 12.9716; + sr.LastKnownLongitude = 77.5946; + sr.IsActive = true; + insert sr; + + sp = new FSL__Scheduling_Policy__c(); + sp.Name = 'Customer First Test'; + insert sp; + + oh = new OperatingHours(); + oh.TimeZone = 'Europe/Istanbul'; + oh.Name = 'Test time zone'; + insert oh; + + List offsetList = [ + SELECT TimeZone + FROM OperatingHours + LIMIT 1 + ]; + ServiceTerritory ter = new ServiceTerritory(); + ter.IsActive = true; + ter.Name = 'Floor 5'; + ter.OperatingHoursId = oh.id; + insert ter; + + ServiceTerritoryMember stm = new ServiceTerritoryMember(); + stm.ServiceResourceId = sr.id; + stm.ServiceTerritoryId = ter.id; + stm.EffectiveStartDate = Date.valueOf('2021-03-11'); + stm.TerritoryType = 'P'; + insert stm; + + Account a = new Account(); + a.Name = 'BAC'; + insert a; + + // create a work type + wt = new WorkType(); + wt.Name = 'test'; + wt.EstimatedDuration = 2; + wt.DurationType = 'Hours'; + wt.FSL__Due_Date_Offset__c = 7200; + wt.FSL__Exact_Appointments__c = true; + insert wt; + + wt_sa = new WorkType(); + wt_sa.Name = 'test1'; + wt_sa.EstimatedDuration = 2; + wt_sa.DurationType = 'Hours'; + wt_sa.FSL__Due_Date_Offset__c = 7200; + wt_sa.FSL__Exact_Appointments__c = true; + wt_sa.ShouldAutoCreateSvcAppt = true; + insert wt_sa; + + // create a work order + wo = new WorkOrder(); + wo.WorkTypeId = wt.Id; + wo.City = 'Bangalore'; + wo.Country = 'India'; + wo.Street = 'Palm Retreat'; + wo.Latitude = 12.9716; + wo.Longitude = 77.5946; + insert wo; + + wo_sa = new WorkOrder(); + wo_sa.WorkTypeId = wt_sa.Id; + wo_sa.City = 'Bangalore'; + wo_sa.Country = 'India'; + wo_sa.Street = 'Palm Retreat'; + wo_sa.Latitude = 12.9716; + wo_sa.Longitude = 77.5946; + insert wo_sa; + + rp = new ResourcePreference(); + rp.RelatedRecordId = wo.Id; + rp.ServiceResourceId = sr.Id; + insert rp; + + sa = new ServiceAppointment(); + sa.ParentRecordId = wo.Id; + sa.City = 'Bangalore'; + sa.Country = 'India'; + sa.Street = 'Palm Retreat'; + sa.ArrivalWindowStartTime = DateTime.valueOf('2024-03-11 10:00:00'); + sa.ArrivalWindowEndTime = DateTime.valueOf('2024-03-11 14:00:00'); + sa.Status = 'Dispatched'; + sa.ServiceTerritoryId = ter.id; + sa.EarliestStartTime = DateTime.valueOf('2024-03-01 10:00:00'); + sa.DueDate = DateTime.valueOf('2024-05-19 10:00:00'); + sa.SchedStartTime = DateTime.valueOf('2024-03-11 11:00:00'); + sa.SchedEndTime = DateTime.valueOf('2024-03-11 12:00:00'); + sa.ServiceNote = 'Your appointment is confirmed'; + sa.Latitude = 12.9716; + sa.Longitude = 77.5946; + insert sa; + + ar = new AssignedResource(); + ar.ServiceResourceId = sr.id; + ar.ServiceAppointmentId = sa.id; + // TODO CHNAGE THIS + //ar.ApptAssistantInfoUrl = 'www.salesforce.com'; + insert ar; + + return ar; + } + return null; + } + + public static User createUserWithPermSet(String email) { + User usr = setupUser('System Administrator', email, true); + + return usr; + } + + @isTest + static void test_getServiceAppointment() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + + Map mapInfo = FollowUpAppointmentController.getServiceAppointment( + sa.Id + ); + Map mapInfo2 = FollowUpAppointmentController.getServiceAppointment( + '123123' + ); + + List schedulingPolicyList = FollowUpAppointmentController.getSchedulingPolicyList(); + List operatingHoursList = FollowUpAppointmentController.getOperatingHoursList(); + + system.assert(mapInfo.size() > 0, true); + system.assert(mapInfo2.size() > 0, true); + + system.assert(schedulingPolicyList.size() > 0, true); + system.assert(operatingHoursList.size() > 0, true); + + // system.assert(saInfo.size() > 0); + // system.assert(currentAssignmentMethodInfo.size() > 0); + // system.assert(scheduleSAInfo.size() > 0); + // system.assert(Info1.size() > 0); + // system.assert(Info2.size() > 0); + // system.assert(Info3.size() > 0); + // system.assert(Info4.size() > 0); + + Test.stopTest(); + } + } + + @isTest + static void test_getSlots() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + + Map mapInfo = FollowUpAppointmentController.getSlots( + sa.Id, + oh.Id, + sp.Id, + true, + '' + ); + system.assert(mapInfo.size() > 0, true); + + Test.stopTest(); + } + } + + @isTest + static void test_getSlotsByAssignmentMethod() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.getSlotsByAssignmentMethod( + sa.Id, + oh.Id, + sp.Id, + true, + '' + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_scheduleSA() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.scheduleSA( + sa.Id, + sp.Id + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_updateSASlot() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.updateSASlot( + sa.Id, + sa.EarliestStartTime, + sa.dueDate + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_updateServiceAppointmentStatus() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.updateServiceAppointmentStatus( + sa.Id, + sa.Status + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_updateSA() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.updateSA( + sa.Id, + sa.EarliestStartTime, + sa.dueDate, + sa.dueDate + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_deleteExistingRequiredResources() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + FollowUpAppointmentController.deleteExistingRequiredResources(wo.Id); + //system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_deleteExistingResourcePreferencesForResource() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + FollowUpAppointmentController.deleteExistingResourcePreferencesForResource( + wo.Id, + wo.Id + ); + //system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_addNewRequiredResource() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + WorkOrder tempWo = new WorkOrder(); + tempWo.WorkTypeId = wt.Id; + insert tempWo; + Test.startTest(); + FollowUpAppointmentController.addNewRequiredResource(wo.Id, sr.Id); + FollowUpAppointmentController.addNewRequiredResource(tempWo.Id, sr.Id); + Test.stopTest(); + } + } + + @isTest + static void test_assignCurrentUserAsRequiredResource() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.assignCurrentUserAsRequiredResource( + sa.Id, + 'assignToMe' + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_isUserExcludedResource() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.isUserExcludedResource( + sa.Id + ); + //Map mapInfo2 = FollowUpAppointmentController.isUserExcludedResource('tempId'); + system.assert(mapInfo.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_cloneWorkOrder() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.cloneWorkOrder( + sa.Id, + sa.SchedStartTime, + sa.DueDate, + sa.Id, + wo.Id + ); + Map mapInfo2 = FollowUpAppointmentController.cloneWorkOrder( + sa.Id, + sa.SchedStartTime, + sa.DueDate, + null, + null + ); + + system.assert(mapInfo.size() > -1, true); + system.assert(mapInfo2.size() > -1, true); + + Test.stopTest(); + } + } + + @isTest + static void test_deleteClonedResourcePreference() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + String mapInfo = FollowUpAppointmentController.deleteClonedResourcePreference( + wo.Id + ); + system.assert(mapInfo.length() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_copyResourcePreferenceObject() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + FollowUpAppointmentController.copyResourcePreferenceObject(rp, wo.Id); + //system.assert(mapInfo.length() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_updateDummySa() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.updateDummySa( + sa.Id, + sa.SchedStartTime, + sa.SchedEndTime, + sa.ServiceTerritoryId + ); + system.assert(mapInfo.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_createNewDummyWorkOrder() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + WorkOrder tempWo = new WorkOrder(); + tempWo.WorkTypeId = wt.Id; + tempWo.City = 'Bangalore'; + tempWo.Country = 'India'; + tempWo.Street = 'Palm Retreat'; + insert tempWo; + + Test.startTest(); + String mapInfo = FollowUpAppointmentController.createNewDummyWorkOrder( + sa.ServiceTerritoryId, + wt.Id, + wo.Id + ); + String mapInfo2 = FollowUpAppointmentController.createNewDummyWorkOrder( + '', + wt.Id, + wo.Id + ); + String mapInfo3 = FollowUpAppointmentController.createNewDummyWorkOrder( + '', + wt.Id, + tempWo.Id + ); + system.assert(mapInfo.length() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_getUserName() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + String mapInfo = FollowUpAppointmentController.getUserName(); + system.assert(mapInfo.length() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_convertTimeToOtherTimeZone() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultArray = FollowUpAppointmentController.convertTimeToOtherTimeZone( + sa.DueDate, + sa.EarliestStartTime, + 'America/Tijuana', + 'America/Tijuana' + ); + system.assert(resultArray.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_getUpdatedSASchedulingInfo() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultArray = FollowUpAppointmentController.getUpdatedSASchedulingInfo( + sa.Id + ); + system.assert(resultArray.size() > 0, true); + Test.stopTest(); + } + } + + @isTest + static void test_getSpAndOpId() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Id resultArray = FollowUpAppointmentController.getSchedulingPolicyId( + sp.Name + ); + Id resultArray2 = FollowUpAppointmentController.getOperatingHoursId( + oh.Name + ); + + system.assert(resultArray != null, true); + system.assert(resultArray2 != null, true); + + Test.stopTest(); + } + } + + @isTest + static void test_getSettingsObject() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultArray = FollowUpAppointmentController.getSettingsObject( + wo.Id + ); + system.assert(resultArray.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_getSettingsObject2() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + // Insert setting object + FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); + settingsObj.ShowExactArrivalTime__c = true; + settingsObj.Operating_Hours__c = oh.Id; + settingsObj.Scheduling_Policy__c = sp.Id; + settingsObj.Name = 'AA_Followup_Settings'; + settingsObj.Screen_Title_1__c = 'abc'; + settingsObj.Screen_Title_2__c = 'abc'; + settingsObj.Screen_Title_3__c = 'abc'; + settingsObj.Record_To_Create__c = 'workOrder'; + settingsObj.Scheduling_Horizon_Value__c = 12; + settingsObj.Technician_Assigment__c = '23'; + insert settingsObj; + Test.startTest(); + Map resultArray2 = FollowUpAppointmentController.getSettingsObject( + wo.Id + ); + Test.stopTest(); + } + } + + @isTest + static void test_deleteClonedAppointmentData() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map mapInfo = FollowUpAppointmentController.deleteClonedAppointmentData( + sa.Id + ); + system.assert(mapInfo.size() > 0, true); + Test.stopTest(); + } + } + + // @isTest + // static void Test_cloneResourcePreference() { + // User user = createUserWithPermSet(ADMIN_EMAIL); + // makeData(user); + // system.runas(user) { + // WorkOrder newWo = new WorkOrder(); + // newWo.WorkTypeId = wt.Id; + // insert newWo; + // Test.startTest(); + // String resultStr = FollowUpAppointmentController.cloneResourcePreference(wo.Id, newWo.Id); + // system.assert(resultStr.length() > -1, true); + // Test.stopTest(); + // } + // } + + @isTest + static void Test_deleteClonedWorkOrder() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + String resultStr = FollowUpAppointmentController.deleteClonedWorkOrder( + wo.Id + ); + system.assert(resultStr.length() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void Test_getObjectNames() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + List resultStr = FollowUpAppointmentController.getObjectNames(); + system.assert(resultStr.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void Test_getConfigurationData() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultStr = FollowUpAppointmentController.getConfigurationData(); + system.assert(resultStr.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void Test_getSavedScreenData() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultStr = FollowUpAppointmentController.getSavedScreenData(); + system.assert(resultStr.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void test_saveSettings() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List objectList = new List(); + objectList.add(sp.Name); + objectList.add(oh.Name); + objectList.add('true'); + objectList.add('10'); + objectList.add('serviceAppointment'); + objectList.add('1'); + objectList.add('serviceAppointment'); + Test.startTest(); + Map resultStr = FollowUpAppointmentController.saveSettings( + objectList + ); + system.assert(resultStr.size() > -1, true); + Test.stopTest(); + } + } + + @isTest + static void Test_saveSettings2() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List objectList = new List(); + objectList.add(sp.Name); + objectList.add(oh.Name); + objectList.add('true'); + objectList.add('10'); + objectList.add('serviceAppointment'); + objectList.add('1'); + objectList.add('serviceAppointment'); + + // Insert setting object + FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); + settingsObj.ShowExactArrivalTime__c = true; + settingsObj.Operating_Hours__c = oh.Id; + settingsObj.Scheduling_Policy__c = sp.Id; + settingsObj.Name = 'AA_Followup_Settings'; + settingsObj.Screen_Title_1__c = 'abc'; + settingsObj.Screen_Title_2__c = 'abc'; + settingsObj.Screen_Title_3__c = 'abc'; + settingsObj.Record_To_Create__c = 'workOrder'; + settingsObj.Scheduling_Horizon_Value__c = 12; + settingsObj.Technician_Assigment__c = '23'; + insert settingsObj; + Test.startTest(); + Map resultStr2 = FollowUpAppointmentController.saveSettings( + objectList + ); + Test.stopTest(); + } + } + + @isTest + static void Test_saveFieldSettings2() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + // Insert setting object + FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); + settingsObj.ShowExactArrivalTime__c = true; + settingsObj.Operating_Hours__c = oh.Id; + settingsObj.Scheduling_Policy__c = sp.Id; + settingsObj.Name = 'AA_Followup_Settings'; + settingsObj.Screen_Title_1__c = 'abc'; + settingsObj.Screen_Title_2__c = 'abc'; + settingsObj.Screen_Title_3__c = 'abc'; + settingsObj.Record_To_Create__c = 'workOrder'; + settingsObj.Scheduling_Horizon_Value__c = 12; + settingsObj.Technician_Assigment__c = '23'; + insert settingsObj; + + Test.startTest(); + List objectList = new List(); + objectList.add('1'); + objectList.add('screentitle'); + objectList.add('serviceAppointment.Account'); + Map resultStr = FollowUpAppointmentController.saveFieldSettings( + objectList + ); + system.assert(resultStr.size() > -1, true); + + List objectList2 = new List(); + objectList2.add('2'); + objectList2.add('screentitle'); + objectList2.add('serviceAppointment.Account'); + Map resultStr2 = FollowUpAppointmentController.saveFieldSettings( + objectList2 + ); + + List objectList3 = new List(); + objectList3.add('3'); + objectList3.add('screentitle'); + objectList3.add('serviceAppointment.Account'); + Map resultStr3 = FollowUpAppointmentController.saveFieldSettings( + objectList3 + ); + + Test.stopTest(); + } + } + + @isTest + static void Test_saveFieldSettings() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + List objectList = new List(); + objectList.add('1'); + objectList.add('screentitle'); + objectList.add('serviceAppointment.Account'); + Map resultStr = FollowUpAppointmentController.saveFieldSettings( + objectList + ); + system.assert(resultStr.size() > -1, true); + + List objectList2 = new List(); + objectList2.add('2'); + objectList2.add('screentitle'); + objectList2.add('serviceAppointment.Account'); + Map resultStr2 = FollowUpAppointmentController.saveFieldSettings( + objectList2 + ); + + List objectList3 = new List(); + objectList3.add('3'); + objectList3.add('screentitle'); + objectList3.add('serviceAppointment.Account'); + Map resultStr3 = FollowUpAppointmentController.saveFieldSettings( + objectList3 + ); + + Test.stopTest(); + } + } + + @isTest + static void Test_deleteScreen() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); + settingsObj.ShowExactArrivalTime__c = true; + settingsObj.Operating_Hours__c = oh.Id; + settingsObj.Scheduling_Policy__c = sp.Id; + settingsObj.Name = 'AA_Followup_Settings'; + settingsObj.Screen_Title_1__c = 'abc'; + settingsObj.Screen_Title_2__c = 'abc'; + settingsObj.Screen_Title_3__c = 'abc'; + settingsObj.Record_To_Create__c = 'workOrder'; + settingsObj.Scheduling_Horizon_Value__c = 12; + settingsObj.Technician_Assigment__c = '23'; + insert settingsObj; + + Test.startTest(); + + Map resultStrz = FollowUpAppointmentController.duplicateScreenData( + 1, + 1 + ); + system.assert(resultStrz.size() > -1, true); + Map resultStr2z = FollowUpAppointmentController.duplicateScreenData( + 1, + 2 + ); + Map resultStr3z = FollowUpAppointmentController.duplicateScreenData( + 1, + 3 + ); + + Map resultStr4 = FollowUpAppointmentController.duplicateScreenData( + 2, + 1 + ); + Map resultStr5 = FollowUpAppointmentController.duplicateScreenData( + 2, + 2 + ); + Map resultStr6 = FollowUpAppointmentController.duplicateScreenData( + 2, + 3 + ); + + Map resultStr7 = FollowUpAppointmentController.duplicateScreenData( + 3, + 1 + ); + Map resultStr8 = FollowUpAppointmentController.duplicateScreenData( + 3, + 2 + ); + Map resultStr9 = FollowUpAppointmentController.duplicateScreenData( + 3, + 3 + ); + + Map swipeLeft1 = FollowUpAppointmentController.swapScreenLeftRight( + 1, + 2 + ); + Map swipeLeft2 = FollowUpAppointmentController.swapScreenLeftRight( + 2, + 3 + ); + Map swipeLeft3 = FollowUpAppointmentController.swapScreenLeftRight( + 3, + 3 + ); + + Map resultStr = FollowUpAppointmentController.deleteScreen( + 1 + ); + system.assert(resultStr.size() > -1, true); + Map resultStr2 = FollowUpAppointmentController.deleteScreen( + 2 + ); + Map resultStr3 = FollowUpAppointmentController.deleteScreen( + 3 + ); + + Test.stopTest(); + } + } + + // @isTest + // static void Test_duplicateScreenData() { + // User user = createUserWithPermSet(ADMIN_EMAIL); + // makeData(user); + // system.runas(user) { + // FollowupAppointmentSettings__c settingsObj = new FollowupAppointmentSettings__c(); + // settingsObj.ShowExactArrivalTime__c = true; + // settingsObj.Operating_Hours__c = oh.Id; + // settingsObj.Scheduling_Policy__c = sp.Id; + // settingsObj.Name = 'AA_Followup_Settings'; + // settingsObj.Screen_Title_1__c = 'abc'; + // settingsObj.Screen_Title_2__c = 'abc'; + // settingsObj.Screen_Title_3__c = 'abc'; + // settingsObj.Record_To_Create__c = 'workOrder'; + // settingsObj.Scheduling_Horizon_Value__c = 12; + // settingsObj.Technician_Assigment__c = '23'; + // insert settingsObj; + + // Test.startTest(); + // Map resultStr = FollowUpAppointmentController.duplicateScreenData(1,1); + // system.assert(resultStr.size() > -1, true); + // Map resultStr2 = FollowUpAppointmentController.duplicateScreenData(1,2); + // Map resultStr3 = FollowUpAppointmentController.duplicateScreenData(1,3); + + // Map resultStr4 = FollowUpAppointmentController.duplicateScreenData(2,1); + // Map resultStr5 = FollowUpAppointmentController.duplicateScreenData(2,2); + // Map resultStr6 = FollowUpAppointmentController.duplicateScreenData(2,3); + + // Map resultStr7 = FollowUpAppointmentController.duplicateScreenData(3,1); + // Map resultStr8 = FollowUpAppointmentController.duplicateScreenData(3,2); + // Map resultStr9 = FollowUpAppointmentController.duplicateScreenData(3,3); + // Test.stopTest(); + // } + // } + + // @isTest + // static void Test_saveFieldSettings() { + // User user = createUserWithPermSet(ADMIN_EMAIL); + // makeData(user); + // system.runas(user) { + // Test.startTest(); + // List objectList = new List(); + // objectList.add('1'); + // objectList.add('screentitle'); + // objectList.add('serviceAppointment.Account'); + // Map resultStr = FollowUpAppointmentController.saveFieldSettings(objectList); + // system.assert(resultStr.size() > -1, true); + // Test.stopTest(); + // } + // } + + @isTest + static void Test_formatDataBaseOnValue() { + String decimalValue = '30.00'; + String dateTimeValue = '2021-03-11 10:00:00'; + String booleanValue = 'true'; + String stringValue = 'string'; + Boolean answer1 = false; + Boolean answer2 = false; + Boolean answer3 = false; + Boolean answer4 = false; + + Test.startTest(); + + Object decimalOutput = FollowUpAppointmentController.formatDataBaseOnValue( + 'Double', + decimalValue + ); + Object dateTimeOutput = FollowUpAppointmentController.formatDataBaseOnValue( + 'DateTime', + dateTimeValue + ); + Object booleanOutput = FollowUpAppointmentController.formatDataBaseOnValue( + 'Boolean', + booleanValue + ); + Object stringOutput = FollowUpAppointmentController.formatDataBaseOnValue( + 'String', + stringValue + ); + + if (decimalOutput instanceof Decimal) + answer1 = true; + if (dateTimeOutput instanceof DateTime) + answer2 = true; + if (booleanOutput instanceof Boolean) + answer3 = true; + if (stringOutput instanceof String) + answer4 = true; + + system.assert(answer1, true); + system.assert(answer2, true); + system.assert(answer3, true); + system.assert(answer4, true); + + Test.stopTest(); + } + + @isTest + static void test_createRecord_WO() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List arr = new List(); + arr.add('ServiceAppointment,Duration,Double,60'); + arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); + arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); + Test.startTest(); + Map resultArray = FollowUpAppointmentController.createRecord( + 'WorkOrder', + wo.Id, + arr, + sa.ArrivalWindowStartTime, + sa.ArrivalWindowEndTime, + '10' + ); + Test.stopTest(); + } + } + + @isTest + static void test_createRecord_WO_SA() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List arr = new List(); + arr.add('WorkOrder,WorkTypeId,Reference,' + wt_sa.Id); + arr.add('ServiceAppointment,Duration,Double,60'); + arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); + arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); + Test.startTest(); + Map resultArray = FollowUpAppointmentController.createRecord( + 'WorkOrder', + wo_sa.Id, + arr, + sa.ArrivalWindowStartTime, + sa.ArrivalWindowEndTime, + '10' + ); + Test.stopTest(); + } + } + + @isTest + static void test_createRecord_WOLI() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List arr = new List(); + arr.add('ServiceAppointment,Duration,Double,60'); + arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); + arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); + Test.startTest(); + Map resultArray = FollowUpAppointmentController.createRecord( + 'WorkOrderLineItem', + wo.Id, + arr, + sa.ArrivalWindowStartTime, + sa.ArrivalWindowEndTime, + '10' + ); + Test.stopTest(); + } + } + + @isTest + static void test_createRecord_WOLI_SA() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List arr = new List(); + arr.add('WorkOrderLineItem,WorkTypeId,Reference,' + wt_sa.Id); + arr.add('ServiceAppointment,Duration,Double,60'); + arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); + arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); + Test.startTest(); + Map resultArray = FollowUpAppointmentController.createRecord( + 'WorkOrderLineItem', + wo_sa.Id, + arr, + sa.ArrivalWindowStartTime, + sa.ArrivalWindowEndTime, + '10' + ); + Test.stopTest(); + } + } + + @isTest + static void test_createRecord_SA() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + List arr = new List(); + arr.add('ServiceAppointment,Duration,Double,60'); + arr.add('ServiceAppointment,DurationType,Picklist,Minutes'); + arr.add('ServiceAppointment,FSL__Auto_Schedule__c,Boolean,false'); + Test.startTest(); + Map resultArray = FollowUpAppointmentController.createRecord( + 'ServiceAppointment', + wo.Id, + arr, + sa.ArrivalWindowStartTime, + sa.ArrivalWindowEndTime, + '10' + ); + Test.stopTest(); + } + } + + @isTest + static void test_checkPermissionSetAssignment() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Map resultArray = FollowUpAppointmentController.checkPermSetAssignedToUser(); + Test.stopTest(); + } + } + + @isTest + static void test_getWorkTypeOffset() { + User user = createUserWithPermSet(ADMIN_EMAIL); + makeData(user); + System.runAs(user) { + Test.startTest(); + Decimal offset = FollowUpAppointmentController.getWorkTypeOffset(wt.Name); + Test.stopTest(); + } + } +} diff --git a/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml b/projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml similarity index 77% rename from FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml index 40d6793..891916b 100644 --- a/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/classes/ut_FollowUpAppointmentController.cls-meta.xml @@ -1,4 +1,4 @@ - + 54.0 Active diff --git a/FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml b/projects/FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml similarity index 88% rename from FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml index 389b820..8cb8163 100644 --- a/FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/customLables/aaFollowupAppointmentCustomLabels.labels-meta.xml @@ -1,4 +1,4 @@ - + @@ -227,7 +227,8 @@ en_US true FollowUpAppointments - Schedule Appointment landing page title + Schedule Appointment landing page title Schedule Appoinyment @@ -235,7 +236,8 @@ en_US true FollowUpAppointments - Schedule Appoinyment compact info title + Schedule Appoinyment compact info title Appointment Details @@ -251,31 +253,38 @@ en_US true FollowUpAppointments - Accept new Appointment - button text + Accept new Appointment - button text Schedule - FollowUpAppointments_toastMessage_appointment_schedule + FollowUpAppointments_toastMessage_appointment_schedule en_US true FollowUpAppointments - Toast message when appointment gets scheduled + Toast message when appointment gets scheduled Appointment was scheduled. - FollowUpAppointments_same_appointment_selected_warning + FollowUpAppointments_same_appointment_selected_warning en_US true FollowUpAppointments - Schedule appointment - Same slot selected warning + Schedule appointment - Same slot selected warning Slot already booked. Please select another slot. - FollowUpAppointments_toastMessage_schedule_appointment_fail_message + FollowUpAppointments_toastMessage_schedule_appointment_fail_message en_US true FollowUpAppointments - Toast message schedule appointment fails to get update + Toast message schedule appointment fails to get update We couldn’t schedule the appointment. Try again later. @@ -283,7 +292,8 @@ en_US true FollowUpAppointments - confirmation page failure message when booking fails + confirmation page failure message when booking fails It’s not you, it’s us. Please start over. @@ -299,7 +309,8 @@ en_US true FollowUpAppointments - Show today text followed by date in time slot header + Show today text followed by date in time slot header Today @@ -311,27 +322,33 @@ Appointment was canceled. - FollowUpAppointments_toastMessage_cancel_appointment_fail_message + FollowUpAppointments_toastMessage_cancel_appointment_fail_message en_US true FollowUpAppointments - Toast message cancel appointment fails to get update + Toast message cancel appointment fails to get update We couldn’t cancel the appointment. Try again later. - FollowUpAppointments_toastMessage_appointment_confirmed + FollowUpAppointments_toastMessage_appointment_confirmed en_US true FollowUpAppointments - Toast message when appointment gets confirmed + Toast message when appointment gets confirmed Appointment was confirmed. - FollowUpAppointments_toastMessage_confirm_appointment_fail_message + FollowUpAppointments_toastMessage_confirm_appointment_fail_message en_US true FollowUpAppointments - Toast message confirm appointment fails to get update + Toast message confirm appointment fails to get update We couldn’t confirm the appointment. Try again later. @@ -351,7 +368,8 @@ Next - FollowUpAppointments_select_an_available_appointment_time + FollowUpAppointments_select_an_available_appointment_time en_US true FollowUpAppointments @@ -383,7 +401,8 @@ Assigned to You ({0}) - FollowUpAppointments_assigned_to_any_available_worker + FollowUpAppointments_assigned_to_any_available_worker en_US true FollowUpAppointments @@ -407,35 +426,43 @@ Recommended Appointments - FollowUpAppointments_cant_select_Mobile_Worker_excluded + FollowUpAppointments_cant_select_Mobile_Worker_excluded en_US true FollowUpAppointments - Title for assign to mobile worker radio resource is excluded - You can’t select a mobile worker for this appointment. Ask your admin for help. + Title for assign to mobile worker radio resource is excluded + You can’t select a mobile worker for this appointment. Ask your admin for help. FollowUpAppointments_Mobile_Worker_radio_title en_US true FollowUpAppointments - Title for assign to mobile worker radio + Title for assign to mobile worker radio Mobile Worker - FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable + FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable en_US true FollowUpAppointments - Label mobile worker radio assign to me option with tech name + Label mobile worker radio assign to me option with tech name You - FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable + FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable en_US true FollowUpAppointments - Label mobile worker radio assign to any available technitian + Label mobile worker radio assign to any available technitian Any available worker @@ -451,31 +478,38 @@ en_US true FollowUpAppointments - Label for show results button on full page calendar + Label for show results button on full page calendar OK - FollowUpAppointments_empty_state_select_any_available_worker + FollowUpAppointments_empty_state_select_any_available_worker en_US true FollowUpAppointments - If no appointments available and the MW can select any available worker - Change the worker or date and try again. If you still can’t find any appointments, contact your admin for help. + If no appointments available and the MW can select any available worker + Change the worker or date and try again. If you still can’t find any appointments, contact your admin for help. FollowUpAppointments_empty_state_change_the_dates en_US true FollowUpAppointments - If no appointments available and the MW can't select any available worker - Change the date and try again. If you can’t find any appointments, contact your admin for help. + If no appointments available and the MW can't select any available worker + Change the date and try again. If you can’t find any appointments, contact your admin for help. FollowUpAppointments_view_more_button en_US true FollowUpAppointments - Label for view more appointments button + Label for view more appointments button View More @@ -483,7 +517,8 @@ en_US true FollowUpAppointments - Schedule Appointment Bottom sheet success + Schedule Appointment Bottom sheet success The appointment was scheduled. @@ -491,7 +526,8 @@ en_US true FollowUpAppointments - Title for Schedule Appointment Bottom sheet failure + Title for Schedule Appointment Bottom sheet failure We couldn’t schedule the appointment. @@ -499,7 +535,8 @@ en_US true FollowUpAppointments - Content Schedule Appointment Bottom sheet failure + Content Schedule Appointment Bottom sheet failure Select a different time slot, or try again later. @@ -672,12 +709,14 @@ en_US true FollowUpAppointments - Heading text for Assignment Permission section + Heading text for Assignment Permission section Let mobile workers assign work to - FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker + FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker en_US true FollowUpAppointments @@ -704,7 +743,8 @@ - FollowUpAppointments_Allow_tech_to_create_object_title + FollowUpAppointments_Allow_tech_to_create_object_title en_US true FollowUpAppointments @@ -722,7 +762,8 @@ - FollowUpAppointments_setting_page_cancel_button_label + FollowUpAppointments_setting_page_cancel_button_label en_US true FollowUpAppointments @@ -850,7 +891,8 @@ - FollowUpAppointments_settings_operatingHours_helpText + FollowUpAppointments_settings_operatingHours_helpText en_US true FollowUpAppointments @@ -859,7 +901,8 @@ - FollowUpAppointments_settings_operatingHours_helpText + FollowUpAppointments_settings_operatingHours_helpText en_US true FollowUpAppointments @@ -958,7 +1001,8 @@ - FollowUpAppointments_preview_appointmentDateTime_title + FollowUpAppointments_preview_appointmentDateTime_title en_US true FollowUpAppointments @@ -967,7 +1011,8 @@ - FollowUpAppointments_preview_appointmentDetails_title + FollowUpAppointments_preview_appointmentDetails_title en_US true FollowUpAppointments @@ -999,7 +1044,8 @@ true FollowUpAppointments info bubble text in preview screen - Configure the scheduling settings and the permissions in the Settings tab. + Configure the scheduling settings and the permissions in the Settings tab. @@ -1048,7 +1094,8 @@ - FollowUpAppointments_settingPage_error_duplicate_screen + FollowUpAppointments_settingPage_error_duplicate_screen en_US true FollowUpAppointments @@ -1057,7 +1104,8 @@ - FollowUpAppointments_settingPage_error_delete_screen + FollowUpAppointments_settingPage_error_delete_screen en_US true FollowUpAppointments @@ -1122,29 +1170,35 @@ - FollowUpAppointments_settings_duplicateScreenToastMessage + FollowUpAppointments_settings_duplicateScreenToastMessage en_US true FollowUpAppointments - Replace the {0} with step name that will be duplicated + Replace the {0} with step name that will be duplicated Step {0} was duplicated. - FollowUpAppointments_settings_deleteScreenToastMessage + FollowUpAppointments_settings_deleteScreenToastMessage en_US true FollowUpAppointments - Replace the {0} with step name that will be duplicated + Replace the {0} with step name that will be duplicated Step {0} was deleted. - FollowUpAppointments_settings_createScreenToastMessage + FollowUpAppointments_settings_createScreenToastMessage en_US true FollowUpAppointments - Replace the {0} with step name that will be duplicated + Replace the {0} with step name that will be duplicated Step {0} was created. @@ -1153,7 +1207,8 @@ en_US true FollowUpAppointments - Failure toast message while adding step + Failure toast message while adding step We couldn’t add the step. Try again later. diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/.eslintrc.json b/projects/FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/.eslintrc.json rename to projects/FollowUpAppointment/force-app/main/default/lwc/.eslintrc.json diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js new file mode 100644 index 0000000..7cf675f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/__tests__/followUpAppointmentCustomToastNotifications.test.js @@ -0,0 +1,48 @@ +import { createElement } from "lwc"; +import FollowUpAppointmentCustomToastNotifications from "c/followUpAppointmentCustomToastNotifications"; + +let element; +describe("c-follow-up-appointment-custom-toast-notifications", () => { + afterEach(() => { + // The jsdom instance is shared across test cases in a single file so reset the DOM + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + beforeEach(() => { + element = createElement( + "c-follow-up-appointment-custom-toast-notifications", + { + is: FollowUpAppointmentCustomToastNotifications + } + ); + + element.timeout = 3000; + element.sticky = true; + element.toastId = 0; + + document.body.appendChild(element); + }); + + it("Should dismiss toast", async () => { + element.showToast("success", "message1"); // show the first toast + element.showToast("success", "message2"); // show the second toast + + return Promise.resolve().then(() => { + expect(element.toastId).toBe(2); // should have shown two toast messages + + const action = element.shadowRoot.querySelector("lightning-button-icon"); + action.click(); + + expect(element.toastId).toBe(1); // should have removed one of the toast messages + }); + }); + + it("Should show toast", async () => { + const methodNameFake = jest.spyOn(element, "showToast"); + element.showToast("success", "message"); + expect(methodNameFake).toHaveBeenCalledTimes(1); + expect(element.toastId).toBe(1); + }); +}); diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.html b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.html similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.html rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.html diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js similarity index 86% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js index 32868d8..c0ec35f 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js @@ -1,6 +1,6 @@ /* eslint-disable @lwc/lwc/no-api-reassignments */ /* eslint-disable @lwc/lwc/no-async-operation */ -import { LightningElement, track, api } from 'lwc'; +import { LightningElement, track, api } from "lwc"; export default class FollowUpAppointmentCustomToastNotifications extends LightningElement { @track toastList = []; @@ -14,8 +14,8 @@ export default class FollowUpAppointmentCustomToastNotifications extends Lightni headerMessage: type, message: message, id: this.toastId, - iconName: 'utility:' + type, - headerClass: 'slds-notify slds-notify_toast slds-theme_' + type, + iconName: "utility:" + type, + headerClass: "slds-notify slds-notify_toast slds-theme_" + type }; this.toastId = this.toastId + 1; diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentCustomToastNotifications/followUpAppointmentCustomToastNotifications.js-meta.xml diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css new file mode 100644 index 0000000..0dfe04e --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.css @@ -0,0 +1,108 @@ +.mainContainer { + margin-top: 60px; + background: #ffffff; +} +.mainTitle { + font-style: normal; + font-weight: 400; + font-size: 18px; + line-height: 21px; + color: #181818; + margin-top: -3px; +} +.stepsTitle { + font-style: normal; + font-weight: 400; + font-size: 14px; + line-height: 18px; + color: #444444; +} +.headerDiv { + position: fixed; + top: 0; + left: 0; + border-top: 1px solid #e1e1e1; + padding: 16px; + height: 66px; + width: 100%; + background: linear-gradient(0deg, #f3f3f3, #f3f3f3), + linear-gradient(0deg, #f3f3f3, #f3f3f3); + z-index: 100; +} +.backButton { + height: 35px; + display: flex; + width: 34px; + align-items: center; + margin-left: 0; + justify-items: center; +} +.customPageDiv { + padding: 16px 11px 86px 11px; +} +.nextButton { + width: 100%; + height: 100%; + font-size: 1rem; + border-radius: 12px; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + background-color: #0176d3; + --slds-c-button-brand-color-background-hover: #0176d3; +} +.nextButtonDiv { + position: fixed; + bottom: 0; + left: 0; + border-top: 1px solid #e1e1e1; + padding: 16px; + height: 80px; + width: 100%; + background-color: #fff; + z-index: 98; +} +.empty-slots-container { + background-color: white; + display: flex; + flex-direction: column; + align-items: center; + padding: 200px 16px; + margin-top: 10px; +} +.endPageMainTitle { + margin-top: 20px; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; +} +.endPageSecondTitle { + margin-top: 20px; + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; + width: 250px; + text-align: center; +} +/* CSS Overrides */ +.spinner { + position: relative; + display: inline-block; + text-align: center; +} +.slds-spinner { + position: fixed; +} +.slds-spinner_container { + position: fixed; +} +.slds-faux-input, +.slds-input, +.slds-select_container .slds-select, +.slds-textarea { + border: 2px solid #c9c9c9; + border-radius: 12px; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html new file mode 100644 index 0000000..d5d2e8f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.html @@ -0,0 +1,161 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js similarity index 61% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js index 9c0f105..e1e154b 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js @@ -1,19 +1,19 @@ /* eslint-disable no-unused-expressions */ /* eslint-disable @lwc/lwc/no-inner-html */ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api, wire, track } from 'lwc'; -import getSettingsObject from '@salesforce/apex/FollowUpAppointmentController.getSettingsObject'; -import createRecord from '@salesforce/apex/FollowUpAppointmentController.createRecord'; -import { getRecord } from 'lightning/uiRecordApi'; +import { LightningElement, api, wire, track } from "lwc"; +import getSettingsObject from "@salesforce/apex/FollowUpAppointmentController.getSettingsObject"; +import createRecord from "@salesforce/apex/FollowUpAppointmentController.createRecord"; +import { getRecord } from "lightning/uiRecordApi"; -import ID_FIELD from '@salesforce/schema/ServiceAppointment.Id'; -import WORK_TYPE_FIELD from '@salesforce/schema/ServiceAppointment.WorkTypeId'; -import SCHED_END_FIELD from '@salesforce/schema/ServiceAppointment.SchedEndTime'; -import SCHED_START_FIELD from '@salesforce/schema/ServiceAppointment.SchedStartTime'; -import APPOINTMENT_NUMBER_FIELD from '@salesforce/schema/ServiceAppointment.AppointmentNumber'; -import DURATION from '@salesforce/schema/ServiceAppointment.Duration'; -import overrideCSS from './overrideCSS'; -import customLabels from './labels'; +import ID_FIELD from "@salesforce/schema/ServiceAppointment.Id"; +import WORK_TYPE_FIELD from "@salesforce/schema/ServiceAppointment.WorkTypeId"; +import SCHED_END_FIELD from "@salesforce/schema/ServiceAppointment.SchedEndTime"; +import SCHED_START_FIELD from "@salesforce/schema/ServiceAppointment.SchedStartTime"; +import APPOINTMENT_NUMBER_FIELD from "@salesforce/schema/ServiceAppointment.AppointmentNumber"; +import DURATION from "@salesforce/schema/ServiceAppointment.Duration"; +import overrideCSS from "./overrideCSS"; +import customLabels from "./labels"; export default class followUpAppointmentMain extends LightningElement { // ----------------------------------- slot lwc ----------------------------------------------- @@ -27,7 +27,7 @@ export default class followUpAppointmentMain extends LightningElement { SCHED_END_FIELD, SCHED_START_FIELD, APPOINTMENT_NUMBER_FIELD, - DURATION, + DURATION ]; // ----------------------------------- variables --------------------------------------------- @@ -81,7 +81,11 @@ export default class followUpAppointmentMain extends LightningElement { this.recordIdRealValue = recordId; } - @wire(getRecord, { recordId: '$recordId', layoutTypes: ['Full'], modes: ['View'] }) + @wire(getRecord, { + recordId: "$recordId", + layoutTypes: ["Full"], + modes: ["View"] + }) wiredRecord({ data, error }) { if (data) { this.record = data; @@ -89,7 +93,7 @@ export default class followUpAppointmentMain extends LightningElement { this.recordName = data.apiName; } else { this.record = null; - console.log('Error while get record is : ' + error); + console.log("Error while get record is : " + error); } } @@ -102,7 +106,7 @@ export default class followUpAppointmentMain extends LightningElement { // ------------------------------------------------------------------------------------------ connectedCallback() { - const myStyle = document.createElement('style'); + const myStyle = document.createElement("style"); myStyle.innerHTML = overrideCSS; document.head.appendChild(myStyle); @@ -111,77 +115,83 @@ export default class followUpAppointmentMain extends LightningElement { .then((settings) => { if (settings.error || settings.error2) { let error = settings.error ? settings.error : settings.error2; - console.log('Error while retrieving settings object: ' + error); + console.log("Error while retrieving settings object: " + error); this.allowScrolling(); } else { - console.log('Got settings object successfully'); + console.log("Got settings object successfully"); this.settings = settings; this.operatingHoursId = settings.operatingHoursId; this.schedulingPolicyId = settings.schedulingPolicyId; this.schedulingHorizonValue = settings.schedulingHorizonValue; - this.showExactArrivalTime = settings.showExactArrivalTime === 'true'; + this.showExactArrivalTime = settings.showExactArrivalTime === "true"; this.headerCustomPage1 = settings.headerCustomPage1; this.headerCustomPage2 = settings.headerCustomPage2; this.headerCustomPage3 = settings.headerCustomPage3; this.workerAssignmentOptions = settings.workerAssignmentOptions; if ( - this.settings.fieldsToShowPage1 === 'null' && - this.settings.fieldsToShowPage2 === 'null' && - this.settings.fieldsToShowPage3 === 'null' + this.settings.fieldsToShowPage1 === "null" && + this.settings.fieldsToShowPage2 === "null" && + this.settings.fieldsToShowPage3 === "null" ) { this.allowScrolling(); this.hideNoSetupError = false; this.hideHeader = true; this.hideNextButton = true; this.hideBackButton = true; - console.log('*** We couldn’t launch this action. Ask your admin for help. ***'); + console.log( + "*** We couldn’t launch this action. Ask your admin for help. ***" + ); } else { for (let index = 1; index < 4; index++) { - if (this.settings['fieldsToShowPage' + index] !== 'null') { + if (this.settings["fieldsToShowPage" + index] !== "null") { this.pagesArray.push(index); - this.settings['fieldsToShowPage' + index].split(';').forEach((field) => { - if (field.split(',')[0] !== '') { - this.listOfFields.push(field); - switch (field.split(',')[0]) { - case 'WorkOrder': - this['fieldsToRecordFormPage' + index].push({ - objectApiName: field.split(',')[0], - fieldApiName: field.split(',')[1], - recordId: this.recordId, - }); - break; - case 'WorkOrderLineItem': - this['fieldsToRecordFormPage' + index].push({ - objectApiName: field.split(',')[0], - fieldApiName: field.split(',')[1], - recordId: this.recordId, - }); - break; - case 'ServiceAppointment': - this['fieldsToRecordFormPage' + index].push({ - objectApiName: field.split(',')[0], - fieldApiName: field.split(',')[1], - recordId: settings.serviceAppointmentId, - }); - break; - default: { - break; + this.settings["fieldsToShowPage" + index] + .split(";") + .forEach((field) => { + if (field.split(",")[0] !== "") { + this.listOfFields.push(field); + switch (field.split(",")[0]) { + case "WorkOrder": + this["fieldsToRecordFormPage" + index].push({ + objectApiName: field.split(",")[0], + fieldApiName: field.split(",")[1], + recordId: this.recordId + }); + break; + case "WorkOrderLineItem": + this["fieldsToRecordFormPage" + index].push({ + objectApiName: field.split(",")[0], + fieldApiName: field.split(",")[1], + recordId: this.recordId + }); + break; + case "ServiceAppointment": + this["fieldsToRecordFormPage" + index].push({ + objectApiName: field.split(",")[0], + fieldApiName: field.split(",")[1], + recordId: settings.serviceAppointmentId + }); + break; + default: { + break; + } } } - } - }); + }); } } this.pagesArray.push(4); this.maxStepNumber = this.pagesArray.length; - this['hideCustomPage' + this.pagesArray[this.currentStepNumber - 1]] = false; + this[ + "hideCustomPage" + this.pagesArray[this.currentStepNumber - 1] + ] = false; } } }) .catch((error) => { - console.log('Error while retrieving settings object - ', error); + console.log("Error while retrieving settings object - ", error); this.allowScrolling(); }); } @@ -192,14 +202,16 @@ export default class followUpAppointmentMain extends LightningElement { } callCreateRecordClass(arrivalWindowStartTime, arrivalWindowEndTime) { - var querySelector = this.template.querySelectorAll('lightning-input-field'); - console.log('-- List of fields to update the new records'); + var querySelector = this.template.querySelectorAll("lightning-input-field"); + console.log("-- List of fields to update the new records"); querySelector.forEach((field) => { var index = this.listOfFields.findIndex((i) => - i.includes(field.parentElement.objectApiName + ',' + field.fieldName + ',') + i.includes( + field.parentElement.objectApiName + "," + field.fieldName + "," + ) ); - this.listOfFields[index] = this.listOfFields[index] + ',' + field.value; - console.log('-- ', this.listOfFields[index]); + this.listOfFields[index] = this.listOfFields[index] + "," + field.value; + console.log("-- ", this.listOfFields[index]); }); createRecord({ @@ -208,23 +220,25 @@ export default class followUpAppointmentMain extends LightningElement { listOfFields: this.listOfFields, arrivalWindowStartTime: arrivalWindowStartTime, arrivalWindowEndTime: arrivalWindowEndTime, - schedulingHorizonValue: this.schedulingHorizonValue, + schedulingHorizonValue: this.schedulingHorizonValue }) .then((newRecord) => { if (newRecord.error || newRecord.DML) { - console.log('-- Error : ', newRecord.error); - console.log('-- DML : ', newRecord.DML); + console.log("-- Error : ", newRecord.error); + console.log("-- DML : ", newRecord.DML); } else if (newRecord.success) { this.newRecordId = newRecord.SAId; this.newRecordNumber = newRecord.SANumber; - console.log('-- newRecordId : ', this.newRecordId); - console.log('-- newRecordNumber : ', this.newRecordNumber); + console.log("-- newRecordId : ", this.newRecordId); + console.log("-- newRecordNumber : ", this.newRecordNumber); this.scheduleSAMethod(this.newRecordId); } }) .catch((error) => { - console.log('-- error while creating record : ' + JSON.stringify(error)); - console.log('-- error : ', error); + console.log( + "-- error while creating record : " + JSON.stringify(error) + ); + console.log("-- error : ", error); this.allowScrolling(); }); } @@ -232,21 +246,21 @@ export default class followUpAppointmentMain extends LightningElement { scheduleSAMethod(newRecordId) { try { this.template - .querySelector('c-mobile-appointment-booking-landing') + .querySelector("c-mobile-appointment-booking-landing") .scheduleSAMethod(newRecordId); } catch (error) { - console.log('Error while scheduling SA : ' + error.message); + console.log("Error while scheduling SA : " + error.message); } finally { this.allowScrolling(); } } allowScrolling() { - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.showDataSpinner = false; } lockScrolling() { - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; this.showDataSpinner = true; } @@ -257,14 +271,14 @@ export default class followUpAppointmentMain extends LightningElement { handleButtonClick(event) { let index = this.currentStepNumber - 1; switch (event.target.name) { - case 'nextButton': - this['hideCustomPage' + this.pagesArray[index]] = true; - this['hideCustomPage' + this.pagesArray[index + 1]] = false; + case "nextButton": + this["hideCustomPage" + this.pagesArray[index]] = true; + this["hideCustomPage" + this.pagesArray[index + 1]] = false; this.currentStepNumber = this.currentStepNumber + 1; break; - case 'backButton': - this['hideCustomPage' + this.pagesArray[index]] = true; - this['hideCustomPage' + this.pagesArray[index - 1]] = false; + case "backButton": + this["hideCustomPage" + this.pagesArray[index]] = true; + this["hideCustomPage" + this.pagesArray[index - 1]] = false; this.currentStepNumber = this.currentStepNumber - 1; break; default: { diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml similarity index 89% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml index f4087a4..c4d5c1d 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/followUpAppointmentMain.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 true @@ -14,4 +14,4 @@ ScreenAction - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js new file mode 100644 index 0000000..635f5ae --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/labels.js @@ -0,0 +1,19 @@ +import FollowUpAppointments_StepTitle1 from "@salesforce/label/c.FollowUpAppointments_StepTitle1"; +import FollowUpAppointments_StepTitle2 from "@salesforce/label/c.FollowUpAppointments_StepTitle2"; +import FollowUpAppointments_NextButtonText from "@salesforce/label/c.FollowUpAppointments_NextButtonText"; +import FollowUpAppointments_EndPageApprovalText1 from "@salesforce/label/c.FollowUpAppointments_EndPageApprovalText1"; +import FollowUpAppointments_EndPageApprovalText2 from "@salesforce/label/c.FollowUpAppointments_EndPageApprovalText2"; +import FollowUpAppointments_SlotsPageTitle from "@salesforce/label/c.FollowUpAppointments_SlotsPageTitle"; +import FollowUpAppointments_NoSetupError from "@salesforce/label/c.FollowUpAppointments_NoSetupError"; + +const customLabels = { + FollowUpAppointments_StepTitle1, + FollowUpAppointments_StepTitle2, + FollowUpAppointments_NextButtonText, + FollowUpAppointments_EndPageApprovalText1, + FollowUpAppointments_EndPageApprovalText2, + FollowUpAppointments_SlotsPageTitle, + FollowUpAppointments_NoSetupError +}; + +export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/overrideCSS.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/overrideCSS.js similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/overrideCSS.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentMain/overrideCSS.js diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js new file mode 100644 index 0000000..73bb744 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/__tests__/followUpAppointmentSettingsContainer.test.js @@ -0,0 +1,74 @@ +import { createElement } from "lwc"; +import followUpAppointmentSettingsContainer from "c/followUpAppointmentSettingsContainer"; + +let element; +describe("c-follow-up-appointment-settings-container", () => { + afterEach(() => { + // The jsdom instance is shared across test cases in a single file so reset the DOM + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + beforeEach(() => { + element = createElement("c-follow-up-appointment-settings-container", { + is: followUpAppointmentSettingsContainer + }); + + element.showDeleteDialogBox = true; + element.handleSaveEvent = jest.fn(); + element.handleCancelEvent = jest.fn(); + document.body.appendChild(element); + }); + + it("should show correct info", () => { + const fieldServiceLabel = + element.shadowRoot.querySelector(".fieldservicelabel"); + expect(fieldServiceLabel.textContent).toBe( + "c.FollowUpAppointments_field_service_title" + ); + + const mainTitleElement = + element.shadowRoot.querySelector(".followupmaintitle"); + expect(mainTitleElement.textContent).toBe( + "c.FollowUpAppointments_setting_page_title" + ); + + const pageTitle = element.shadowRoot.querySelector(".pageTitle"); + expect(pageTitle.textContent).toBe( + "c.FollowUpAppointments_setting_sub_title" + ); + + const pageDescription = + element.shadowRoot.querySelector(".pageDescription"); + expect(pageDescription.textContent).toBe( + "c.FollowUpAppointments_setting_description_text" + ); + }); + + it("test on save button", async () => { + console.log("Element is : " + element.shadowRoot); + const action = element.shadowRoot.querySelector('[data-id="saveBtn"]'); + console.log("Action is : " + action); + const spy = jest.spyOn(element, "handleSaveEvent"); + console.log(spy); + action.dispatchEvent(new CustomEvent("click")); + + return Promise.resolve().then(() => { + expect(spy).toHaveBeenCalledTimes(0); + }); + }); + + it("test on cancel button event", async () => { + console.log("Element is : " + element.shadowRoot); + const action = element.shadowRoot.querySelector('[data-id="cancelBtn"]'); + console.log("Action is : " + action); + const spy = jest.spyOn(element, "handleCancelEvent"); + console.log(spy); + action.dispatchEvent(new CustomEvent("click")); + + return Promise.resolve().then(() => { + expect(spy).toHaveBeenCalledTimes(0); + }); + }); +}); diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css new file mode 100644 index 0000000..d72a2b7 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.css @@ -0,0 +1,133 @@ +.header-icon { + margin-right: 12px; +} + +.comboBox { + margin-top: 25px; + width: 346px; + margin-left: 24px; +} + +.comboBoxBackGround { + background-color: #ffffff; +} + +.pageTitle { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 24px; + margin-left: 24px; + color: #181818; + margin-top: 16px; +} + +.pageDescription { + font-style: normal; + font-weight: 400; + font-size: 13px; + line-height: 20px; + height: 20px; + color: #444444; + margin-left: 24px; + margin-top: 8px; +} + +.lightningCardMain { + padding: 0px; + margin: 0px; + padding-top: 0px; + --slds-c-card-header-spacing-block-end: 0px; + --slds-c-card-header-spacing-block-start: 0px; + /* Removes SF Card body padding/margin top/bottom only */ + --slds-c-card-body-spacing-block-start: 0px; + --slds-c-card-body-spacing-block-end: 0px; +} + +.lightningTabMain { + padding-left: 0px; + --slds-c-card-header-spacing-block-end: 0px; + --slds-c-card-header-spacing-block-start: 0px; + /* Removes SF Card body padding/margin top/bottom only */ + --slds-c-card-body-spacing-block-start: 0px; + --slds-c-card-body-spacing-block-end: 0px; + padding-bottom: 0px; +} + +.footerLayout { + height: 56px; + background-color: #f3f3f3; + padding-right: 100px; + margin-top: 24px; + margin-bottom: 0px; +} + +.saveButton { + margin-top: 11px; +} + +.assignmentPermissionLayout { + margin-top: 10px; + margin-left: 24px; +} + +.permissionText { + margin-top: 25px; + margin-left: 24px; + font-style: normal; + font-size: 16px; + line-height: 24px; + height: 24px; + color: #181818; +} + +.permissionSubText { + margin-top: 8px; + margin-left: 24px; + font-style: normal; + font-size: 13px; + line-height: 20px; + color: #444444; +} + +.mobileWorkerText { + margin-top: 25px; + margin-left: 24px; + font-style: normal; + font-size: 12px; + line-height: 18px; +} + +.horizonUnitsInputField { + margin-top: 25px; + margin-left: 24px; + width: 346px; +} + +.horizonInputField { + width: 100%; +} + +.daysText { + margin-top: 30px; + margin-left: 7px; +} + +.modal { + /* Enable scroll if needed */ + /* Black w/ opacity */ + -webkit-animation-name: fadeIn; + /* Fade in the background */ + -webkit-animation-duration: 1.2s; +} + +/* Modal Content */ + +.modal-content { + position: fixed; + bottom: 0; + background-color: #fefefe; + -webkit-animation-name: slideIn; + -webkit-animation-duration: 1s; + border-radius: 16px 16px 0px 0px !important; +} diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.html b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.html similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.html rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.html diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js similarity index 71% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js index a760b47..9327769 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js @@ -1,20 +1,20 @@ /* eslint-disable @lwc/lwc/no-api-reassignments */ /* eslint-disable no-unused-expressions */ -import { LightningElement, track, api } from 'lwc'; -import getSchedulingPolicyList from '@salesforce/apex/FollowUpAppointmentController.getSchedulingPolicyList'; -import getOperatingHoursList from '@salesforce/apex/FollowUpAppointmentController.getOperatingHoursList'; -import saveSettings from '@salesforce/apex/FollowUpAppointmentController.saveSettings'; -import getConfigurationData from '@salesforce/apex/FollowUpAppointmentController.getConfigurationData'; -import checkPermSetAssignedToUser from '@salesforce/apex/FollowUpAppointmentController.checkPermSetAssignedToUser'; +import { LightningElement, track, api } from "lwc"; +import getSchedulingPolicyList from "@salesforce/apex/FollowUpAppointmentController.getSchedulingPolicyList"; +import getOperatingHoursList from "@salesforce/apex/FollowUpAppointmentController.getOperatingHoursList"; +import saveSettings from "@salesforce/apex/FollowUpAppointmentController.saveSettings"; +import getConfigurationData from "@salesforce/apex/FollowUpAppointmentController.getConfigurationData"; +import checkPermSetAssignedToUser from "@salesforce/apex/FollowUpAppointmentController.checkPermSetAssignedToUser"; -import customLabels from './labels'; +import customLabels from "./labels"; export default class followUpAppointmentSettingsContainer extends LightningElement { @track objectList = []; LABELS = customLabels; @track operatingHourList = []; @track slotDisplayOptions = []; - @api technicianAssigmentSelected = ''; + @api technicianAssigmentSelected = ""; showDialogBox = false; @track showWOSAoption = false; @track showWOLISAoption = false; @@ -22,7 +22,8 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme @api hasUnsavedChanges = false; arrival_window = this.LABELS.FollowUpAppointments_arriwal_window_title; - exact_appointment_time = this.LABELS.FollowUpAppointments_exact_appointment_time_title; + exact_appointment_time = + this.LABELS.FollowUpAppointments_exact_appointment_time_title; @api schedulingPolicySelected; @api operatingHoursSelected; @@ -47,7 +48,7 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme } callAPEX() { - console.log('Apex method called '); + console.log("Apex method called "); /** * GET scheduling Policy @@ -60,13 +61,16 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme throw new Error(data.error); } else { for (let i = 0; i < data.length; i++) { - this.objectList = [...this.objectList, { value: data[i], label: data[i] }]; + this.objectList = [ + ...this.objectList, + { value: data[i], label: data[i] } + ]; } this.dataLoaded = true; } }) .catch((error) => { - console.error('Error while getting scheduling policy : ' + error); + console.error("Error while getting scheduling policy : " + error); }); this.operatingHourList = []; @@ -78,24 +82,24 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme for (let i = 0; i < data.length; i++) { this.operatingHourList = [ ...this.operatingHourList, - { value: data[i], label: data[i] }, + { value: data[i], label: data[i] } ]; } this.dataLoaded = true; } }) .catch((error) => { - console.log('Error while getting scheduling policy : ' + error); + console.log("Error while getting scheduling policy : " + error); }); this.slotDisplayOptions = []; this.slotDisplayOptions = [ ...this.slotDisplayOptions, - { value: this.arrival_window, label: this.arrival_window }, + { value: this.arrival_window, label: this.arrival_window } ]; this.slotDisplayOptions = [ ...this.slotDisplayOptions, - { value: this.exact_appointment_time, label: this.exact_appointment_time }, + { value: this.exact_appointment_time, label: this.exact_appointment_time } ]; /** @@ -105,14 +109,14 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme checkPermSetAssignedToUser() .then((data) => { if (data.error) { - console.error('Error while assigning permission set ' + data.error); + console.error("Error while assigning permission set " + data.error); } else { // if permission is assigned , get the configuration data. this.loadConfigurationDetails(); } }) .catch((error) => { - console.log('Error while retrieving settings object - ', error); + console.log("Error while retrieving settings object - ", error); }); } @@ -121,42 +125,53 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme getConfigurationData() .then((settings) => { if (settings.error) { - console.error('Error while retrieving settings object ' + settings.error); + console.error( + "Error while retrieving settings object " + settings.error + ); this.validateSaveButton(); } else if (settings.null) { // No record found this.disableSaveButton = true; - console.error('Got settings object successfully, No record found in SDB'); + console.error( + "Got settings object successfully, No record found in SDB" + ); } else { - console.log('Got settings object successfully'); + console.log("Got settings object successfully"); - this.operatingHoursSelected = this.savedOH = settings.operatingHoursName; - this.schedulingPolicySelected = this.savedSP = settings.schedulingPolicyName; + this.operatingHoursSelected = this.savedOH = + settings.operatingHoursName; + this.schedulingPolicySelected = this.savedSP = + settings.schedulingPolicyName; this.schedulingHorizonUnits = this.savedSchedulingHorizonUnits = settings.schedulingHorizonValue; - console.log('Show exact arrival time is : ' + settings.showExactArrivalTime); + console.log( + "Show exact arrival time is : " + settings.showExactArrivalTime + ); - if (settings.showExactArrivalTime === 'true') { + if (settings.showExactArrivalTime === "true") { this.appointmentSlotOptionSelected = this.exact_appointment_time; } else { this.appointmentSlotOptionSelected = this.arrival_window; } - this.savedAppointmentSlotSelected = this.appointmentSlotOptionSelected; + this.savedAppointmentSlotSelected = + this.appointmentSlotOptionSelected; // assignment permission this.technicianAssigmentSelected = this.savedTechnicianAssignment = settings.Technician_Assigment__c; - const myArray = settings.objectsToCreate.split(','); + const myArray = settings.objectsToCreate.split(","); this.objectCreationAllowed = this.savedObjectCreation = myArray[0]; - console.log('1st array object is : ' + this.objectCreationAllowed); - myArray[0] === 'workOrder' ? (this.showWOSAoption = true) : (this.showWOSAoption = false); - myArray[0] === 'workOrderLineItem' + console.log("1st array object is : " + this.objectCreationAllowed); + myArray[0] === "workOrder" + ? (this.showWOSAoption = true) + : (this.showWOSAoption = false); + myArray[0] === "workOrderLineItem" ? (this.showWOLISAoption = true) : (this.showWOLISAoption = false); if (myArray.length > 1 && myArray[1].length > 0) { - myArray[0] === 'workOrder' + myArray[0] === "workOrder" ? (this.isSAWOselected = true) : (this.isSAWOLIselected = true); } @@ -165,24 +180,26 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme } }) .catch((error) => { - console.log('Error while retrieving settings object - ', error); + console.log("Error while retrieving settings object - ", error); }); } get assignmentPermissionOptions() { return [ { - label: this.LABELS.FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker, - value: '1', + label: + this.LABELS + .FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker, + value: "1" }, { label: this.LABELS.FollowUpAppointments_MobileWorkerAsignTo_any_worker, - value: '2', + value: "2" }, { label: this.LABELS.FollowUpAppointments_MobileWorkerAsignTo_themselves, - value: '3', - }, + value: "3" + } ]; } @@ -190,8 +207,8 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme return [ { label: this.LABELS.FollowUpAppointments_objectName_WorkOrder, - value: 'WorkOrder', - }, + value: "WorkOrder" + } ]; } @@ -199,8 +216,8 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme return [ { label: this.LABELS.FollowUpAppointments_objectName_ServiceAppointment, - value: 'ServiceAppointment', - }, + value: "ServiceAppointment" + } ]; } @@ -208,8 +225,8 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme return [ { label: this.LABELS.FollowUpAppointments_objectName_WorkOrderLineItem, - value: 'WorkOrderLineItem', - }, + value: "WorkOrderLineItem" + } ]; } @@ -234,10 +251,10 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme // } // } - objectCreationAllowed = ''; + objectCreationAllowed = ""; onMobileUserObjectSelected(event) { const option = event.target.value; - console.log('OnMobile user object selected : ' + option); + console.log("OnMobile user object selected : " + option); this.objectCreationAllowed = option; this.savedObjectCreation !== this.objectCreationAllowed ? (this.hasUnsavedChanges = true) @@ -255,7 +272,7 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme } @api handleSaveEvent() { - console.log('Save event executed'); + console.log("Save event executed"); let arr = []; arr.push(this.schedulingPolicySelected); // 0 @@ -268,17 +285,18 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme arr.push(this.schedulingHorizonUnits); // 3 - let objectAllowedToBeCreated = ''; + let objectAllowedToBeCreated = ""; - this.objectCreationAllowed === 'ServiceAppointment' - ? (objectAllowedToBeCreated = objectAllowedToBeCreated + 'ServiceAppointment') + this.objectCreationAllowed === "ServiceAppointment" + ? (objectAllowedToBeCreated = + objectAllowedToBeCreated + "ServiceAppointment") : objectAllowedToBeCreated; - if (this.objectCreationAllowed === 'WorkOrder') { - objectAllowedToBeCreated = objectAllowedToBeCreated + 'WorkOrder'; + if (this.objectCreationAllowed === "WorkOrder") { + objectAllowedToBeCreated = objectAllowedToBeCreated + "WorkOrder"; } - if (this.objectCreationAllowed === 'WorkOrderLineItem') { - objectAllowedToBeCreated = objectAllowedToBeCreated + 'WorkOrderLineItem'; + if (this.objectCreationAllowed === "WorkOrderLineItem") { + objectAllowedToBeCreated = objectAllowedToBeCreated + "WorkOrderLineItem"; } arr.push(objectAllowedToBeCreated); // 4 @@ -291,10 +309,10 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme saveSettings({ inputArr: arr }) .then((data) => { if (data.error) { - console.error('Got error while saving the data : ' + data); + console.error("Got error while saving the data : " + data); throw new Error(data.error); } else { - console.log('saved successfully'); + console.log("saved successfully"); this.showToastMessages( this.LABELS.FollowUpAppointments_settingPage_save_message, this.successVariant @@ -306,9 +324,11 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme } }) .catch((error) => { - console.log('Error while getting scheduling policy : ' + error); + console.log("Error while getting scheduling policy : " + error); this.showToastMessages( - this.LABELS.FollowUpAppointments_settingPage_error_message + ' : ' + error.message, + this.LABELS.FollowUpAppointments_settingPage_error_message + + " : " + + error.message, this.errorVariant ); }); @@ -332,7 +352,7 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme this.reloadChildComponent ? (this.reloadChildComponent = false) : (this.reloadChildComponent = true); - console.log('Lightning tab value changed'); + console.log("Lightning tab value changed"); } handleSchedulingPolicyChange(event) { @@ -361,15 +381,15 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme onSchedulingHorizonValueChange(event) { this.schedulingHorizonUnits = event.detail.value; - let nameCmp = this.template.querySelector('.horizonInputField'); + let nameCmp = this.template.querySelector(".horizonInputField"); // check if the entered value is numeric let regexPattern = /^-?[0-9]+$/; let result = regexPattern.test(this.schedulingHorizonUnits); if (event.detail.value && result) { - nameCmp.setCustomValidity(''); + nameCmp.setCustomValidity(""); } else { - nameCmp.setCustomValidity('Enter a number.'); + nameCmp.setCustomValidity("Enter a number."); } this.savedSchedulingHorizonUnits !== this.schedulingHorizonUnits ? (this.hasUnsavedChanges = true) @@ -377,13 +397,13 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme this.validateSaveButton(); } - @api successVariant = 'success'; - @api errorVariant = 'error'; - @api warningVariant = 'warning'; + @api successVariant = "success"; + @api errorVariant = "error"; + @api warningVariant = "warning"; showToastMessages(message, variant) { this.template - .querySelector('c-follow-up-appointment-custom-toast-notifications') + .querySelector("c-follow-up-appointment-custom-toast-notifications") .showToast(variant, message); } @@ -403,7 +423,8 @@ export default class followUpAppointmentSettingsContainer extends LightningEleme if ( this.schedulingPolicySelected === this.savedSP && this.operatingHoursSelected === this.savedOH && - this.appointmentSlotOptionSelected === this.savedAppointmentSlotSelected && + this.appointmentSlotOptionSelected === + this.savedAppointmentSlotSelected && this.objectCreationAllowed === this.savedObjectCreation && this.technicianAssigmentSelected === this.savedTechnicianAssignment && this.schedulingHorizonUnits === this.savedSchedulingHorizonUnits diff --git a/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/followUpAppointmentSettingsContainer.js-meta.xml diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js new file mode 100644 index 0000000..534db43 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/followUpAppointmentSettingsContainer/labels.js @@ -0,0 +1,67 @@ +import FollowUpAppointments_SchedulingPolicyTitle from "@salesforce/label/c.FollowUpAppointments_SchedulingPolicyTitle"; +import FollowUpAppointments_field_service_title from "@salesforce/label/c.FollowUpAppointments_field_service_title"; +import FollowUpAppointments_OperatingHoursTitle from "@salesforce/label/c.FollowUpAppointments_OperatingHoursTitle"; +import FollowUpAppointments_ShowAppointmentSlotsTitle from "@salesforce/label/c.FollowUpAppointments_ShowAppointmentSlotsTitle"; +import FollowUpAppointments_SchedulingHorizonUnitsTitle from "@salesforce/label/c.FollowUpAppointments_SchedulingHorizonUnitsTitle"; +import FollowUpAppointments_DaysTitle from "@salesforce/label/c.FollowUpAppointments_DaysTitle"; +import FollowUpAppointments_Permissions from "@salesforce/label/c.FollowUpAppointments_Permissions"; +import FollowUpAppointments_AssignmentPermission from "@salesforce/label/c.FollowUpAppointments_AssignmentPermission"; +import FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker from "@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker"; +import FollowUpAppointments_MobileWorkerAsignTo_themselves from "@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_themselves"; +import FollowUpAppointments_MobileWorkerAsignTo_any_worker from "@salesforce/label/c.FollowUpAppointments_MobileWorkerAsignTo_any_worker"; +import FollowUpAppointments_Allow_tech_to_create_object_title from "@salesforce/label/c.FollowUpAppointments_Allow_tech_to_create_object_title"; +import FollowUpAppointments_objectName_ServiceAppointment from "@salesforce/label/c.FollowUpAppointments_objectName_ServiceAppointment"; +import FollowUpAppointments_objectName_WorkOrder from "@salesforce/label/c.FollowUpAppointments_objectName_WorkOrder"; +import FollowUpAppointments_objectName_WorkOrderLineItem from "@salesforce/label/c.FollowUpAppointments_objectName_WorkOrderLineItem"; + +import FollowUpAppointments_arriwal_window_title from "@salesforce/label/c.FollowUpAppointments_arriwal_window_title"; +import FollowUpAppointments_exact_appointment_time_title from "@salesforce/label/c.FollowUpAppointments_exact_appointment_time_title"; + +import FollowUpAppointments_setting_sub_title from "@salesforce/label/c.FollowUpAppointments_setting_sub_title"; +import FollowUpAppointments_setting_description_text from "@salesforce/label/c.FollowUpAppointments_setting_description_text"; + +import FollowUpAppointments_placeHolder_select_an_option from "@salesforce/label/c.FollowUpAppointments_placeHolder_select_an_option"; +import FollowUpAppointments_placeHolder_enter_number from "@salesforce/label/c.FollowUpAppointments_placeHolder_enter_number"; + +import FollowUpAppointments_settingPage_save_message from "@salesforce/label/c.FollowUpAppointments_settingPage_save_message"; +import FollowUpAppointments_settingPage_error_message from "@salesforce/label/c.FollowUpAppointments_settingPage_error_message"; + +import FollowUpAppointments_setting_page_title from "@salesforce/label/c.FollowUpAppointments_setting_page_title"; +import FollowUpAppointments_Permissions_subtext from "@salesforce/label/c.FollowUpAppointments_Permissions_subtext"; + +import FollowUpAppointments_setting_page_save_button_label from "@salesforce/label/c.FollowUpAppointments_setting_page_save_button_label"; +import FollowUpAppointments_setting_page_cancel_button_label from "@salesforce/label/c.FollowUpAppointments_setting_page_cancel_button_label"; +import FollowUpAppointments_settingPage_warning_message from "@salesforce/label/c.FollowUpAppointments_settingPage_warning_message"; + +const customLabels = { + FollowUpAppointments_field_service_title, + FollowUpAppointments_SchedulingPolicyTitle, + FollowUpAppointments_setting_sub_title, + FollowUpAppointments_setting_description_text, + FollowUpAppointments_OperatingHoursTitle, + FollowUpAppointments_ShowAppointmentSlotsTitle, + FollowUpAppointments_SchedulingHorizonUnitsTitle, + FollowUpAppointments_DaysTitle, + FollowUpAppointments_Permissions, + FollowUpAppointments_AssignmentPermission, + FollowUpAppointments_MobileWorkerAsignTo_themselves_or_anyWorker, + FollowUpAppointments_MobileWorkerAsignTo_themselves, + FollowUpAppointments_MobileWorkerAsignTo_any_worker, + FollowUpAppointments_Allow_tech_to_create_object_title, + FollowUpAppointments_objectName_ServiceAppointment, + FollowUpAppointments_objectName_WorkOrder, + FollowUpAppointments_objectName_WorkOrderLineItem, + FollowUpAppointments_arriwal_window_title, + FollowUpAppointments_exact_appointment_time_title, + FollowUpAppointments_placeHolder_select_an_option, + FollowUpAppointments_placeHolder_enter_number, + FollowUpAppointments_settingPage_error_message, + FollowUpAppointments_settingPage_save_message, + FollowUpAppointments_setting_page_title, + FollowUpAppointments_Permissions_subtext, + FollowUpAppointments_setting_page_save_button_label, + FollowUpAppointments_setting_page_cancel_button_label, + FollowUpAppointments_settingPage_warning_message +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js new file mode 100644 index 0000000..102dfe4 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js @@ -0,0 +1,49 @@ +import FollowUpAppointments_MonthName_January from "@salesforce/label/c.FollowUpAppointments_MonthName_January"; +import FollowUpAppointments_MonthName_February from "@salesforce/label/c.FollowUpAppointments_MonthName_February"; +import FollowUpAppointments_MonthName_March from "@salesforce/label/c.FollowUpAppointments_MonthName_March"; +import FollowUpAppointments_MonthName_April from "@salesforce/label/c.FollowUpAppointments_MonthName_April"; +import FollowUpAppointments_MonthName_May from "@salesforce/label/c.FollowUpAppointments_MonthName_May"; +import FollowUpAppointments_MonthName_June from "@salesforce/label/c.FollowUpAppointments_MonthName_June"; +import FollowUpAppointments_MonthName_July from "@salesforce/label/c.FollowUpAppointments_MonthName_July"; +import FollowUpAppointments_MonthName_August from "@salesforce/label/c.FollowUpAppointments_MonthName_August"; +import FollowUpAppointments_MonthName_September from "@salesforce/label/c.FollowUpAppointments_MonthName_September"; +import FollowUpAppointments_MonthName_October from "@salesforce/label/c.FollowUpAppointments_MonthName_October"; +import FollowUpAppointments_MonthName_November from "@salesforce/label/c.FollowUpAppointments_MonthName_November"; +import FollowUpAppointments_MonthName_December from "@salesforce/label/c.FollowUpAppointments_MonthName_December"; + +import FollowUpAppointments_WeekDayShort_Mon from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Mon"; +import FollowUpAppointments_WeekDayShort_Tue from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Tue"; +import FollowUpAppointments_WeekDayShort_Wed from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Wed"; +import FollowUpAppointments_WeekDayShort_Thu from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Thu"; +import FollowUpAppointments_WeekDayShort_Fri from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Fri"; +import FollowUpAppointments_WeekDayShort_Saturday from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Saturday"; +import FollowUpAppointments_WeekDayShort_Sunday from "@salesforce/label/c.FollowUpAppointments_WeekDayShort_Sunday"; +import FollowUpAppointments_Select_a_Date from "@salesforce/label/c.FollowUpAppointments_Select_a_Date"; +import FollowUpAppointments_OK from "@salesforce/label/c.FollowUpAppointments_OK"; + +const customLabels = { + FollowUpAppointments_MonthName_January, + FollowUpAppointments_MonthName_February, + FollowUpAppointments_MonthName_March, + FollowUpAppointments_MonthName_April, + FollowUpAppointments_MonthName_May, + FollowUpAppointments_MonthName_June, + FollowUpAppointments_MonthName_July, + FollowUpAppointments_MonthName_August, + FollowUpAppointments_MonthName_September, + FollowUpAppointments_MonthName_October, + FollowUpAppointments_MonthName_November, + FollowUpAppointments_MonthName_December, + + FollowUpAppointments_WeekDayShort_Mon, + FollowUpAppointments_WeekDayShort_Tue, + FollowUpAppointments_WeekDayShort_Wed, + FollowUpAppointments_WeekDayShort_Thu, + FollowUpAppointments_WeekDayShort_Fri, + FollowUpAppointments_WeekDayShort_Saturday, + FollowUpAppointments_WeekDayShort_Sunday, + FollowUpAppointments_Select_a_Date, + FollowUpAppointments_OK +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css new file mode 100644 index 0000000..7839a9c --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css @@ -0,0 +1,199 @@ +.calendar-nav-header { + margin-top: 10px; + padding-top: 12px; + padding-bottom: 12px; + align-items: center; +} +.selectedDay { + border-radius: 50%; + color: #ffff; + height: 32px; + width: 32px; + background-color: #0176d3 !important; +} +.unselectedDay { + color: rgb(43, 40, 38); + height: 32px; + width: 32px; +} +.blockDate { + color: rgb(201, 199, 197); + height: 32px; + width: 32px; +} +.currentDay { + color: rgba(1, 1, 1, 1); + border-radius: 50%; + height: 32px; + width: 32px; + border: 1px solid rgba(1, 1, 1, 1) !important; +} +.currentDayBlocked { + color: rgb(201, 199, 197); + border-radius: 50%; + height: 32px; + width: 32px; + border: 1px solid rgba(159, 170, 181, 0.5) !important; + background-color: #eeeeee !important; +} +.btn { + border: none; + cursor: pointer; + display: inline-block; + border: none; + background-color: inherit; + padding: 0px; + margin-top: 6px; + height: 32px; + width: 32px; +} +.monthButton { + height: 24px; + font-size: 18px; + font-weight: 500; + letter-spacing: 0.38px; + line-height: 24px; + display: flex; + align-items: center; + --slds-c-button-text-color: #0176d3; +} +.full-calendar-month-button { + font-style: normal; + font-weight: 500; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + color: #181818; + margin-top: 16px; + margin-left: 10px; +} +tr { + text-align: center; +} +td { + text-align: center; + box-sizing: initial; + color: rgb(0, 112, 210); + height: 44px; + font-size: 16px; + font-weight: normal; + letter-spacing: -0.38px; +} +th { + text-align: center; + box-sizing: initial; + color: rgb(112, 110, 107); + font-size: 13px; + font-weight: normal; + letter-spacing: -0.08px; + line-height: 18px; + width: 44px; +} +.table { + font-size: medium; + vertical-align: middle; +} +*:focus { + outline: none; +} +.rightButton { + margin-left: 0px; + margin-right: 0px; + padding-left: 0px; + padding-right: 0px; + position: relative; + color: rgb(106, 106, 106); +} +.leftButton { + margin-left: 0px; + margin-right: 8px; + padding-left: 0px; + padding-right: 0px; + position: relative; + color: rgb(106, 106, 106); +} +.slds-popover { + z-index: 9000; +} + +.modal { + position: fixed; + top: auto; + bottom: 0px; + left: 0px; + height: 99%; + overflow-y: auto; +} +.breakLine { + margin: 0; + margin: 0 -16px 5px -16px; +} +.full-calendar-close-btn { + cursor: pointer; +} +.slds-modal__header { + padding: 14px; +} +.select-a-date-title { + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + text-align: center; + color: #181818; +} +.modal-footer { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding: 16px; + gap: 16px; + height: 80px; + border-radius: 0px; + flex: none; + order: 3; + align-self: stretch; + flex-grow: 0; + border-top: 1px solid rgba(159, 170, 181, 0.5); + position: fixed; + bottom: 0; + left: 0; + right: 0; + background-color: white; + z-index: 100; + padding-bottom: 24px; +} +.confirmBtn { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 50px; + font-size: 16px; + border-radius: 12px; + background-color: #0176d3; + font-weight: 500; +} +.dialogContainer { + padding: 60px 16px 80px 16px; + height: 99vh; +} +@media screen and (orientation: landscape) { + .slds-modal__container { + height: 130vh !important; + } +} + +.changecolor { + --lwc-colorTextIconDefault: #0176d3; + fill: #0176d3; + --sds-c-icon-color-foreground-default: #0176d3; +} + +.scrollableweek { + overflow-y: auto; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html new file mode 100644 index 0000000..93c9abc --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html @@ -0,0 +1,318 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js similarity index 82% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js index 5766da9..d443257 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js @@ -1,5 +1,5 @@ -import { LightningElement, api, track } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api, track } from "lwc"; +import customLabels from "./labels"; export default class AaRebookingCalendar extends LightningElement { LABELS = customLabels; @@ -15,7 +15,7 @@ export default class AaRebookingCalendar extends LightningElement { this.LABELS.FollowUpAppointments_MonthName_September, this.LABELS.FollowUpAppointments_MonthName_October, this.LABELS.FollowUpAppointments_MonthName_November, - this.LABELS.FollowUpAppointments_MonthName_December, + this.LABELS.FollowUpAppointments_MonthName_December ]; weekDaysArray = [ @@ -25,7 +25,7 @@ export default class AaRebookingCalendar extends LightningElement { this.LABELS.FollowUpAppointments_WeekDayShort_Wed, this.LABELS.FollowUpAppointments_WeekDayShort_Thu, this.LABELS.FollowUpAppointments_WeekDayShort_Fri, - this.LABELS.FollowUpAppointments_WeekDayShort_Saturday, + this.LABELS.FollowUpAppointments_WeekDayShort_Saturday ]; //passed from props @@ -109,7 +109,7 @@ export default class AaRebookingCalendar extends LightningElement { if (this.firstWeekDayIndex > 0) { for (let j = 0; j < this.firstWeekDayIndex; j++) { this.weekDaysArray.push(this.weekDaysArray.shift()); - console.log('New array is : ' + this.weekDaysArray); + console.log("New array is : " + this.weekDaysArray); } } } @@ -119,7 +119,7 @@ export default class AaRebookingCalendar extends LightningElement { } getYearMonthTitle(date) { - return this.months[date.getMonth()] + ' ' + date.getFullYear(); + return this.months[date.getMonth()] + " " + date.getFullYear(); } getWeekNoFromDate(date) { @@ -137,7 +137,7 @@ export default class AaRebookingCalendar extends LightningElement { calculateDateFromMonth(date, month) { var newDate = date; newDate.setMonth(date.getMonth() + month); - console.log('new Month is : ' + newDate); + console.log("new Month is : " + newDate); return newDate; } @@ -147,7 +147,7 @@ export default class AaRebookingCalendar extends LightningElement { var day = d.getDay(); var diff = d.getDate() - day + (start > day ? start - 7 : start); d.setDate(diff); - console.log('First day of week is : ' + d.getDate()); + console.log("First day of week is : " + d.getDate()); return d; } @@ -162,11 +162,13 @@ export default class AaRebookingCalendar extends LightningElement { connectedCallback() { //Fix for the issue that can't scroll down when full calendar is open and moving to landscape mode (W-12181896) - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.arrangeWeekDayArray(); if (this.isWeekView) { - this.showWeekView(this.getFirstDayOfWeek(this.currentSelectedDate, this.firstWeekDayIndex)); + this.showWeekView( + this.getFirstDayOfWeek(this.currentSelectedDate, this.firstWeekDayIndex) + ); } else { this.showMonthView(new Date()); } @@ -178,7 +180,7 @@ export default class AaRebookingCalendar extends LightningElement { */ showWeekView(firstdayOfWeek) { - console.log('First day of the week is : ' + firstdayOfWeek); + console.log("First day of the week is : " + firstdayOfWeek); this.boolShowPopover = false; this.noOfMonths = []; let firstArr = []; @@ -191,20 +193,25 @@ export default class AaRebookingCalendar extends LightningElement { tempDate.setDate(firstdayOfWeek.getDate() + i); firstArr.date = tempDate.getDate(); firstArr.value = tempDate; - firstArr.id = 'd' + tempDate.getDate(); + firstArr.id = "d" + tempDate.getDate(); tempRow.push(firstArr); } this.noofWeeks.push(tempRow); - console.log('Size of new array is : ' + this.noofWeeks.length); + console.log("Size of new array is : " + this.noofWeeks.length); } - this.currentMonthYearLabel = this.getYearMonthTitle(this.currentSelectedDate); - this.alternativeTextForMonthBtn = 'View month for ' + this.currentMonthYearLabel; + this.currentMonthYearLabel = this.getYearMonthTitle( + this.currentSelectedDate + ); + this.alternativeTextForMonthBtn = + "View month for " + this.currentMonthYearLabel; this.validateIfSelectedDateIsInRange(this.currentSelectedDate); this.setSelectedDateInWeekView(this.currentSelectedDate); if (this.disableDateBeforeCurrentDate) { this.validateLeftSwipeAction(firstdayOfWeek); } - this.validateRightSwipeAction(this.getLastDayOfWeek(firstdayOfWeek, this.firstWeekDayIndex)); + this.validateRightSwipeAction( + this.getLastDayOfWeek(firstdayOfWeek, this.firstWeekDayIndex) + ); } /** @@ -228,8 +235,14 @@ export default class AaRebookingCalendar extends LightningElement { let nextMonth = newDate.setMonth(currMonth + a); let newCurrMonth = new Date(nextMonth); calendarSelectedDate = newCurrMonth; - const firstDay = new Date(newCurrMonth.getFullYear(), newCurrMonth.getMonth()).getDay(); - const getNoOfDays = this.getDaysInMonth(newCurrMonth.getFullYear(), newCurrMonth.getMonth()); + const firstDay = new Date( + newCurrMonth.getFullYear(), + newCurrMonth.getMonth() + ).getDay(); + const getNoOfDays = this.getDaysInMonth( + newCurrMonth.getFullYear(), + newCurrMonth.getMonth() + ); let date = 1; let noofWeeks = []; @@ -240,8 +253,8 @@ export default class AaRebookingCalendar extends LightningElement { for (let i = 0; i < this.weekDaysArray.length; i++) { arr = []; if (j === 0 && i < firstDay) { - arr.date = ''; - arr.value = ''; + arr.date = ""; + arr.value = ""; days.push(arr); } else if (getNoOfDays >= date) { let dateValue = new Date(calendarSelectedDate); @@ -251,7 +264,10 @@ export default class AaRebookingCalendar extends LightningElement { arr.date = date; arr.value = dateValue; hasWeeksDate = true; - } else if (new Date(dateValue.setHours(0, 0, 0, 0)) > this.maxValidCalendarDate) { + } else if ( + new Date(dateValue.setHours(0, 0, 0, 0)) > + this.maxValidCalendarDate + ) { arr.date = date; arr.value = dateValue; hasWeeksDate = true; @@ -269,7 +285,9 @@ export default class AaRebookingCalendar extends LightningElement { arr.currentDay = true; } if (this.selectedDateByUser) { - let selectedDate = new Date(this.selectedDateByUser.setHours(0, 0, 0, 0)).getTime(); + let selectedDate = new Date( + this.selectedDateByUser.setHours(0, 0, 0, 0) + ).getTime(); if (currentDay === selectedDate) { arr.selected = true; } @@ -304,32 +322,32 @@ export default class AaRebookingCalendar extends LightningElement { months += d2.getMonth(); return months <= 0 ? 0 : months; } catch (e) { - console.error('getMonthDiff error: => ' + e.message); + console.error("getMonthDiff error: => " + e.message); return 0; } } handleClick(event) { switch (event.target.title) { - case 'previous': { + case "previous": { this.handlePreviousButtonClick(); break; } - case 'next': { + case "next": { this.handleNextButtonClick(); break; } - case 'Cancel': { + case "Cancel": { this.isWeekView = true; this.boolShowPopover = false; - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.selectedDateByUser = this.previousSelectedDateByUser; this.setSelectedDateInWeekView(this.currentSelectedDate); break; } - case 'OK': { + case "OK": { this.boolShowPopover = false; - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; if (this.selectedDateByUser) { this.handleDateSelectionEvent(this.selectedDateByUser, false); } @@ -338,7 +356,7 @@ export default class AaRebookingCalendar extends LightningElement { } default: { - if (event.currentTarget.title === 'weekViewDateId') { + if (event.currentTarget.title === "weekViewDateId") { let selectedDate = new Date(event.currentTarget.dataset.id); let days = selectedDate.getDate(); this.handleDateSelectionEvent(selectedDate, true); @@ -349,24 +367,38 @@ export default class AaRebookingCalendar extends LightningElement { this.noofWeeks[week][day].selected = false; if (this.noofWeeks[week][day].date === days) { this.noofWeeks[week][day].selected = true; - this.selectedDateByUser = new Date(event.currentTarget.dataset.id); + this.selectedDateByUser = new Date( + event.currentTarget.dataset.id + ); } } } } - if (event.currentTarget.title === 'monthViewDateId') { - if (event.currentTarget.dataset.id && event.currentTarget.dataset.id != null) { + if (event.currentTarget.title === "monthViewDateId") { + if ( + event.currentTarget.dataset.id && + event.currentTarget.dataset.id != null + ) { let selectedDate = new Date(event.currentTarget.dataset.id); let isValidDate = false; for (let month = 0; month < this.noOfMonths.length; month++) { - for (let week = 0; week < this.noOfMonths[month].weeks.length; week++) { - for (let day = 0; day < this.noOfMonths[month].weeks[week].length; day++) { + for ( + let week = 0; + week < this.noOfMonths[month].weeks.length; + week++ + ) { + for ( + let day = 0; + day < this.noOfMonths[month].weeks[week].length; + day++ + ) { this.noOfMonths[month].weeks[week][day].selected = false; // this line is causing isse when using ===. Hence reverting the lint change. // eslint-disable-next-line eqeqeq if ( - this.noOfMonths[month].weeks[week][day].value == event.currentTarget.dataset.id + this.noOfMonths[month].weeks[week][day].value === + event.currentTarget.dataset.id ) { if (this.noOfMonths[month].weeks[week][day].isValidDate) { isValidDate = true; @@ -390,7 +422,7 @@ export default class AaRebookingCalendar extends LightningElement { this.isWeekView = false; this.showMonthView(new Date()); this.boolShowPopover = true; - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; } getCurrentDate() { @@ -433,7 +465,9 @@ export default class AaRebookingCalendar extends LightningElement { } // SHOW CURRENT DATE IN WEEK VIEW - if (this.noofWeeks[week][day].value.setHours(0, 0, 0, 0) === currentDate) { + if ( + this.noofWeeks[week][day].value.setHours(0, 0, 0, 0) === currentDate + ) { this.noofWeeks[week][day].currentDay = true; } } @@ -471,13 +505,15 @@ export default class AaRebookingCalendar extends LightningElement { if (!this.isWeekView) { this.isWeekView = true; this.boolShowPopover = false; - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.currentSelectedDate = selectedDate; this.changeNextWeek(this.currentSelectedDate); - this.showWeekView(this.getFirstDayOfWeek(selectedDate, this.firstWeekDayIndex)); + this.showWeekView( + this.getFirstDayOfWeek(selectedDate, this.firstWeekDayIndex) + ); } - const customEvent = new CustomEvent('dateselection', { - detail: { date: selectedDate, isweekview: isSelectedFromWeekView }, + const customEvent = new CustomEvent("dateselection", { + detail: { date: selectedDate, isweekview: isSelectedFromWeekView } }); this.dispatchEvent(customEvent); } @@ -513,16 +549,18 @@ export default class AaRebookingCalendar extends LightningElement { changeNextWeek(selectedDate) { this.showWeekView(selectedDate); - const customEvent = new CustomEvent('weekchangeevent', { + const customEvent = new CustomEvent("weekchangeevent", { bubbles: true, composed: true, - detail: { date: selectedDate }, + detail: { date: selectedDate } }); this.dispatchEvent(customEvent); } changeNextMonth(addMonth) { - this.showMonthView(this.calculateDateFromMonth(this.currentSelectedDate, addMonth)); + this.showMonthView( + this.calculateDateFromMonth(this.currentSelectedDate, addMonth) + ); } validateLeftSwipeAction(firstDayOfTheWeek) { @@ -556,7 +594,7 @@ export default class AaRebookingCalendar extends LightningElement { handleTouchStart(evt) { this.xDown = evt.touches[0].clientX; this.yDown = evt.touches[0].clientY; - console.log('Touch : Start : ' + this.xDown); + console.log("Touch : Start : " + this.xDown); } handleToucEnd(evt) { @@ -598,15 +636,17 @@ export default class AaRebookingCalendar extends LightningElement { previousElement; executeScroll(selectedDate) { - var elementToShow = this.template.querySelector('[id^=d' + selectedDate.getDate() + ']'); + var elementToShow = this.template.querySelector( + "[id^=d" + selectedDate.getDate() + "]" + ); if (elementToShow) { try { elementToShow.scrollIntoView({ - behavior: 'smooth', - inline: 'end', + behavior: "smooth", + inline: "end" }); } catch (e) { - console.log('Error is : ' + e); + console.log("Error is : " + e); } } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js new file mode 100644 index 0000000..ec279fa --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js @@ -0,0 +1,7 @@ +import Schedule_Appointment_current_appointment_title from "@salesforce/label/c.Schedule_Appointment_current_appointment_title"; + +const customLabels = { + Schedule_Appointment_current_appointment_title +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css new file mode 100644 index 0000000..b067f60 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css @@ -0,0 +1,56 @@ +.container { + background-color: white; + padding: 16px 16px; +} +.title { + font-size: 18px; + line-height: 21px; + font-weight: 500; + color: rgb(0, 0, 0); + margin-bottom: 13px; +} + +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px 16px -16px; +} + +.info { + font-size: 16px; + line-height: 22px; + color: rgba(68, 68, 68, 1); + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; +} + +.info-emph { + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + color: #181818; + margin-bottom: 8px; +} + +.info-date { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; + display: flex; + align-items: center; + color: #181818; + margin-bottom: 8px; +} + +.secondary-title { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: #444444; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html new file mode 100644 index 0000000..d997787 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html @@ -0,0 +1,13 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js similarity index 82% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js index 659fcd7..ec97b36 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js @@ -1,5 +1,5 @@ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class MobileAppointmentBookingCompactAppointmentInfo extends LightningElement { LABELS = customLabels; @@ -8,8 +8,8 @@ export default class MobileAppointmentBookingCompactAppointmentInfo extends Ligh @api assignToName; @api contactName; - workTypeName = ''; - appointmentNumber = ''; + workTypeName = ""; + appointmentNumber = ""; endDate; startDate; // appointmentDateTime = ""; @@ -26,7 +26,8 @@ export default class MobileAppointmentBookingCompactAppointmentInfo extends Ligh if (value) { this._compactInfoObj = value; this.workTypeName = value.workTypeName && value.workTypeName; - this.appointmentNumber = value.appointmentNumber && value.appointmentNumber; + this.appointmentNumber = + value.appointmentNumber && value.appointmentNumber; // this.createAppointmrntDateTimeDisplayInfo(value.startDate, value.endDate); } } @@ -42,6 +43,6 @@ export default class MobileAppointmentBookingCompactAppointmentInfo extends Ligh // } isNotNullOrUndefined(value) { - return value && value !== 'null'; + return value && value !== "null"; } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css new file mode 100644 index 0000000..ffe58e7 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.css @@ -0,0 +1,10 @@ +.custom-toast-container { + position: absolute; +} + +.toast-close-icon { + --lwc-colorTextIconDefault: #ffffff; +} +.content-container { + padding-left: 12px; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html new file mode 100644 index 0000000..98af20f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.html @@ -0,0 +1,26 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js index 6ccc676..a167e83 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js @@ -1,9 +1,9 @@ /* eslint-disable @lwc/lwc/no-async-operation */ -import { LightningElement, api, track } from 'lwc'; +import { LightningElement, api, track } from "lwc"; -const SUCCESS_CLASS = 'slds-notify slds-notify_toast slds-theme_success'; -const WARNING_CLASS = 'slds-notify slds-notify_toast slds-theme_warning'; -const ERROR_CLASS = 'slds-notify slds-notify_toast slds-theme_error'; +const SUCCESS_CLASS = "slds-notify slds-notify_toast slds-theme_success"; +const WARNING_CLASS = "slds-notify slds-notify_toast slds-theme_warning"; +const ERROR_CLASS = "slds-notify slds-notify_toast slds-theme_error"; export default class MobileAppointmentBookingCustomToast extends LightningElement { _variant; @@ -13,11 +13,11 @@ export default class MobileAppointmentBookingCustomToast extends LightningElemen connectedCallback() { if (this._variant) { - if (this._variant === 'success') { + if (this._variant === "success") { this.toastClass = SUCCESS_CLASS; - } else if (this._variant === 'warning') { + } else if (this._variant === "warning") { this.toastClass = WARNING_CLASS; - } else if (this._variant === 'error') { + } else if (this._variant === "error") { this.toastClass = ERROR_CLASS; } } @@ -62,8 +62,8 @@ export default class MobileAppointmentBookingCustomToast extends LightningElemen } handleCloseToastEvent() { - const customEvent = new CustomEvent('closetoast', { - detail: {}, + const customEvent = new CustomEvent("closetoast", { + detail: {} }); this.dispatchEvent(customEvent); } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingCustomToast/mobileAppointmentBookingCustomToast.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js new file mode 100644 index 0000000..35eda0f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js @@ -0,0 +1,33 @@ +import Schedule_Appointment_page_title from "@salesforce/label/c.Schedule_Appointment_page_title"; +import FollowUpAppointments_select_new_date_to_schedule from "@salesforce/label/c.FollowUpAppointments_select_new_date_to_schedule"; +import FollowUpAppointments_select_an_available_appointment_time from "@salesforce/label/c.FollowUpAppointments_select_an_available_appointment_time"; +import FollowUpAppointments_accept_new_appointment_button from "@salesforce/label/c.FollowUpAppointments_accept_new_appointment_button"; +import FollowUpAppointments_next_button_title from "@salesforce/label/c.FollowUpAppointments_next_button_title"; +import FollowUpAppointments_new_appointment_msg from "@salesforce/label/c.FollowUpAppointments_new_appointment_msg"; +import FollowUpAppointments_same_appointment_selected_warning from "@salesforce/label/c.FollowUpAppointments_same_appointment_selected_warning"; +import FollowUpAppointments_confirmation_service_requested from "@salesforce/label/c.FollowUpAppointments_confirmation_service_requested"; +import FollowUpAppointments_selected_appointment_msg from "@salesforce/label/c.FollowUpAppointments_selected_appointment_msg"; +import FollowUpAppointments_toastMessage_appointment_schedule from "@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_schedule"; +import FollowUpAppointments_confirmation_failure_message from "@salesforce/label/c.FollowUpAppointments_confirmation_failure_message"; +import FollowUpAppointments_toastMessage_schedule_appointment_fail_message from "@salesforce/label/c.FollowUpAppointments_toastMessage_schedule_appointment_fail_message"; +import FollowUpAppointments_assigned_to_you from "@salesforce/label/c.FollowUpAppointments_assigned_to_you"; +import FollowUpAppointments_assigned_to_any_available_worker from "@salesforce/label/c.FollowUpAppointments_assigned_to_any_available_worker"; + +const customLabels = { + FollowUpAppointments_select_new_date_to_schedule, + FollowUpAppointments_select_an_available_appointment_time, + FollowUpAppointments_accept_new_appointment_button, + FollowUpAppointments_next_button_title, + FollowUpAppointments_new_appointment_msg, + FollowUpAppointments_same_appointment_selected_warning, + FollowUpAppointments_confirmation_service_requested, + FollowUpAppointments_selected_appointment_msg, + Schedule_Appointment_page_title, + FollowUpAppointments_toastMessage_appointment_schedule, + FollowUpAppointments_confirmation_failure_message, + FollowUpAppointments_toastMessage_schedule_appointment_fail_message, + FollowUpAppointments_assigned_to_you, + FollowUpAppointments_assigned_to_any_available_worker +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css new file mode 100644 index 0000000..6cef570 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css @@ -0,0 +1,27 @@ +.page-header { + display: flex; +} +.landing-container { + background-color: #e5e5e5; +} + +.landing-section { + margin-bottom: 10px; +} + +.test { + background-color: blue; + height: 300px; +} + +.spinner { + position: relative; + display: inline-block; + text-align: center; +} +.slds-spinner { + position: fixed; +} +.slds-spinner_container { + position: fixed; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html new file mode 100644 index 0000000..e993e8e --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html @@ -0,0 +1,52 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js similarity index 68% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js index 5555594..5ccde91 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js @@ -1,25 +1,25 @@ /* eslint-disable @lwc/lwc/no-dupe-class-members */ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api, track } from 'lwc'; -import getServiceAppointment from '@salesforce/apex/FollowUpAppointmentController.getServiceAppointment'; +import { LightningElement, api, track } from "lwc"; +import getServiceAppointment from "@salesforce/apex/FollowUpAppointmentController.getServiceAppointment"; // import updateAppointmentStatus from '@salesforce/apex/FollowUpAppointmentController.updateServiceAppointmentStatus'; -import getSlotsByAssignmentMethod from '@salesforce/apex/FollowUpAppointmentController.getSlotsByAssignmentMethod'; -import assignCurrentUserAsRequiredResource from '@salesforce/apex/FollowUpAppointmentController.assignCurrentUserAsRequiredResource'; -import updateSA from '@salesforce/apex/FollowUpAppointmentController.updateSA'; -import scheduleSA from '@salesforce/apex/FollowUpAppointmentController.scheduleSA'; +import getSlotsByAssignmentMethod from "@salesforce/apex/FollowUpAppointmentController.getSlotsByAssignmentMethod"; +import assignCurrentUserAsRequiredResource from "@salesforce/apex/FollowUpAppointmentController.assignCurrentUserAsRequiredResource"; +import updateSA from "@salesforce/apex/FollowUpAppointmentController.updateSA"; +import scheduleSA from "@salesforce/apex/FollowUpAppointmentController.scheduleSA"; // import updateSASlot from '@salesforce/apex/FollowUpAppointmentController.updateSASlot'; -import cloneWorkOrder from '@salesforce/apex/FollowUpAppointmentController.cloneWorkOrder'; -import deleteClonedAppointmentData from '@salesforce/apex/FollowUpAppointmentController.deleteClonedAppointmentData'; -import isUserExcludedResource from '@salesforce/apex/FollowUpAppointmentController.isUserExcludedResource'; -import convertTimeToOtherTimeZone from '@salesforce/apex/FollowUpAppointmentController.convertTimeToOtherTimeZone'; -import customLabels from './labels'; -import { convertDateUTCtoLocal } from 'c/mobileAppointmentBookingUtils'; -import getUserName from '@salesforce/apex/FollowUpAppointmentController.getUserName'; -import getWorkTypeOffset from '@salesforce/apex/FollowUpAppointmentController.getWorkTypeOffset'; +import cloneWorkOrder from "@salesforce/apex/FollowUpAppointmentController.cloneWorkOrder"; +import deleteClonedAppointmentData from "@salesforce/apex/FollowUpAppointmentController.deleteClonedAppointmentData"; +import isUserExcludedResource from "@salesforce/apex/FollowUpAppointmentController.isUserExcludedResource"; +import convertTimeToOtherTimeZone from "@salesforce/apex/FollowUpAppointmentController.convertTimeToOtherTimeZone"; +import customLabels from "./labels"; +import { convertDateUTCtoLocal } from "c/mobileAppointmentBookingUtils"; +import getUserName from "@salesforce/apex/FollowUpAppointmentController.getUserName"; +import getWorkTypeOffset from "@salesforce/apex/FollowUpAppointmentController.getWorkTypeOffset"; const assignmentMethod = { - ASSIGN_TO_ME: 'assignToMe', - ASSIGN_TO_ANY_AVIALABLE: 'assignToAnyAvailable', + ASSIGN_TO_ME: "assignToMe", + ASSIGN_TO_ANY_AVIALABLE: "assignToAnyAvailable" }; export default class MobileAppointmentBookingLanding extends LightningElement { @@ -71,7 +71,7 @@ export default class MobileAppointmentBookingLanding extends LightningElement { inFlowMode = false; newAppointmentDate; newAppointmentTime; - maxValidCalendarDate; + _maxValidCalendarDate; minValidCalendarDate; @api nonAvailableDateArray = []; @api noOfDaysBeforeAfterWeek = 2; @@ -229,23 +229,23 @@ export default class MobileAppointmentBookingLanding extends LightningElement { @api assignToName; - ARRIVAL_TIME_TEXT = 'Exact Appointment Times'; - ARRIVAL_WINDOW_TEXT = 'Arrival Windows'; + ARRIVAL_TIME_TEXT = "Exact Appointment Times"; + ARRIVAL_WINDOW_TEXT = "Arrival Windows"; - BTN_CANCEL_PRESSED = 'Cancelled'; - BTN_CONFIRMED_PRESSED = 'Confirmed'; - BTN_RESHEDULED_PRESSED = 'Rescheduled'; + BTN_CANCEL_PRESSED = "Cancelled"; + BTN_CONFIRMED_PRESSED = "Confirmed"; + BTN_RESHEDULED_PRESSED = "Rescheduled"; - SCHEDULING_UNIT_DAY = 'Days'; - SCHEDULING_UNIT_WEEK = 'Weeks'; - SCHEDULING_UNIT_MONTH = 'Months'; + SCHEDULING_UNIT_DAY = "Days"; + SCHEDULING_UNIT_WEEK = "Weeks"; + SCHEDULING_UNIT_MONTH = "Months"; constructor() { super(); - this.template.addEventListener('closemodal', this.closeModal); - this.template.addEventListener('openmodal', this.openModal); + this.template.addEventListener("closemodal", this.closeModal); + this.template.addEventListener("openmodal", this.openModal); this.template.addEventListener( - 'onassignmentmethodchanged', + "onassignmentmethodchanged", this.handleCurrentAssignmentMethodChange ); this.isExcluded = false; @@ -271,29 +271,32 @@ export default class MobileAppointmentBookingLanding extends LightningElement { calcAssignmentMethod() { switch (this.workerAssignmentOptions) { - case '1': + case "1": //Allow choice between assignment methods if (this.isExcluded) { //Admin enabled both options but Current User is excluded from this Work Order - this.currentAssignmentMethod = assignmentMethod.ASSIGN_TO_ANY_AVIALABLE; + this.currentAssignmentMethod = + assignmentMethod.ASSIGN_TO_ANY_AVIALABLE; } else { this.currentAssignmentMethod = assignmentMethod.ASSIGN_TO_ME; } this.showMobileWorkerChoice = true; break; - case '2': + case "2": //Allow only AssignToAnyAvailable this.currentAssignmentMethod = assignmentMethod.ASSIGN_TO_ANY_AVIALABLE; this.showMobileWorkerChoice = false; break; - case '3': + case "3": //Allow only AssignToME this.currentAssignmentMethod = assignmentMethod.ASSIGN_TO_ME; this.showMobileWorkerChoice = false; break; default: { - console.log('Error in calcAssignmentMethod did not receive valid settings'); + console.log( + "Error in calcAssignmentMethod did not receive valid settings" + ); break; } } @@ -305,17 +308,23 @@ export default class MobileAppointmentBookingLanding extends LightningElement { getServiceAppointment({ serviceAppointmentId: this.serviceAppointmentId }) .then((data) => { this.allowScrolling(); - console.log('getInitData Service appointment received::: ' + JSON.stringify(data)); + console.log( + "getInitData Service appointment received::: " + JSON.stringify(data) + ); if (data.error) { this.dataLoaded = false; this.error = data.error; - console.log('Error in getInitData::: ' + JSON.stringify(data.error)); + console.log("Error in getInitData::: " + JSON.stringify(data.error)); } else { this.currentAppointmentData = JSON.parse(JSON.stringify(data)); this.updateCompactInfoObj( this.currentAppointmentData.WorkTypeName, - convertDateUTCtoLocal(this.currentAppointmentData.ArrivalWindowStartTime), - convertDateUTCtoLocal(this.currentAppointmentData.ArrivalWindowEndTime), + convertDateUTCtoLocal( + this.currentAppointmentData.ArrivalWindowStartTime + ), + convertDateUTCtoLocal( + this.currentAppointmentData.ArrivalWindowEndTime + ), this.currentAppointmentData.AppointmentNumber ); this.handleDataOnServiceAppointmentRecieved(data); @@ -324,24 +333,30 @@ export default class MobileAppointmentBookingLanding extends LightningElement { .catch((e) => { this.allowScrolling(); this.dataLoaded = false; - console.log('Error in getInitData::: ' + JSON.stringify(e)); + console.log("Error in getInitData::: " + JSON.stringify(e)); }); } handleDataOnServiceAppointmentRecieved(data) { this.error = undefined; this.serviceTerritoryTimeZone = data.ServiceTerritoryTimeZone; - console.log('serviceTerritoryTimeZone: ' + this.serviceTerritoryTimeZone); + console.log("serviceTerritoryTimeZone: " + this.serviceTerritoryTimeZone); this.currentSAstatus = data.ServiceAppointmentStatus; - if (data.ArrivalWindowEndTime && data.ArrivalWindowEndTime !== 'null') { - this.OriginalArrivalEndDate = convertDateUTCtoLocal(data.ArrivalWindowEndTime); + if (data.ArrivalWindowEndTime && data.ArrivalWindowEndTime !== "null") { + this.OriginalArrivalEndDate = convertDateUTCtoLocal( + data.ArrivalWindowEndTime + ); } - if (data.ArrivalWindowStartTime && data.ArrivalWindowStartTime !== 'null') { - this.OriginalArrivalStartDate = convertDateUTCtoLocal(data.ArrivalWindowStartTime); + if (data.ArrivalWindowStartTime && data.ArrivalWindowStartTime !== "null") { + this.OriginalArrivalStartDate = convertDateUTCtoLocal( + data.ArrivalWindowStartTime + ); } - this.OriginalEarliestStartDate = convertDateUTCtoLocal(data.EarliestStartTime); + this.OriginalEarliestStartDate = convertDateUTCtoLocal( + data.EarliestStartTime + ); this.checkServiceAppointmentStatus(this.currentSAstatus); this.calculateEarliestStartPermittedAndDueDateForServiceAppointment(data); @@ -350,38 +365,54 @@ export default class MobileAppointmentBookingLanding extends LightningElement { } calculateEarliestStartPermittedAndDueDateForServiceAppointment(SAdata) { - if (SAdata.EarliestStartTime && new Date(SAdata.EarliestStartTime) > new Date()) { + if ( + SAdata.EarliestStartTime && + new Date(SAdata.EarliestStartTime) > new Date() + ) { this.minValidCalendarDate = convertDateUTCtoLocal( new Date(SAdata.EarliestStartTime).toString() ); } else { this.minValidCalendarDate = this.getDateWithoutTime(new Date()); } - console.log('-- minValidCalendarDate Date : ', this.minValidCalendarDate); - console.log('-- input selectedHorizonValue : ', this.schedulingHorizonValue); + console.log("-- minValidCalendarDate Date : ", this.minValidCalendarDate); + console.log( + "-- input selectedHorizonValue : ", + this.schedulingHorizonValue + ); let horizonDate; - if (this.schedulingHorizonValue && this.schedulingHorizonValue !== 'null') { + if (this.schedulingHorizonValue && this.schedulingHorizonValue !== "null") { let tempDate = new Date(this.minValidCalendarDate); - let schedulingHorizonValueToNumber = parseInt(this.schedulingHorizonValue, 10); // Lint fixes : added 10 as redix param; - horizonDate = new Date(tempDate.setDate(tempDate.getDate() + schedulingHorizonValueToNumber)); - console.log('-- Horizon value max date : ' + horizonDate); + let schedulingHorizonValueToNumber = parseInt( + this.schedulingHorizonValue, + 10 + ); // Lint fixes : added 10 as redix param; + horizonDate = new Date( + tempDate.setDate(tempDate.getDate() + schedulingHorizonValueToNumber) + ); + console.log("-- Horizon value max date : " + horizonDate); this.maxValidCalendarDate = new Date(horizonDate); } getWorkTypeOffset({ workTypeName: SAdata.WorkTypeName }) .then((data) => { let workTypeDueDateOffset = data > -1 - ? new Date(new Date(this.minValidCalendarDate).getTime() + data * 60 * 1000) + ? new Date( + new Date(this.minValidCalendarDate).getTime() + data * 60 * 1000 + ) : new Date(horizonDate); - console.log('-- Work Type offset max date : ', workTypeDueDateOffset); + console.log("-- Work Type offset max date : ", workTypeDueDateOffset); this.maxValidCalendarDate = workTypeDueDateOffset < horizonDate ? new Date(workTypeDueDateOffset) : new Date(horizonDate); - console.log('-- maxValidCalendarDate Date : ', this.maxValidCalendarDate); + console.log( + "-- maxValidCalendarDate Date : ", + this.maxValidCalendarDate + ); }) .catch((error) => { - console.log('-- Could not find work type ', error.body); + console.log("-- Could not find work type ", error.body); }); } @@ -392,11 +423,12 @@ export default class MobileAppointmentBookingLanding extends LightningElement { Object.keys(data.fields).forEach((appointmentField) => { appointmentFields[appointmentField] = { name: appointmentField, - value: data.fields[appointmentField] && data.fields[appointmentField].value, + value: + data.fields[appointmentField] && data.fields[appointmentField].value }; }); - console.log('createSAObject::: ' + JSON.stringify(appointmentFields)); + console.log("createSAObject::: " + JSON.stringify(appointmentFields)); return appointmentFields; } @@ -416,13 +448,13 @@ export default class MobileAppointmentBookingLanding extends LightningElement { checkServiceAppointmentStatus(currentSAStatus) { console.log( - 'checkServiceAppointmentStatus => Current: ' + + "checkServiceAppointmentStatus => Current: " + currentSAStatus + - ' ; confirmed: ' + + " ; confirmed: " + this.confirmStatusId + - ' ; rescheduled: ' + + " ; rescheduled: " + this.rescheduleStatusId + - ' ; canceled : ' + + " ; canceled : " + this.cancelStatusId ); @@ -457,8 +489,8 @@ export default class MobileAppointmentBookingLanding extends LightningElement { getDateWithoutTime(date) { var d; - if (typeof val === 'string') { - d = new Date(date.replace(/-/g, '/')); // replace method is use to support time in safari + if (typeof val === "string") { + d = new Date(date.replace(/-/g, "/")); // replace method is use to support time in safari } else { d = new Date(date); } @@ -468,7 +500,7 @@ export default class MobileAppointmentBookingLanding extends LightningElement { onDateSelected(event) { this.selectedDate = event.detail.date; - console.log('Selected date in main class : ' + this.selectedDate); + console.log("Selected date in main class : " + this.selectedDate); } getFirstDayOfWeek(date, index) { @@ -477,13 +509,10 @@ export default class MobileAppointmentBookingLanding extends LightningElement { var day = d.getDay(); var diff = d.getDate() - day + (start > day ? start - 7 : start); d.setDate(diff); - console.log('First day of week is : ' + d.getDate()); - let newDate = new Date(d.setDate(d.getDate() - this.noOfDaysBeforeAfterWeek)).setHours( - 0, - 0, - 0, - 0 - ); + console.log("First day of week is : " + d.getDate()); + let newDate = new Date( + d.setDate(d.getDate() - this.noOfDaysBeforeAfterWeek) + ).setHours(0, 0, 0, 0); return newDate; } @@ -493,12 +522,9 @@ export default class MobileAppointmentBookingLanding extends LightningElement { var day = d.getDay(); var diff = d.getDate() - day + (start > day ? start - 1 : 6 + start); d.setDate(diff); - let newDate = new Date(d.setDate(d.getDate() + this.noOfDaysBeforeAfterWeek)).setHours( - 0, - 0, - 0, - 0 - ); + let newDate = new Date( + d.setDate(d.getDate() + this.noOfDaysBeforeAfterWeek) + ).setHours(0, 0, 0, 0); return newDate; } @@ -524,24 +550,26 @@ export default class MobileAppointmentBookingLanding extends LightningElement { serviceAppointmentId: this.serviceAppointmentId, earliestStartDate: this.OriginalEarliestStartDate, arrivalStartDate: this.OriginalArrivalStartDate, - arrivalEndDate: this.OriginalArrivalEndDate, + arrivalEndDate: this.OriginalArrivalEndDate }) .then((data) => { if (data.success) { - console.log('Service appointment reverted successfully'); - } else console.log('Error while reverting the service appointment'); + console.log("Service appointment reverted successfully"); + } else console.log("Error while reverting the service appointment"); }) .catch((error) => { - console.log('Error while reverting the service appointment ' + error); + console.log("Error while reverting the service appointment " + error); }); } getLastSlotFromTheArray(slotArray) { var lastdate; if (slotArray.length > 0) { - let timeSlot = slotArray[slotArray.length - 1].split('#'); - lastdate = this.getDateWithoutTime(Date.parse(timeSlot[0].replace(/-/g, '/'))); - console.log('Last Date from the slots is : ' + lastdate); + let timeSlot = slotArray[slotArray.length - 1].split("#"); + lastdate = this.getDateWithoutTime( + Date.parse(timeSlot[0].replace(/-/g, "/")) + ); + console.log("Last Date from the slots is : " + lastdate); } return lastdate; } @@ -585,45 +613,50 @@ export default class MobileAppointmentBookingLanding extends LightningElement { let firstDateOfWeek = this.getFirstDayOfWeek(event.detail.selectedDate); if (this.dataLoaded) { this.lockScrolling(); - console.log('handleGetSlotQueryForSelectedDate', firstDateOfWeek); + console.log("handleGetSlotQueryForSelectedDate", firstDateOfWeek); this.handleGetSlotQueryForSelectedDateRange(firstDateOfWeek); } } handleGetSlotQueryForSelectedDateRange(selectedDate) { this.lockScrolling(); - console.log('handleGetSlotQueryForSelectedDateRange', selectedDate); + console.log("handleGetSlotQueryForSelectedDateRange", selectedDate); let firstDateOfWeek = selectedDate; if (firstDateOfWeek <= new Date()) { firstDateOfWeek = new Date(); } - console.log('handleGetSlotQueryForSelectedDateRange', selectedDate); + console.log("handleGetSlotQueryForSelectedDateRange", selectedDate); let lastDateOfWeek = this.getLastDayOfWeek(firstDateOfWeek, 0); if (lastDateOfWeek > this.maxValidCalendarDate) { lastDateOfWeek = this.maxValidCalendarDate; } - console.log('First and Last date of the week : ' + firstDateOfWeek + ' ' + lastDateOfWeek); + console.log( + "First and Last date of the week : " + + firstDateOfWeek + + " " + + lastDateOfWeek + ); let loopdate = new Date(firstDateOfWeek); loopdate = new Date(this.getDateWithoutTime(loopdate)); - console.log('Date in the Array is : ' + loopdate); + console.log("Date in the Array is : " + loopdate); console.log( - 'this.dateArrayForQuery.indexOf(loopdate) + : ' + + "this.dateArrayForQuery.indexOf(loopdate) + : " + loopdate + - ' and ' + + " and " + this.isInArray(loopdate) ); if (!this.isInArray(loopdate)) { - console.log('Address is : ' + this.street); + console.log("Address is : " + this.street); //If the date is not added in cache, run the below code to add it and get fresh slots this.addDatesToCashArray(new Date(loopdate), new Date(loopdate)); console.log( - 'getSlot As Per StartDate : ' + + "getSlot As Per StartDate : " + loopdate + - ' Minvalid Calendar date : ' + + " Minvalid Calendar date : " + this.minValidCalendarDate ); if (loopdate < this.minValidCalendarDate) { @@ -631,61 +664,73 @@ export default class MobileAppointmentBookingLanding extends LightningElement { } if (loopdate >= this.minValidCalendarDate) { - console.log('Run appointment query for date ' + loopdate); + console.log("Run appointment query for date " + loopdate); // IF THE DATE IS AFTER ARRIVAL WINDOW START DATE - console.log('clone sa method called'); + console.log("clone sa method called"); cloneWorkOrder({ originalSaId: this.serviceAppointmentId, startPermitDate: loopdate, maxValidCalendarDate: this.maxValidCalendarDate, dummySA: this.dummySAid, - dummyWO: this.dummyWO, + dummyWO: this.dummyWO }) .then((saData) => { if (saData.dummyServiceAppointmentId) { this.lockScrolling(); this.dummySAid = saData.dummyServiceAppointmentId; this.dummyWO = saData.dummyWorkOrderId; - console.log('clone sa method finished::: sa:' + saData.dummyServiceAppointmentId); + console.log( + "clone sa method finished::: sa:" + + saData.dummyServiceAppointmentId + ); this.sleep(3000).then(() => { - var lcaletime = Intl.DateTimeFormat().resolvedOptions().timeZone; + var lcaletime = + Intl.DateTimeFormat().resolvedOptions().timeZone; assignCurrentUserAsRequiredResource({ serviceAppointmentId: this.dummySAid, - currentAssignmentMethod: this.currentAssignmentMethod, + currentAssignmentMethod: this.currentAssignmentMethod }) .then((data1) => { if (data1.error || data1.DML) { console.log( - 'Error while updating resource preference : ' + + "Error while updating resource preference : " + data1.error + - ' : ' + + " : " + data1.DML ); this.showAlertWithError( - this.LABELS.FollowUpAppointments_confirmation_failure_message + this.LABELS + .FollowUpAppointments_confirmation_failure_message ); this.deleteDummySa(this.dummySAid); } else { - console.log('getSlots method called'); + console.log("getSlots method called"); getSlotsByAssignmentMethod({ serviceAppointmentId: this.dummySAid, operatingHoursId: this.operatingHoursId, schedulingPolicyId: this.schedulingPolicyId, arrivalWindowFlag: this.showExactArrivalTime, - localetimezone: lcaletime, + localetimezone: lcaletime }) .then((data) => { - console.log('getSlotsByAssignmentMethod allowScrolling::::'); + console.log( + "getSlotsByAssignmentMethod allowScrolling::::" + ); // this.allowScrolling(); - console.log('Time zone of the sa is : ' + data.timeZone); + console.log( + "Time zone of the sa is : " + data.timeZone + ); this.timeZoneOfDummySA = data.timeZone; if (data.error) { - console.log('Error in getting slots : ' + data.error); + console.log( + "Error in getting slots : " + data.error + ); this.showAlertWithError( - this.LABELS.FollowUpAppointments_confirmation_failure_message + this.LABELS + .FollowUpAppointments_confirmation_failure_message ); this.timeSlotDateWise = []; this.deleteDummySa(this.dummySAid); @@ -694,18 +739,21 @@ export default class MobileAppointmentBookingLanding extends LightningElement { this.timeSlotDateWise = this.timeSlotWiseTemp; let tempDate = loopdate.setDate( - loopdate.getDate() + this.maxDaysToGetAppointmentSlots + loopdate.getDate() + + this.maxDaysToGetAppointmentSlots ); loopdate = new Date(tempDate); console.log( - 'New Loop date is : ' + + "New Loop date is : " + loopdate + - ' and last day of week is : ' + + " and last day of week is : " + lastDateOfWeek ); if (loopdate <= lastDateOfWeek) { - this.handleGetSlotQueryForSelectedDateRange(loopdate); + this.handleGetSlotQueryForSelectedDateRange( + loopdate + ); } else { this.deleteDummySa(this.dummySAid); } @@ -713,17 +761,23 @@ export default class MobileAppointmentBookingLanding extends LightningElement { }) .catch((error) => { this.deleteDummySa(this.dummySAid); - console.log('Error while executing FSL API :', +error); + console.log( + "Error while executing FSL API :", + +error + ); this.timeSlotDateWise = []; }); } }) .catch((error) => { - console.log('Error while updating resource preference :', +error); + console.log( + "Error while updating resource preference :", + +error + ); }); }); } else if (saData.error) { - console.log('Errror while creating dummy SA :', +saData.error); + console.log("Errror while creating dummy SA :", +saData.error); this.timeSlotDateWise = []; this.allowScrolling(); } @@ -731,15 +785,17 @@ export default class MobileAppointmentBookingLanding extends LightningElement { .catch((error) => { // delete SA/WO incase transaction fails this.deleteDummySa(this.dummySAid); - console.log('Errror while creating dummy SA :', +error); + console.log("Errror while creating dummy SA :", +error); this.timeSlotDateWise = []; this.allowScrolling(); }); } else { // IF THE DATE IS BEFORE ARRIVAL WINDOW START DATE - console.log('Loop date is less than minimum valid date'); + console.log("Loop date is less than minimum valid date"); - let tempDate = loopdate.setDate(loopdate.getDate() + this.maxDaysToGetAppointmentSlots); + let tempDate = loopdate.setDate( + loopdate.getDate() + this.maxDaysToGetAppointmentSlots + ); loopdate = new Date(tempDate); if (loopdate <= lastDateOfWeek) { this.handleGetSlotQueryForSelectedDateRange(loopdate); @@ -749,7 +805,9 @@ export default class MobileAppointmentBookingLanding extends LightningElement { } } else { // If the date are already cache, take the slot from it and run the query for next date; - let tempDate = loopdate.setDate(loopdate.getDate() + this.maxDaysToGetAppointmentSlots); + let tempDate = loopdate.setDate( + loopdate.getDate() + this.maxDaysToGetAppointmentSlots + ); loopdate = new Date(tempDate); if (loopdate <= lastDateOfWeek) { @@ -779,17 +837,17 @@ export default class MobileAppointmentBookingLanding extends LightningElement { date1: selectedSlotStart, date2: selectedSlotEnd, targetTimezone: this.serviceTerritoryTimeZone, - sourceTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + sourceTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone }) .then((data) => { - console.log('Date converted from apex is : ' + new Date(data.date1)); - console.log('Date converted from apex is : ' + new Date(data.date2)); + console.log("Date converted from apex is : " + new Date(data.date1)); + console.log("Date converted from apex is : " + new Date(data.date2)); selectedSlotStart = new Date(data.date1); selectedSlotEnd = new Date(data.date2); this.UpdateServiceAppointmentFunction(event); }) .catch((error) => { - console.log('error is : ' + error); + console.log("error is : " + error); }); } else { this.UpdateServiceAppointmentFunction(event); @@ -799,22 +857,25 @@ export default class MobileAppointmentBookingLanding extends LightningElement { UpdateServiceAppointmentFunction = (event) => { let selectedSlotStart = event.detail.selectedSlotStart; let selectedSlotEnd = event.detail.selectedSlotEnd; - let ArrivalWindowStartTime = event.detail.ArrivalWindowStartTime; + // let ArrivalWindowStartTime = event.detail.ArrivalWindowStartTime; - if (this.isValidDate(selectedSlotStart) && this.isValidDate(selectedSlotEnd)) { + if ( + this.isValidDate(selectedSlotStart) && + this.isValidDate(selectedSlotEnd) + ) { // if(!(ArrivalWindowStartTime) || ArrivalWindowStartTime === "null") { // ArrivalWindowStartTime = "1970-01-01 09:00:00"; //Overwrites null ArrivalWindowStart field // } // if(selectedSlotStart.getTime() !== convertDateUTCtoLocal(ArrivalWindowStartTime).getTime()) { this.showSpinnerInChildClass = true; - console.log('this.selectedSlotStart=' + selectedSlotStart); - console.log('this.selectedSlotEnd=' + selectedSlotEnd); + console.log("this.selectedSlotStart=" + selectedSlotStart); + console.log("this.selectedSlotEnd=" + selectedSlotEnd); - const customEvent = new CustomEvent('selectedslot', { + const customEvent = new CustomEvent("selectedslot", { detail: { arrivalWindowStartTime: selectedSlotStart, - arrivalWindowEndTime: selectedSlotEnd, - }, + arrivalWindowEndTime: selectedSlotEnd + } }); this.dispatchEvent(customEvent); @@ -822,9 +883,9 @@ export default class MobileAppointmentBookingLanding extends LightningElement { // this.template.querySelector('c-mobile-appointment-booking-scheduling-container').handleSchedulingResponse(false); // } } else { - console.log('Invalid date time '); + console.log("Invalid date time "); this.template - .querySelector('c-mobile-appointment-booking-scheduling-container') + .querySelector("c-mobile-appointment-booking-scheduling-container") .handleSchedulingResponse(false); } }; @@ -833,52 +894,71 @@ export default class MobileAppointmentBookingLanding extends LightningElement { this.serviceAppointmentId = newRecordId; assignCurrentUserAsRequiredResource({ serviceAppointmentId: this.serviceAppointmentId, - currentAssignmentMethod: this.currentAssignmentMethod, + currentAssignmentMethod: this.currentAssignmentMethod }) .then((data) => { if (data.error || data.DML) { console.log( - 'Error while updating resource preference : ' + data.error + ' : ' + data.DML + "Error while updating resource preference : " + + data.error + + " : " + + data.DML + ); + this.showAlertWithError( + this.LABELS.FollowUpAppointments_confirmation_failure_message ); - this.showAlertWithError(this.LABELS.FollowUpAppointments_confirmation_failure_message); this.deleteDummySa(this.serviceAppointmentId); } else { scheduleSA({ serviceAppointmentId: this.serviceAppointmentId, - schedulingPolicyId: this.schedulingPolicyId, + schedulingPolicyId: this.schedulingPolicyId }) .then((scheduleData) => { - if (scheduleData.error || scheduleData.success === 'null') { + if (scheduleData.error || scheduleData.success === "null") { console.log( - 'Error while executing FSL API : ' + JSON.stringify(scheduleData.error) + "Error while executing FSL API : " + + JSON.stringify(scheduleData.error) ); console.log( - 'Check if the SA ' + this.serviceAppointmentId + ' can be scheduled via the Gantt' + "Check if the SA " + + this.serviceAppointmentId + + " can be scheduled via the Gantt" ); this.template - .querySelector('c-mobile-appointment-booking-scheduling-container') + .querySelector( + "c-mobile-appointment-booking-scheduling-container" + ) .handleSchedulingResponse(false); } else { - console.log('Service appointment Scheduled : ' + JSON.stringify(scheduleData)); + console.log( + "Service appointment Scheduled : " + + JSON.stringify(scheduleData) + ); this.isAppointmentConfirmed = true; // Update Data After successfull booking // this.updateCompactInfoAfterReschedule(selectedSlotStart, selectedSlotEnd); this.template - .querySelector('c-mobile-appointment-booking-scheduling-container') + .querySelector( + "c-mobile-appointment-booking-scheduling-container" + ) .handleSchedulingResponse(true); } }) .catch((error) => { this.revertSA(); - console.log('Error while executing FSL API : ' + JSON.stringify(error)); + console.log( + "Error while executing FSL API : " + JSON.stringify(error) + ); this.template - .querySelector('c-mobile-appointment-booking-scheduling-container') + .querySelector( + "c-mobile-appointment-booking-scheduling-container" + ) .handleSchedulingResponse(false); }); } }) .catch((error) => { - console.log('Error while updating resource preference :', +error); + console.log("Error while updating resource preference :", +error); }); } @@ -888,9 +968,9 @@ export default class MobileAppointmentBookingLanding extends LightningElement { onWeekChangeEvent(event) { this.selectedDate = event.detail.date; - console.log('On week change called'); + console.log("On week change called"); this.template - .querySelector('c-mobile-appointment-booking-slots-container') + .querySelector("c-mobile-appointment-booking-slots-container") .onWeekUpdated(this.selectedDate); this.runApexQueryToChangeEarlistStartDate(this.selectedDate); } @@ -901,19 +981,25 @@ export default class MobileAppointmentBookingLanding extends LightningElement { event.preventDefault(); this.selectedSlotStart = event.detail.startDate; this.selectedSlotEnd = event.detail.endDate; - this.setNewAppointmentSelectedText(event.detail.startDate, event.detail.endDate); + this.setNewAppointmentSelectedText( + event.detail.startDate, + event.detail.endDate + ); } onCustomEventCalled(event) { event.preventDefault(); switch (event.detail.name) { - case 'trigergetslotapi': { + case "trigergetslotapi": { this.runApexQueryToChangeEarlistStartDate(event.detail.value); break; } - case 'updateNonAvailableDates': { + case "updateNonAvailableDates": { this.nonAvailableDateArray = event.detail.value; - console.log('Array of the date not available : ' + this.nonAvailableDateArray.length); + console.log( + "Array of the date not available : " + + this.nonAvailableDateArray.length + ); break; } default: { @@ -925,8 +1011,8 @@ export default class MobileAppointmentBookingLanding extends LightningElement { getHeadlineDate() { var startDate; var endDate; - const dateOptions = { weekday: 'long', month: 'long', day: 'numeric' }; - if (this.ArrivalWindowStartTime === 'null' || this.showExactArrivalTime) { + const dateOptions = { weekday: "long", month: "long", day: "numeric" }; + if (this.ArrivalWindowStartTime === "null" || this.showExactArrivalTime) { startDate = convertDateUTCtoLocal(this.SchedStartTime); endDate = convertDateUTCtoLocal(this.SchedEndTime); } else { @@ -936,7 +1022,9 @@ export default class MobileAppointmentBookingLanding extends LightningElement { if (startDate && endDate) { let dateLong = startDate.toLocaleDateString(undefined, dateOptions); let time = - this.getFormattedTimeFromDate(startDate) + ' - ' + this.getFormattedTimeFromDate(endDate); + this.getFormattedTimeFromDate(startDate) + + " - " + + this.getFormattedTimeFromDate(endDate); if (this.showExactArrivalTime) { time = this.getFormattedTimeFromDate(startDate); } @@ -950,17 +1038,17 @@ export default class MobileAppointmentBookingLanding extends LightningElement { var tempDate = new Date(date); var hours = tempDate.getHours(); var minutes = tempDate.getMinutes(); - var ampm = hours >= 12 ? 'PM' : 'AM'; + var ampm = hours >= 12 ? "PM" : "AM"; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' - hours = hours < 10 ? '0' + hours : hours; - minutes = minutes < 10 ? '0' + minutes : minutes; - return hours + ':' + minutes + ' ' + ampm; + hours = hours < 10 ? "0" + hours : hours; + minutes = minutes < 10 ? "0" + minutes : minutes; + return hours + ":" + minutes + " " + ampm; } runApexQueryToChangeEarlistStartDate(selectedDate) { - const customEvent = new CustomEvent('getslotexecuted', { - detail: { selectedDate: selectedDate }, + const customEvent = new CustomEvent("getslotexecuted", { + detail: { selectedDate: selectedDate } }); this.dispatchEvent(customEvent); } @@ -970,9 +1058,12 @@ export default class MobileAppointmentBookingLanding extends LightningElement { */ position; setNewAppointmentSelectedText(start, end) { - const dateOptions = { weekday: 'long', month: 'long', day: 'numeric' }; + const dateOptions = { weekday: "long", month: "long", day: "numeric" }; var dateLong = start.toLocaleDateString(undefined, dateOptions); - var time = this.getFormattedTimeFromDate(start) + ' - ' + this.getFormattedTimeFromDate(end); + var time = + this.getFormattedTimeFromDate(start) + + " - " + + this.getFormattedTimeFromDate(end); if (this.showExactArrivalTime) { time = this.getFormattedTimeFromDate(start); } @@ -980,14 +1071,14 @@ export default class MobileAppointmentBookingLanding extends LightningElement { this.newAppointmentTime = time; this.show_confirmBtnLayout = true; // lock scrolling - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; } handleScheduleCloseWindow() { this.show_confirmBtnLayout = false; // allow scrolling - document.body.style.overflow = 'auto'; - const customEvent = new CustomEvent('scheduleclosewindow'); + document.body.style.overflow = "auto"; + const customEvent = new CustomEvent("scheduleclosewindow"); this.dispatchEvent(customEvent); } @@ -1002,32 +1093,39 @@ export default class MobileAppointmentBookingLanding extends LightningElement { let firstDateOfWeek = this.getFirstDayOfWeek(selectedDate); this.template - .querySelector('c-mobile-appointment-booking-scheduling-container') + .querySelector("c-mobile-appointment-booking-scheduling-container") .clearSlotsAfterAssignmentMethodChange(this.currentAssignmentMethod); //clone and get slots console.log( - 'Calling handleGetSlotQueryForSelectedDateRange after assignment method change::: existing dummy- ' + + "Calling handleGetSlotQueryForSelectedDateRange after assignment method change::: existing dummy- " + this.dummySAid ); this.handleGetSlotQueryForSelectedDateRange(firstDateOfWeek); }; deleteDummySa(dummySaId) { - console.log('deleteDummySa begins ::: Dummy Service Appointment: ' + dummySaId); + console.log( + "deleteDummySa begins ::: Dummy Service Appointment: " + dummySaId + ); this.lockScrolling(); deleteClonedAppointmentData({ clonedServiceAppointmentId: dummySaId }) .then((data) => { this.allowScrolling(); if (data) { - console.log('deleteClonedAppointmentData response ::::' + JSON.stringify(data, null, 2)); + console.log( + "deleteClonedAppointmentData response ::::" + + JSON.stringify(data, null, 2) + ); this.dummySAid = null; this.dummyWO = null; } }) .catch((error) => { this.allowScrolling(); - console.log('There was a problem deleting the SA' + JSON.stringify(error)); + console.log( + "There was a problem deleting the SA" + JSON.stringify(error) + ); }); } @@ -1035,16 +1133,19 @@ export default class MobileAppointmentBookingLanding extends LightningElement { isUserExcludedResource({ serviceAppointmentId: this.serviceAppointmentId }) .then((data) => { if (data.success) { - console.log('isUserExcludedResource response received userIsExcluded::: ' + data.success); + console.log( + "isUserExcludedResource response received userIsExcluded::: " + + data.success + ); this.isExcluded = data.success; } else { - console.log('Error in isUserExcludedResource ::: '); + console.log("Error in isUserExcludedResource ::: "); this.isExcluded = false; } }) .catch((e) => { this.isExcluded = false; - console.log('Error in isUserExcludedResource ::: ' + JSON.stringify(e)); + console.log("Error in isUserExcludedResource ::: " + JSON.stringify(e)); }) .finally(() => { this.calcAssignmentMethod(); @@ -1054,11 +1155,11 @@ export default class MobileAppointmentBookingLanding extends LightningElement { } allowScrolling() { - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.showDataSpinner = false; } lockScrolling() { - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; this.showDataSpinner = true; } @@ -1066,28 +1167,30 @@ export default class MobileAppointmentBookingLanding extends LightningElement { getUserName() .then((data) => { if (data.error) { - console.log('error in getUserName: ' + JSON.stringify(data.error)); + console.log("error in getUserName: " + JSON.stringify(data.error)); } else { this.userName = data; this.error = undefined; - console.log('UserName from getUserName :' + data); + console.log("UserName from getUserName :" + data); this.setAssigNameByAssignMethod(); } }) .catch((error) => { - console.log('error in getUserName: ' + JSON.stringify(error)); + console.log("error in getUserName: " + JSON.stringify(error)); }); } setAssigNameByAssignMethod() { if (this._currentAssignmentMethod) { if (this._currentAssignmentMethod === assignmentMethod.ASSIGN_TO_ME) { - this.assignToName = this.LABELS.FollowUpAppointments_assigned_to_you.replace( - '{0}', - this.userName - ); + this.assignToName = + this.LABELS.FollowUpAppointments_assigned_to_you.replace( + "{0}", + this.userName + ); } else { - this.assignToName = this.LABELS.FollowUpAppointments_assigned_to_any_available_worker; + this.assignToName = + this.LABELS.FollowUpAppointments_assigned_to_any_available_worker; } } } @@ -1109,14 +1212,14 @@ export default class MobileAppointmentBookingLanding extends LightningElement { workTypeName, startDate, endDate: null, - appointmentNumber, + appointmentNumber }; } else { compactInfo = { workTypeName, startDate, endDate, - appointmentNumber, + appointmentNumber }; } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml similarity index 85% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml index de71578..3b3867f 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 false @@ -10,4 +10,4 @@ ScreenAction - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js new file mode 100644 index 0000000..40f38c5 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js @@ -0,0 +1,17 @@ +import FollowUpAppointments_new_appointment_msg from "@salesforce/label/c.FollowUpAppointments_new_appointment_msg"; +import FollowUpAppointments_accept_new_appointment_button from "@salesforce/label/c.FollowUpAppointments_accept_new_appointment_button"; +import FollowUpAppointments_bottom_sheet_success from "@salesforce/label/c.FollowUpAppointments_bottom_sheet_success"; +import FollowUpAppointments_bottom_sheet_failure_title from "@salesforce/label/c.FollowUpAppointments_bottom_sheet_failure_title"; +import FollowUpAppointments_bottom_sheet_failure_body from "@salesforce/label/c.FollowUpAppointments_bottom_sheet_failure_body"; +import FollowUpAppointments_OK from "@salesforce/label/c.FollowUpAppointments_OK"; + +const customLabels = { + FollowUpAppointments_new_appointment_msg, + FollowUpAppointments_accept_new_appointment_button, + FollowUpAppointments_bottom_sheet_success, + FollowUpAppointments_bottom_sheet_failure_title, + FollowUpAppointments_bottom_sheet_failure_body, + FollowUpAppointments_OK +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css new file mode 100644 index 0000000..2a74fa1 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css @@ -0,0 +1,187 @@ +.main-container { + padding: 16px; +} + +.modal-container { + width: 100%; + min-height: 225px; + background: white; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.spinner-container { + position: inherit; +} + +.confirmBtn { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 50px; + border-radius: 12px; + background-color: #0176d3; + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + display: flex; + align-items: center; + text-align: center; + color: #ffffff; +} + +.acceptNewAptTitle { + flex-direction: column; + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + text-align: center; + color: #181818; +} +.acceptNewAptClose { + margin-top: 2px; + cursor: pointer; +} +.modal { + position: fixed; + top: auto; + bottom: 0px; + left: 0px; +} + +svg[class*="slds-button__icon_left"] { + padding-bottom: 2px !important; +} + +.modal-footer { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 16px 16px 16px; + border-radius: 0px; + flex: none; + order: 3; + align-self: stretch; + flex-grow: 0; + height: 65px; +} + +.modal-title-container { + border-bottom: 1px solid rgba(159, 170, 181, 0.5); + box-sizing: border-box; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 0px; + isolation: isolate; + height: 48px; + padding: 16px; +} + +.info { + font-size: 16px; + line-height: 22px; + color: rgba(68, 68, 68, 1); + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; + margin: 16px; +} + +.info-emph { + font-style: normal; + font-weight: 600; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + color: #181818; + margin-bottom: 8px; +} + +.info-date { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; + display: flex; + align-items: center; + color: #181818; + margin-bottom: 8px; +} + +.secondary-title { + font-style: normal; + font-weight: 400; + font-size: 16px; + line-height: 22px; + display: flex; + align-items: center; + color: #444444; + margin-bottom: 8px; +} + +.contact-name-title { + font-style: normal; + font-weight: 600; + font-size: 16px; + line-height: 22px; + display: flex; + align-items: center; + color: #181818; + margin-bottom: 8px; +} +.scheduling-results-container { + display: flex; + flex-direction: column; + align-items: center; + padding: 43px 0; +} + +.scheduling-results-title { + margin-top: 16px; + font-size: 16px; + line-height: 22px; + font-weight: 500; +} + +.scheduling-results-info { + font-size: 16px; + line-height: 22px; + color: rgba(0, 0, 0, 1); +} + +.schedule-results-header-icon-container { + display: flex; + justify-content: center; + margin-bottom: 16px; +} + +.schedule-results-header-icon-title { + margin-left: 8px; + font-size: 16px; + line-height: 22px; + font-weight: 500; +} + +.hide { + visibility: hidden; +} + +.top-space { + margin-top: 16px; +} + +.button:active { + opacity: 25%; +} +.slds-modal__content { + border-radius: 12px; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html new file mode 100644 index 0000000..d2a6b77 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html @@ -0,0 +1,159 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js similarity index 73% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js index 3611eb1..16e868d 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js @@ -1,12 +1,13 @@ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class MobileAppointmentBookingRescheduleAppointment extends LightningElement { LABELS = customLabels; beforeScheduling = true; showSpinner = false; scheduleSuccess = false; mainTitle = this.LABELS.FollowUpAppointments_new_appointment_msg; - rescheduleBtnTitle = this.LABELS.FollowUpAppointments_accept_new_appointment_button; + rescheduleBtnTitle = + this.LABELS.FollowUpAppointments_accept_new_appointment_button; successTitle = this.LABELS.FollowUpAppointments_bottom_sheet_success; failureTitle = this.LABELS.FollowUpAppointments_bottom_sheet_failure_title; failurBody = this.LABELS.FollowUpAppointments_bottom_sheet_failure_body; @@ -19,21 +20,21 @@ export default class MobileAppointmentBookingRescheduleAppointment extends Light handleCloseModal() { // close the modal without scheduling - const customEvent = new CustomEvent('closeslotmodal'); + const customEvent = new CustomEvent("closeslotmodal"); this.dispatchEvent(customEvent); } handleConfirmBtnClose() { // close the modal window after scheduling success of fail - document.body.style.overflow = 'auto'; - const customEvent = new CustomEvent('scheduleclosewindow'); + document.body.style.overflow = "auto"; + const customEvent = new CustomEvent("scheduleclosewindow"); this.dispatchEvent(customEvent); } handleConfirm() { // press on Book Appointment button to schedule the SA this.showSpinner = true; - const customEvent = new CustomEvent('scheduleconfirmed'); + const customEvent = new CustomEvent("scheduleconfirmed"); this.dispatchEvent(customEvent); } @@ -42,6 +43,6 @@ export default class MobileAppointmentBookingRescheduleAppointment extends Light this.beforeScheduling = false; this.showSpinner = false; this.scheduleSuccess = response; - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js similarity index 54% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js index e943fa6..9866f2e 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js @@ -1,13 +1,13 @@ -import FollowUpAppointments_cant_select_Mobile_Worker_excluded from '@salesforce/label/c.FollowUpAppointments_cant_select_Mobile_Worker_excluded'; -import FollowUpAppointments_Mobile_Worker_radio_title from '@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_title'; -import FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable from '@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable'; -import FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable from '@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable'; +import FollowUpAppointments_cant_select_Mobile_Worker_excluded from "@salesforce/label/c.FollowUpAppointments_cant_select_Mobile_Worker_excluded"; +import FollowUpAppointments_Mobile_Worker_radio_title from "@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_title"; +import FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable from "@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable"; +import FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable from "@salesforce/label/c.FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable"; const customLabels = { FollowUpAppointments_cant_select_Mobile_Worker_excluded, FollowUpAppointments_Mobile_Worker_radio_title, FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable, - FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable, + FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable }; export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css new file mode 100644 index 0000000..1699562 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css @@ -0,0 +1,25 @@ +.container { + background-color: white; + margin: 10px 0; + padding: 13px 16px 0px 16px; +} +.title { + font-size: 18px; + line-height: 21px; + font-weight: 500; + color: rgb(0, 0, 0); + margin-bottom: 13px; +} +.mobile-worker-content { + padding-top: 16px; + font-size: 16px; + line-height: 22px; +} +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px; +} +.resourceRadioGroup { + --slds-c-radio-mark-color-foreground: #0176d3; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html new file mode 100644 index 0000000..28adea3 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html @@ -0,0 +1,24 @@ + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js new file mode 100644 index 0000000..e42748c --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js @@ -0,0 +1,52 @@ +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; + +export default class MobileAppointmentBookingResourceAssignment extends LightningElement { + LABELS = customLabels; + value = "ASSIGN_TO_ME"; + @api currentAssignmentMethod; + @api userName = ""; + @api selecteddate; + @api isExcluded; + @api showMobileWorkerChoice; + @api excludedMsg = + this.LABELS.FollowUpAppointments_cant_select_Mobile_Worker_excluded; + resourceAssignmentTitle = + this.LABELS.FollowUpAppointments_Mobile_Worker_radio_title; + + @api get showExcludedMsg() { + return this.isExcluded; + } + + get options() { + return [ + { + label: `${ + this.LABELS.FollowUpAppointments_Mobile_Worker_radio_assignToMe_lable + } (${this.userName || " "})`, + value: "ASSIGN_TO_ME" + }, + { + label: + this.LABELS + .FollowUpAppointments_Mobile_Worker_radio_assignToAnyAvailable_lable, + value: "ASSIGN_TO_ANY_AVIALABLE" + } + ]; + } + + handleAssignmentMethodChange(event) { + event.preventDefault(); + + console.log("Mobile Worker Method Changed to::: " + event.target.value); + const assignmentMethodEvent = new CustomEvent("onassignmentmethodchanged", { + detail: { + assignmentMethod: event.target.value, + selecteddate: this.selecteddate + }, + composed: true, + bubbles: true + }); + this.dispatchEvent(assignmentMethodEvent); + } +} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js similarity index 54% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js index d609bfb..2616a51 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js @@ -1,12 +1,12 @@ -import FollowUpAppointments_your_appt_was_canceled_msg from '@salesforce/label/c.FollowUpAppointments_your_appt_was_canceled_msg'; -import FollowUpAppointments_toastMessage_appointment_confirmed from '@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_confirmed'; -import FollowUpAppointments_toastMessage_appointment_schedule from '@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_schedule'; -import FollowUpAppointments_toastMessage_cancel_appointment_fail_message from '@salesforce/label/c.FollowUpAppointments_toastMessage_cancel_appointment_fail_message'; -import FollowUpAppointments_toastMessage_confirm_appointment_fail_message from '@salesforce/label/c.FollowUpAppointments_toastMessage_confirm_appointment_fail_message'; -import FollowUpAppointments_toastMessage_schedule_appointment_fail_message from '@salesforce/label/c.FollowUpAppointments_toastMessage_schedule_appointment_fail_message'; -import FollowUpAppointments_same_appointment_selected_warning from '@salesforce/label/c.FollowUpAppointments_same_appointment_selected_warning'; -import FollowUpAppointments_all_available_appointments from '@salesforce/label/c.FollowUpAppointments_all_available_appointments'; -import FollowUpAppointments_recommended_appointments from '@salesforce/label/c.FollowUpAppointments_recommended_appointments'; +import FollowUpAppointments_your_appt_was_canceled_msg from "@salesforce/label/c.FollowUpAppointments_your_appt_was_canceled_msg"; +import FollowUpAppointments_toastMessage_appointment_confirmed from "@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_confirmed"; +import FollowUpAppointments_toastMessage_appointment_schedule from "@salesforce/label/c.FollowUpAppointments_toastMessage_appointment_schedule"; +import FollowUpAppointments_toastMessage_cancel_appointment_fail_message from "@salesforce/label/c.FollowUpAppointments_toastMessage_cancel_appointment_fail_message"; +import FollowUpAppointments_toastMessage_confirm_appointment_fail_message from "@salesforce/label/c.FollowUpAppointments_toastMessage_confirm_appointment_fail_message"; +import FollowUpAppointments_toastMessage_schedule_appointment_fail_message from "@salesforce/label/c.FollowUpAppointments_toastMessage_schedule_appointment_fail_message"; +import FollowUpAppointments_same_appointment_selected_warning from "@salesforce/label/c.FollowUpAppointments_same_appointment_selected_warning"; +import FollowUpAppointments_all_available_appointments from "@salesforce/label/c.FollowUpAppointments_all_available_appointments"; +import FollowUpAppointments_recommended_appointments from "@salesforce/label/c.FollowUpAppointments_recommended_appointments"; const customLabels = { FollowUpAppointments_your_appt_was_canceled_msg, @@ -17,7 +17,7 @@ const customLabels = { FollowUpAppointments_toastMessage_schedule_appointment_fail_message, FollowUpAppointments_same_appointment_selected_warning, FollowUpAppointments_all_available_appointments, - FollowUpAppointments_recommended_appointments, + FollowUpAppointments_recommended_appointments }; export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css new file mode 100644 index 0000000..9f0e0db --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css @@ -0,0 +1,9 @@ +.calendarView { + position: -webkit-sticky; + position: sticky; + top: 66px; + background-color: white; + z-index: 10; + padding: 0 16px; + box-shadow: 0px 4px 0px #e5e5e5; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html new file mode 100644 index 0000000..0254a1d --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html @@ -0,0 +1,50 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js similarity index 77% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js index 48aa1c9..5dd4074 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js @@ -1,8 +1,8 @@ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api, track } from 'lwc'; +import { LightningElement, api, track } from "lwc"; -import convertTimeToOtherTimeZone from '@salesforce/apex/FollowUpAppointmentController.convertTimeToOtherTimeZone'; -import customLabels from './labels'; +import convertTimeToOtherTimeZone from "@salesforce/apex/FollowUpAppointmentController.convertTimeToOtherTimeZone"; +import customLabels from "./labels"; // Commented the assignmentMethod as its not used : lint fixes // const assignmentMethod = { @@ -57,8 +57,10 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni show_confirmBtnLayout = false; @api recommendedScore; - @api allAppointmentsTitle = this.LABELS.FollowUpAppointments_all_available_appointments; - @api recommendedAppointmentsTitle = this.LABELS.FollowUpAppointments_recommended_appointments; + @api allAppointmentsTitle = + this.LABELS.FollowUpAppointments_all_available_appointments; + @api recommendedAppointmentsTitle = + this.LABELS.FollowUpAppointments_recommended_appointments; timeSlotObjectFilteredByGrades; @api get serviceAppointmentObject() { @@ -184,26 +186,26 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni return this.serviceTerritoryTimeZone; } set serviceterritorytimezone(value) { - console.log('this.serviceTerritoryTimeZone: ' + value); + console.log("this.serviceTerritoryTimeZone: " + value); this.serviceTerritoryTimeZone = value; } onDateSelected(event) { this.selectedDate = event.detail.date; - console.log('Selected date in main class : ' + this.selectedDate); + console.log("Selected date in main class : " + this.selectedDate); let staticElement = this.template.querySelector('[data-id="calendar"]'); let top = staticElement.getBoundingClientRect().top; - console.log('The element is : ' + top); + console.log("The element is : " + top); this.template - .querySelector('c-mobile-appointment-booking-slots-container') + .querySelector("c-mobile-appointment-booking-slots-container") .onPositionUpdated(top); // removed the assignment because of lint } onWeekChangeEvent(event) { this.selectedDate = event.detail.date; - console.log('On week change called'); + console.log("On week change called"); this.template - .querySelector('c-mobile-appointment-booking-slots-container') + .querySelector("c-mobile-appointment-booking-slots-container") .onWeekUpdated(this.selectedDate); //removed the assignment because of lint this.runApexQueryToChangeEarlistStartDate(this.selectedDate); } @@ -221,29 +223,35 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni date1: this.selectedSlotStart, date2: this.selectedSlotEnd, targetTimezone: this.serviceTerritoryTimeZone, - sourceTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone, + sourceTimezone: Intl.DateTimeFormat().resolvedOptions().timeZone }) .then((data) => { this.selectedSlotStart = new Date(data.date1); this.selectedSlotEnd = new Date(data.date2); }) .catch((error) => { - console.log('error is : ' + error); + console.log("error is : " + error); }); } - this.setNewAppointmentSelectedText(event.detail.startDate, event.detail.endDate); + this.setNewAppointmentSelectedText( + event.detail.startDate, + event.detail.endDate + ); } onCustomEventCalled(event) { switch (event.detail.name) { - case 'trigergetslotapi': { + case "trigergetslotapi": { this.runApexQueryToChangeEarlistStartDate(event.detail.value); break; } - case 'updateNonAvailableDates': { + case "updateNonAvailableDates": { this.nonAvailableDateArray = event.detail.value; - console.log('Array of the date not available : ' + this.nonAvailableDateArray.length); + console.log( + "Array of the date not available : " + + this.nonAvailableDateArray.length + ); break; } default: { @@ -255,8 +263,8 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni getHeadlineDate() { var startDate; var endDate; - const dateOptions = { weekday: 'long', month: 'long', day: 'numeric' }; - if (this.ArrivalWindowStartTime === 'null' || this.showExactArrivalTime) { + const dateOptions = { weekday: "long", month: "long", day: "numeric" }; + if (this.ArrivalWindowStartTime === "null" || this.showExactArrivalTime) { startDate = this.convertDateUTCtoLocal(this.SchedStartTime); endDate = this.convertDateUTCtoLocal(this.SchedEndTime); } else { @@ -266,7 +274,9 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni if (startDate && endDate) { let dateLong = startDate.toLocaleDateString(undefined, dateOptions); let time = - this.getFormattedTimeFromDate(startDate) + ' - ' + this.getFormattedTimeFromDate(endDate); + this.getFormattedTimeFromDate(startDate) + + " - " + + this.getFormattedTimeFromDate(endDate); if (this.showExactArrivalTime) { time = this.getFormattedTimeFromDate(startDate); } @@ -276,11 +286,11 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni } convertDateUTCtoLocal(date) { - if (date && date !== 'null') { - return new Date(date.replace(/ /g, 'T') + '.000Z'); + if (date && date !== "null") { + return new Date(date.replace(/ /g, "T") + ".000Z"); } - return ''; // removed else part because of lint; + return ""; // removed else part because of lint; } getFormattedTimeFromDate(date) { @@ -288,31 +298,31 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni var tempDate = new Date(date); var hours = tempDate.getHours(); var minutes = tempDate.getMinutes(); - var ampm = hours >= 12 ? 'PM' : 'AM'; + var ampm = hours >= 12 ? "PM" : "AM"; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' - hours = hours < 10 ? '0' + hours : hours; - minutes = minutes < 10 ? '0' + minutes : minutes; - return hours + ':' + minutes + ' ' + ampm; + hours = hours < 10 ? "0" + hours : hours; + minutes = minutes < 10 ? "0" + minutes : minutes; + return hours + ":" + minutes + " " + ampm; } handleConfirm() { // allow scrolling // document.body.style.overflow = 'auto'; - const customEvent = new CustomEvent('serviceappointmentupdate', { + const customEvent = new CustomEvent("serviceappointmentupdate", { detail: { selectedSlotStart: this.selectedSlotStart, selectedSlotEnd: this.selectedSlotEnd, ArrivalWindowStartTime: this.ArrivalWindowStartTime, - schedulePolicyId: this.schedulePolicyId, - }, + schedulePolicyId: this.schedulePolicyId + } }); this.dispatchEvent(customEvent); } runApexQueryToChangeEarlistStartDate(selectedDate) { - const customEvent = new CustomEvent('getslotexecuted', { - detail: { selectedDate: selectedDate }, + const customEvent = new CustomEvent("getslotexecuted", { + detail: { selectedDate: selectedDate } }); this.dispatchEvent(customEvent); } @@ -322,30 +332,33 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni */ position; setNewAppointmentSelectedText(start, end) { - const dateOptions = { weekday: 'long', month: 'long', day: 'numeric' }; + const dateOptions = { weekday: "long", month: "long", day: "numeric" }; var dateLong = start.toLocaleDateString(undefined, dateOptions); - var time = this.getFormattedTimeFromDate(start) + ' - ' + this.getFormattedTimeFromDate(end); + var time = + this.getFormattedTimeFromDate(start) + + " - " + + this.getFormattedTimeFromDate(end); if (this.showExactArrivalTime) { time = this.getFormattedTimeFromDate(start); } - this.newAppointmentDate = dateLong + ', ' + time; + this.newAppointmentDate = dateLong + ", " + time; this.show_confirmBtnLayout = true; // lock scrolling - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; } handleConfirmBtnClose() { this.show_confirmBtnLayout = false; // allow scrolling // document.body.style.overflow = 'auto'; - const customEvent = new CustomEvent('scheduleclosewindow'); + const customEvent = new CustomEvent("scheduleclosewindow"); this.dispatchEvent(customEvent); } handleCloseSlotModal() { this.show_confirmBtnLayout = false; // allow scrolling - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; } filterTimeSlotObjectByGrade(timeSlotObject) { @@ -357,7 +370,7 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni filterByGrade(score) { return function (element) { - let splittedElement = element.split('#'); + let splittedElement = element.split("#"); let grade = splittedElement[2]; return grade >= score; }; @@ -365,13 +378,13 @@ export default class MobileAppointmentBookingSchedulingContainer extends Lightni @api clearSlotsAfterAssignmentMethodChange(updatedAssignmentMethod) { this.template - .querySelector('c-mobile-appointment-booking-slots-container') + .querySelector("c-mobile-appointment-booking-slots-container") .clearSlotsAfterAssignmentMethodChange(updatedAssignmentMethod); } @api handleSchedulingResponse(response) { this.template - .querySelector('c-mobile-appointment-booking-reschedule-appointment') + .querySelector("c-mobile-appointment-booking-reschedule-appointment") .handleSchedulingResponse(response); } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js new file mode 100644 index 0000000..518bd36 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js @@ -0,0 +1,58 @@ +import FollowUpAppointments_no_available_appointments_msg from "@salesforce/label/c.FollowUpAppointments_no_available_appointments_msg"; +import FollowUpAppointments_MonthName_January from "@salesforce/label/c.FollowUpAppointments_MonthName_January"; +import FollowUpAppointments_MonthName_February from "@salesforce/label/c.FollowUpAppointments_MonthName_February"; +import FollowUpAppointments_MonthName_March from "@salesforce/label/c.FollowUpAppointments_MonthName_March"; +import FollowUpAppointments_MonthName_April from "@salesforce/label/c.FollowUpAppointments_MonthName_April"; +import FollowUpAppointments_MonthName_May from "@salesforce/label/c.FollowUpAppointments_MonthName_May"; +import FollowUpAppointments_MonthName_June from "@salesforce/label/c.FollowUpAppointments_MonthName_June"; +import FollowUpAppointments_MonthName_July from "@salesforce/label/c.FollowUpAppointments_MonthName_July"; +import FollowUpAppointments_MonthName_August from "@salesforce/label/c.FollowUpAppointments_MonthName_August"; +import FollowUpAppointments_MonthName_September from "@salesforce/label/c.FollowUpAppointments_MonthName_September"; +import FollowUpAppointments_MonthName_October from "@salesforce/label/c.FollowUpAppointments_MonthName_October"; +import FollowUpAppointments_MonthName_November from "@salesforce/label/c.FollowUpAppointments_MonthName_November"; +import FollowUpAppointments_MonthName_December from "@salesforce/label/c.FollowUpAppointments_MonthName_December"; + +import FollowUpAppointments_WeekDayLong_Monday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Monday"; +import FollowUpAppointments_WeekDayLong_Tuesday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Tuesday"; +import FollowUpAppointments_WeekDayLong_Wednesday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Wednesday"; +import FollowUpAppointments_WeekDayLong_Thursday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Thursday"; +import FollowUpAppointments_WeekDayLong_Friday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Friday"; +import FollowUpAppointments_WeekDayLong_Saturday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Saturday"; +import FollowUpAppointments_WeekDayLong_Sunday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Sunday"; +import FollowUpAppointments_today_text from "@salesforce/label/c.FollowUpAppointments_today_text"; +import FollowUpAppointments_all_available_appointments from "@salesforce/label/c.FollowUpAppointments_all_available_appointments"; +import FollowUpAppointments_recommended_appointments from "@salesforce/label/c.FollowUpAppointments_recommended_appointments"; +import FollowUpAppointments_empty_state_select_any_available_worker from "@salesforce/label/c.FollowUpAppointments_empty_state_select_any_available_worker"; +import FollowUpAppointments_empty_state_change_the_dates from "@salesforce/label/c.FollowUpAppointments_empty_state_change_the_dates"; + +const customLabels = { + FollowUpAppointments_no_available_appointments_msg, + FollowUpAppointments_today_text, + + FollowUpAppointments_MonthName_January, + FollowUpAppointments_MonthName_February, + FollowUpAppointments_MonthName_March, + FollowUpAppointments_MonthName_April, + FollowUpAppointments_MonthName_May, + FollowUpAppointments_MonthName_June, + FollowUpAppointments_MonthName_July, + FollowUpAppointments_MonthName_August, + FollowUpAppointments_MonthName_September, + FollowUpAppointments_MonthName_October, + FollowUpAppointments_MonthName_November, + FollowUpAppointments_MonthName_December, + + FollowUpAppointments_WeekDayLong_Monday, + FollowUpAppointments_WeekDayLong_Tuesday, + FollowUpAppointments_WeekDayLong_Wednesday, + FollowUpAppointments_WeekDayLong_Thursday, + FollowUpAppointments_WeekDayLong_Friday, + FollowUpAppointments_WeekDayLong_Saturday, + FollowUpAppointments_WeekDayLong_Sunday, + FollowUpAppointments_all_available_appointments, + FollowUpAppointments_recommended_appointments, + FollowUpAppointments_empty_state_select_any_available_worker, + FollowUpAppointments_empty_state_change_the_dates +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css new file mode 100644 index 0000000..4e11d47 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css @@ -0,0 +1,114 @@ +.header { + color: rgb(0, 0, 0); + font-size: 16px; + font-weight: 500; + letter-spacing: -0.38px; + margin-top: 24px; + margin-bottom: 8px; +} +.timeslotButton { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 48px; + font-size: 16px; + border-radius: 12px; + border: 2px solid #0176d3; + color: #0176d3; + line-height: 22px; + display: flex; + align-items: center; + text-align: center; + margin: 8px 0; + font-style: normal; + font-weight: 600; +} + +.timeslotButton:active { + opacity: 25%; +} +.timeslotButton:hover { + opacity: 25%; +} +.timeslotButton:focus { + opacity: 25%; +} + +.time-slot-btn-wrapper { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 8px; + gap: 16px; +} +.noSlotLabel { + height: 18px; + color: #706e6b; + font-size: 15px; + font-weight: normal; + letter-spacing: -0.36px; +} +.headerBold { + color: rgb(0, 0, 0); + font-size: 16px; + font-weight: 700; + letter-spacing: -0.38px; +} +.slots-container { + background-color: white; + padding: 0 16px 16px 16px; +} +.page-title { + color: rgb(0, 0, 0); + font-size: 18px; + font-weight: 500; + letter-spacing: -0.38px; + margin-top: 10px; + margin-bottom: 4px; + padding-top: 10px; + padding-bottom: 10px; +} + +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px; +} + +.section { + background-color: rgba(238, 238, 238, 1); + height: 10px; + margin: 16px -16px 0 -16px; +} + +.active-slot { + opacity: 25%; +} + +.grey-action-icon { + margin-bottom: 16px; + --sds-c-icon-color-background: #eeeeee; +} + +.empty-slots-container { + background-color: white; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px 16px; + margin-top: 10px; +} + +.empty-slos-title { + font-size: 16px; + line-height: 22px; + font-weight: 500; +} +.empty-slos-body { + font-size: 16px; + line-height: 22px; + margin-top: 16px; + text-align: center; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html new file mode 100644 index 0000000..04417c9 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html @@ -0,0 +1,106 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js similarity index 77% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js index 9973446..3e7f4fb 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js @@ -1,11 +1,11 @@ /* eslint-disable @lwc/lwc/no-dupe-class-members */ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; const assignmentMethod = { - ASSIGN_TO_ME: 'assignToMe', - ASSIGN_TO_ANY_AVIALABLE: 'assignToAnyAvailable', + ASSIGN_TO_ME: "assignToMe", + ASSIGN_TO_ANY_AVIALABLE: "assignToAnyAvailable" }; export default class MobileAppointmentBookingSlotsContainer extends LightningElement { LABELS = customLabels; @@ -21,7 +21,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle _selectedDate; _showExactArrivalTime; @api maxValidCalendarDate; - pageTitle; + _pageTitle; timeSlotTitle; nonAvailableDateArray = []; _noOfDaysBeforeAfterWeek = 2; @@ -47,7 +47,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle this.LABELS.FollowUpAppointments_MonthName_September, this.LABELS.FollowUpAppointments_MonthName_October, this.LABELS.FollowUpAppointments_MonthName_November, - this.LABELS.FollowUpAppointments_MonthName_December, + this.LABELS.FollowUpAppointments_MonthName_December ]; DAYNAME = [ @@ -57,7 +57,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle this.LABELS.FollowUpAppointments_WeekDayLong_Wednesday, this.LABELS.FollowUpAppointments_WeekDayLong_Thursday, this.LABELS.FollowUpAppointments_WeekDayLong_Friday, - this.LABELS.FollowUpAppointments_WeekDayLong_Saturday, + this.LABELS.FollowUpAppointments_WeekDayLong_Saturday ]; @api get selectedDate() { @@ -66,7 +66,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle set selectedDate(value) { if (value) { this._selectedDate = this.getDateWithoutTime(Date.parse(value)); - console.log('Selected Date in timeSlot : ' + this._selectedDate); + console.log("Selected Date in timeSlot : " + this._selectedDate); this.firstDayOfTheWeek = this.getFirstDayOfWeek(this._selectedDate, 0); this.lastDayOfTheWeek = this.getLastDayOfWeek(this._selectedDate, 0); @@ -91,7 +91,9 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle if (value.length > 0) { this.updateSlotData(value); } - updatedData = Object.values(this.slotsData[this.slotsData.currentAssignmentMethodRef]); + updatedData = Object.values( + this.slotsData[this.slotsData.currentAssignmentMethodRef] + ); this.handleTimeSlotUpdateEvent(updatedData); } } @@ -108,11 +110,13 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle let slotsData; this.isWeekUpdated = true; - console.log('Week change in parent class ' + date); + console.log("Week change in parent class " + date); this.firstDayOfTheWeek = this.getFirstDayOfWeek(date, 0); this.lastDayOfTheWeek = this.getLastDayOfWeek(date, 0); this.selectedDate = date; - slotsData = Object.values(this.slotsData[this.slotsData.currentAssignmentMethodRef]); + slotsData = Object.values( + this.slotsData[this.slotsData.currentAssignmentMethodRef] + ); this.handleTimeSlotUpdateEvent(slotsData); } @@ -157,25 +161,25 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle this.slotsData = { slotsForCurrentMobileWorker: {}, slotsForAllMobileWorkers: {}, - currentAssignmentMethodRef: 'slotsForCurrentMobileWorker', + currentAssignmentMethodRef: "slotsForCurrentMobileWorker" }; this.displayNoSlotsMsg = true; } handleTimeSlotTitle() { - if (this.selectedDate) this.timeSlotTitle = 'Date : ' + this.selectedDate; + if (this.selectedDate) this.timeSlotTitle = "Date : " + this.selectedDate; } formatTimeSlots(timeSlotArray) { var formattedSlotArr = []; - console.log('---------- Time slots ----------'); + console.log("---------- Time slots ----------"); let currentDate = new Date(); for (let i = 0; i < timeSlotArray.length; i++) { let array = []; array.dateTime = timeSlotArray[i]; - console.log('Time slot : ' + timeSlotArray[i]); - let timeSlot = timeSlotArray[i].split('#'); - let timeSlotDate = new Date(timeSlot[1].replace(/-/g, '/')); + console.log("Time slot : " + timeSlotArray[i]); + let timeSlot = timeSlotArray[i].split("#"); + let timeSlotDate = new Date(timeSlot[1].replace(/-/g, "/")); array.grade = timeSlot[2]; if (timeSlotDate > currentDate) { if (this.showExactArrivalTime) { @@ -183,14 +187,19 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle array.time = this.getTimeFromDate(timeSlot[0]); } else { // SHOW ARRIVAL WINDOW IF FALSE - array.time = this.getTimeFromDate(timeSlot[0]) + '-' + this.getTimeFromDate(timeSlot[1]); + array.time = + this.getTimeFromDate(timeSlot[0]) + + "-" + + this.getTimeFromDate(timeSlot[1]); } array.date = this.getDateWithoutTime(Date.parse(timeSlotDate)); - array.dateInMiliSec = this.getDateWithoutTime(Date.parse(timeSlotDate)).getTime(); + array.dateInMiliSec = this.getDateWithoutTime( + Date.parse(timeSlotDate) + ).getTime(); formattedSlotArr.push(array); } } - console.log('---------- Time slots ----------'); + console.log("---------- Time slots ----------"); return this.formatUniqueArray(formattedSlotArr); } @@ -242,16 +251,20 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle formatTitle(value) { var date = new Date(value); var title = - this.DAYNAME[date.getDay()] + ', ' + this.MONTHNAME[date.getMonth()] + ' ' + date.getDate(); + this.DAYNAME[date.getDay()] + + ", " + + this.MONTHNAME[date.getMonth()] + + " " + + date.getDate(); if (date.setHours(0, 0, 0, 0) === new Date().setHours(0, 0, 0, 0)) { - title = title + ' , ' + this.LABELS.FollowUpAppointments_today_text; + title = title + " , " + this.LABELS.FollowUpAppointments_today_text; } return title; } handleDateSelectEvent(date) { this.timeSlotArrayByDate = []; - console.log('Handle date selected is : ' + date); + console.log("Handle date selected is : " + date); } /** @@ -262,14 +275,16 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle this.formattedTimeSlotArray = this.sortTimeSlotAccordingToWeekSelected( this.formattedTimeSlotArrayTemp ); - this.formattedRecommendedSlotsArray = this.filterRecommededSlots(this.formattedTimeSlotArray); + this.formattedRecommendedSlotsArray = this.filterRecommededSlots( + this.formattedTimeSlotArray + ); if (this.formattedTimeSlotArray && this.formattedTimeSlotArray.length > 0) { this.displayNoSlotsMsg = false; } else { this.displayNoSlotsMsg = true; } this.allowScrolling(); - this.callCustomEvent('updateNonAvailableDates', this.nonAvailableDateArray); + this.callCustomEvent("updateNonAvailableDates", this.nonAvailableDateArray); } sortTimeSlotAccordingToWeekSelected(dateWiseSlotArray) { @@ -321,7 +336,9 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle return c - d; }); - this.nonAvailableDateArray = Array.from(new Set(this.nonAvailableDateArray)); + this.nonAvailableDateArray = Array.from( + new Set(this.nonAvailableDateArray) + ); return newSortedArray; } @@ -341,44 +358,44 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle // APPROACH 2 : CHECK FOR EACH DATE IF ADDED IN THE CACHE ARRAY for (let i = 0; i < this.formattedTimeSlotArrayTemp.length; i++) { let date = new Date(this.formattedTimeSlotArrayTemp[i].date); - console.log('After Selected Date in loop is : ' + date); - console.log('After Selected date : ' + selectedDate); + console.log("After Selected Date in loop is : " + date); + console.log("After Selected date : " + selectedDate); if (selectedDate.getTime() === date.getTime()) { isDateAdded = true; - console.log('After Selected date is true: ' + selectedDate); + console.log("After Selected date is true: " + selectedDate); break; } } } if (!isDateAdded) { - console.log('Run apex class for query '); - this.callCustomEvent('trigergetslotapi', selectedDate); + console.log("Run apex class for query "); + this.callCustomEvent("trigergetslotapi", selectedDate); } } callCustomEvent(name, value) { - const customEvent = new CustomEvent('customeventcalled', { - detail: { value: value, name: name }, + const customEvent = new CustomEvent("customeventcalled", { + detail: { value: value, name: name } }); this.dispatchEvent(customEvent); } getTimeFromDate(date) { - var tempDate = new Date(date.replace(/ /g, 'T')); + var tempDate = new Date(date.replace(/ /g, "T")); let hours = tempDate.getHours(); let minutes = tempDate.getMinutes(); - let ampm = hours >= 12 ? 'PM' : 'AM'; + let ampm = hours >= 12 ? "PM" : "AM"; hours = hours % 12; hours = hours ? hours : 12; // the hour '0' should be '12' - hours = hours < 10 ? '0' + hours : hours; - minutes = minutes < 10 ? '0' + minutes : minutes; - return hours + ':' + minutes + ' ' + ampm; + hours = hours < 10 ? "0" + hours : hours; + minutes = minutes < 10 ? "0" + minutes : minutes; + return hours + ":" + minutes + " " + ampm; } getDateWithoutTime(date) { var d; - if (typeof val === 'string') { - d = new Date(date.replace(/-/g, '/')); // replace method is use to support time in safari + if (typeof val === "string") { + d = new Date(date.replace(/-/g, "/")); // replace method is use to support time in safari } else { d = new Date(date); } @@ -388,40 +405,40 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle handleTimeSlotClickEvent(event) { var selectedSlot = event.target.title; - var startEndTimeArray = selectedSlot.split('#'); - console.log('Selected slot is : ' + selectedSlot); + var startEndTimeArray = selectedSlot.split("#"); + console.log("Selected slot is : " + selectedSlot); if (startEndTimeArray.length > 1) { let startTime = this.getDateFromString(startEndTimeArray[0]); let endTime = this.getDateFromString(startEndTimeArray[1]); - const customEvent = new CustomEvent('slotselection', { - detail: { startDate: startTime, endDate: endTime }, + const customEvent = new CustomEvent("slotselection", { + detail: { startDate: startTime, endDate: endTime } }); this.dispatchEvent(customEvent); } } getDateFromString(date) { - if (date && date !== 'null') { - return new Date(date.replace(/ /g, 'T')); + if (date && date !== "null") { + return new Date(date.replace(/ /g, "T")); } - return ''; + return ""; } convertAMPMto24(time) { var hours = Number(time.match(/^(\d+)/)[1]); var minutes = Number(time.match(/:(\d+)/)[1]); var AMPM = time.match(/\s(.*)$/)[1]; - if (AMPM === 'PM' && hours < 12) hours = hours + 12; - if (AMPM === 'AM' && hours === 12) hours = hours - 12; + if (AMPM === "PM" && hours < 12) hours = hours + 12; + if (AMPM === "AM" && hours === 12) hours = hours - 12; let sHours = hours.toString(); let sMinutes = minutes.toString(); - if (hours < 10) sHours = '0' + sHours; - if (minutes < 10) sMinutes = '0' + sMinutes; - return sHours + ':' + sMinutes; + if (hours < 10) sHours = "0" + sHours; + if (minutes < 10) sMinutes = "0" + sMinutes; + return sHours + ":" + sMinutes; } handleFilterClickEvent(event) { - console.log('Filter selected is : ' + event.target.title); + console.log("Filter selected is : " + event.target.title); } getFirstDayOfWeek(date, index) { @@ -430,13 +447,10 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle var day = d.getDay(); var diff = d.getDate() - day + (start > day ? start - 7 : start); d.setDate(diff); - console.log('First day of week is : ' + d.getDate()); - let newDate = new Date(d.setDate(d.getDate() - this.showNoOfDaysBeforeAfterWeek)).setHours( - 0, - 0, - 0, - 0 - ); + console.log("First day of week is : " + d.getDate()); + let newDate = new Date( + d.setDate(d.getDate() - this.showNoOfDaysBeforeAfterWeek) + ).setHours(0, 0, 0, 0); return newDate; } @@ -446,12 +460,9 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle var day = d.getDay(); var diff = d.getDate() - day + (start > day ? start - 1 : 6 + start); d.setDate(diff); - let newDate = new Date(d.setDate(d.getDate() + this.showNoOfDaysBeforeAfterWeek)).setHours( - 0, - 0, - 0, - 0 - ); + let newDate = new Date( + d.setDate(d.getDate() + this.showNoOfDaysBeforeAfterWeek) + ).setHours(0, 0, 0, 0); return newDate; } @@ -461,23 +472,23 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle previousElement; executeScroll(selectedDate) { var temp = '"' + selectedDate + '"'; - var dataId = '[data-id=' + temp + ']'; - console.log('Data is is : ' + dataId); + var dataId = "[data-id=" + temp + "]"; + console.log("Data is is : " + dataId); let elementToShow = this.template.querySelector(dataId); if (elementToShow) { try { if (this.previousElement) { - this.previousElement.classList.remove('headerBold'); - this.previousElement.classList.add('header'); + this.previousElement.classList.remove("headerBold"); + this.previousElement.classList.add("header"); } let elementToShowLocation = elementToShow.getBoundingClientRect(); //gets the current user view let offset = elementToShowLocation.top - 235; //gets the difference between user view and element view minus the calendar height if (!this.isWeekUpdated) { - window.scrollBy({ top: offset, behavior: 'smooth' }); + window.scrollBy({ top: offset, behavior: "smooth" }); } this.previousElement = elementToShow; } catch (e) { - console.log('Error is : ' + e); + console.log("Error is : " + e); } } this.isWeekUpdated = false; @@ -490,12 +501,14 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle this.displayNoSlotsMsg = true; if (updatedAssignmentMethod === assignmentMethod.ASSIGN_TO_ME) { - this.slotsData.currentAssignmentMethodRef = 'slotsForCurrentMobileWorker'; + this.slotsData.currentAssignmentMethodRef = "slotsForCurrentMobileWorker"; } else { - this.slotsData.currentAssignmentMethodRef = 'slotsForAllMobileWorkers'; + this.slotsData.currentAssignmentMethodRef = "slotsForAllMobileWorkers"; } - slotsData = Object.values(this.slotsData[this.slotsData.currentAssignmentMethodRef]); + slotsData = Object.values( + this.slotsData[this.slotsData.currentAssignmentMethodRef] + ); this.handleTimeSlotUpdateEvent(slotsData); } @@ -514,7 +527,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle label: slot.label, fullValue: slot.fullValue, grade: slot.grade, - isRecomended: slot.isRecomended, + isRecomended: slot.isRecomended }); } }); @@ -536,7 +549,7 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle updatedData = JSON.parse(JSON.stringify(this.slotsData[currentRef])); newSlots.forEach((slot) => { - let slotInfoToArr = slot.split('#'); + let slotInfoToArr = slot.split("#"); let slotStart = new Date(slotInfoToArr[0]); let slotKey = slotStart.getTime(); @@ -548,11 +561,11 @@ export default class MobileAppointmentBookingSlotsContainer extends LightningEle } allowScrolling() { - document.body.style.overflow = 'auto'; + document.body.style.overflow = "auto"; this.showDataSpinner = false; } lockScrolling() { - document.body.style.overflow = 'hidden'; + document.body.style.overflow = "hidden"; this.showDataSpinner = true; } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants.js new file mode 100644 index 0000000..245485f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants.js @@ -0,0 +1,8 @@ +const toastVariables = { + error: "error", + warning: "warning", + success: "success", + info: "info" +}; + +export { toastVariables }; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js new file mode 100644 index 0000000..d1a0a1d --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js @@ -0,0 +1,45 @@ +import FollowUpAppointments_MonthName_January from "@salesforce/label/c.FollowUpAppointments_MonthName_January"; +import FollowUpAppointments_MonthName_February from "@salesforce/label/c.FollowUpAppointments_MonthName_February"; +import FollowUpAppointments_MonthName_March from "@salesforce/label/c.FollowUpAppointments_MonthName_March"; +import FollowUpAppointments_MonthName_April from "@salesforce/label/c.FollowUpAppointments_MonthName_April"; +import FollowUpAppointments_MonthName_May from "@salesforce/label/c.FollowUpAppointments_MonthName_May"; +import FollowUpAppointments_MonthName_June from "@salesforce/label/c.FollowUpAppointments_MonthName_June"; +import FollowUpAppointments_MonthName_July from "@salesforce/label/c.FollowUpAppointments_MonthName_July"; +import FollowUpAppointments_MonthName_August from "@salesforce/label/c.FollowUpAppointments_MonthName_August"; +import FollowUpAppointments_MonthName_September from "@salesforce/label/c.FollowUpAppointments_MonthName_September"; +import FollowUpAppointments_MonthName_October from "@salesforce/label/c.FollowUpAppointments_MonthName_October"; +import FollowUpAppointments_MonthName_November from "@salesforce/label/c.FollowUpAppointments_MonthName_November"; +import FollowUpAppointments_MonthName_December from "@salesforce/label/c.FollowUpAppointments_MonthName_December"; + +import FollowUpAppointments_WeekDayLong_Monday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Monday"; +import FollowUpAppointments_WeekDayLong_Tuesday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Tuesday"; +import FollowUpAppointments_WeekDayLong_Wednesday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Wednesday"; +import FollowUpAppointments_WeekDayLong_Thursday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Thursday"; +import FollowUpAppointments_WeekDayLong_Friday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Friday"; +import FollowUpAppointments_WeekDayLong_Saturday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Saturday"; +import FollowUpAppointments_WeekDayLong_Sunday from "@salesforce/label/c.FollowUpAppointments_WeekDayLong_Sunday"; + +const customLabels = { + FollowUpAppointments_MonthName_January, + FollowUpAppointments_MonthName_February, + FollowUpAppointments_MonthName_March, + FollowUpAppointments_MonthName_April, + FollowUpAppointments_MonthName_May, + FollowUpAppointments_MonthName_June, + FollowUpAppointments_MonthName_July, + FollowUpAppointments_MonthName_August, + FollowUpAppointments_MonthName_September, + FollowUpAppointments_MonthName_October, + FollowUpAppointments_MonthName_November, + FollowUpAppointments_MonthName_December, + + FollowUpAppointments_WeekDayLong_Monday, + FollowUpAppointments_WeekDayLong_Tuesday, + FollowUpAppointments_WeekDayLong_Wednesday, + FollowUpAppointments_WeekDayLong_Thursday, + FollowUpAppointments_WeekDayLong_Friday, + FollowUpAppointments_WeekDayLong_Saturday, + FollowUpAppointments_WeekDayLong_Sunday +}; + +export default customLabels; diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js similarity index 74% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js index a8632b7..8e6bae7 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js @@ -1,4 +1,4 @@ -import customLabels from './constantsLabels'; +import customLabels from "./constantsLabels"; const MONTHNAME = [ customLabels.FollowUpAppointments_MonthName_January, @@ -12,7 +12,7 @@ const MONTHNAME = [ customLabels.FollowUpAppointments_MonthName_September, customLabels.FollowUpAppointments_MonthName_October, customLabels.FollowUpAppointments_MonthName_November, - customLabels.FollowUpAppointments_MonthName_December, + customLabels.FollowUpAppointments_MonthName_December ]; const DAYNAME = [ @@ -22,19 +22,19 @@ const DAYNAME = [ customLabels.FollowUpAppointments_WeekDayLong_Wednesday, customLabels.FollowUpAppointments_WeekDayLong_Thursday, customLabels.FollowUpAppointments_WeekDayLong_Friday, - customLabels.FollowUpAppointments_WeekDayLong_Saturday, + customLabels.FollowUpAppointments_WeekDayLong_Saturday ]; /** Shifted this method up because of lint issues */ const getFormattedTime = (date) => { var hours = date.getHours(); var minutes = date.getMinutes(); - var ampm = hours >= 12 ? 'PM' : 'AM'; + var ampm = hours >= 12 ? "PM" : "AM"; hours = hours % 12; hours = hours ? hours : 12; - hours = hours < 10 ? '0' + hours : hours; - minutes = minutes < 10 ? '0' + minutes : minutes; - return hours + ':' + minutes + ' ' + ampm; + hours = hours < 10 ? "0" + hours : hours; + minutes = minutes < 10 ? "0" + minutes : minutes; + return hours + ":" + minutes + " " + ampm; }; /** Shifted this method up because of lint issues */ @@ -42,18 +42,18 @@ const formatDateWithTime = (date) => { let d = new Date(date); let formatedStr = DAYNAME[d.getDay()] + - ',' + - ' ' + + "," + + " " + MONTHNAME[d.getMonth()] + - ' ' + + " " + d.getDate() + - ', ' + + ", " + getFormattedTime(d); return formatedStr; }; const formatAppointmentDateandHourRange = (startDate, endDate) => { - let formatedStr = ''; + let formatedStr = ""; if (startDate && endDate) { let start = new Date(startDate); let end = new Date(endDate); @@ -61,11 +61,11 @@ const formatAppointmentDateandHourRange = (startDate, endDate) => { if (start.getDate() === end.getDate()) { //Assumes same day if (!(start.getTime() === end.getTime())) { - formatedStr = formatedStr + ' - ' + getFormattedTime(end); + formatedStr = formatedStr + " - " + getFormattedTime(end); } } else { //If more than one day - formatedStr = formatedStr + +' - ' + formatDateWithTime(end); + formatedStr = formatedStr + +" - " + formatDateWithTime(end); } } else if (startDate) { formatedStr = formatDateWithTime(startDate); @@ -75,18 +75,18 @@ const formatAppointmentDateandHourRange = (startDate, endDate) => { }; const convertDateUTCtoLocal = (date) => { - if (date && date !== 'null') { + if (date && date !== "null") { let utcDate = new Date(date); utcDate.setMinutes(utcDate.getMinutes() - utcDate.getTimezoneOffset()); return utcDate; } - return ''; // removed else part : lint fixes + return ""; // removed else part : lint fixes }; const getDateWithoutTime = (date) => { var d; - if (typeof val === 'string') { - d = new Date(date.replace(/-/g, '/')); // replace method is use to support time in safari + if (typeof val === "string") { + d = new Date(date.replace(/-/g, "/")); // replace method is use to support time in safari } else { d = new Date(date); } @@ -94,4 +94,8 @@ const getDateWithoutTime = (date) => { return d; }; -export { formatAppointmentDateandHourRange, convertDateUTCtoLocal, getDateWithoutTime }; +export { + formatAppointmentDateandHourRange, + convertDateUTCtoLocal, + getDateWithoutTime +}; diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers.js similarity index 57% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/test.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers.js index 6b698f2..64736e9 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/test.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/rebookingDateCalculationsHelpers.js @@ -1,3 +1,8 @@ +// eslint-disable-next-line no-unused-vars +const SCHEDULING_UNIT_DAY = "Days"; +const SCHEDULING_UNIT_WEEK = "Weeks"; +const SCHEDULING_UNIT_MONTH = "Months"; + const calculateMaxValidHorizonDate = ( schedulingHorizonValue, selectedHorizonUnit, @@ -7,35 +12,39 @@ const calculateMaxValidHorizonDate = ( let currentDate = new Date(); let targetDate; switch (selectedHorizonUnit) { - case 'Weeks': + case SCHEDULING_UNIT_WEEK: targetDate = new Date( - currentDate.setDate(currentDate.getDate() + schedulingHorizonValue * 7) + currentDate.setDate( + currentDate.getDate() + schedulingHorizonValue * 7 + ) ); break; - case 'Months': + case SCHEDULING_UNIT_MONTH: targetDate = new Date( currentDate.setMonth(currentDate.getMonth() + schedulingHorizonValue) ); break; default: //this.SCHEDULING_UNIT_DAY - targetDate = new Date(currentDate.setDate(currentDate.getDate() + schedulingHorizonValue)); + targetDate = new Date( + currentDate.setDate(currentDate.getDate() + schedulingHorizonValue) + ); } - console.log('Scheduling horizon unit : new date is : ' + targetDate); + console.log("Scheduling horizon unit : new date is : " + targetDate); - if (serviceAppointmentDueDate < targetDate) { + if (serviceAppointmentDueDate < targetDate) return serviceAppointmentDueDate; - } + return targetDate; } return serviceAppointmentDueDate; }; const convertDateUTCtoLocal = (date) => { - if (date && date !== 'null') { - return new Date(date.replace(/ /g, 'T') + '.000Z'); + if (date && date !== "null") { + return new Date(date.replace(/ /g, "T") + ".000Z"); } - return ''; + return ""; }; export { calculateMaxValidHorizonDate, convertDateUTCtoLocal }; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js new file mode 100644 index 0000000..fa5fd2e --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/__tests__/mobileWorkFlowPage.test.js @@ -0,0 +1,123 @@ +import { createElement } from "lwc"; +import MobileWorkFlowPage from "c/mobileWorkFlowPage"; + +jest.mock( + "@salesforce/apex/FollowUpAppointmentController.saveFieldSettings", + () => { + return { + default: jest.fn(() => ({ + data: "success", + Asset: "Asset", + ServiceAppointment: "Service Appointment" + })) + }; + }, + { virtual: true } +); + +jest.mock( + "./labels", + () => { + return { + MobileDashboard_card_filter_titleTime: "test" + }; + }, + { virtual: true } +); + +let element; +describe("c-mobile-work-flow-page", () => { + afterEach(() => { + // The jsdom instance is shared across test cases in a single file so reset the DOM + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + beforeEach(() => { + element = createElement("c-mobile-work-flow-page", { + is: MobileWorkFlowPage + }); + + element.showDeleteDialogBox = true; + element.handleDeleteEventDialogBox = jest.fn(); + element.handleAddScreenEvent = jest.fn(); + element.showModal = true; + element.saveDetails = jest.fn(); + element.closeModal = jest.fn(); + element.SCREEN1 = 1; + element.SCREEN2 = 2; + element.SCREE3 = 3; + + document.body.appendChild(element); + }); + + it("should show correct info", () => { + const mainInfoText = element.shadowRoot.querySelector(".mainInfoText"); + expect(mainInfoText.textContent).toBe( + "c.FollowUpAppointments_MobileWorkFlow_Info_text" + ); + }); + + it("Call handle add screen event", async () => { + console.log("Element is : " + element.shadowRoot); + const action = element.shadowRoot.querySelector( + '[data-id="addscreenevent"]' + ); + console.log("Action is : " + action); + const spy = jest.spyOn(element, "handleAddScreenEvent"); + console.log(spy); + action.dispatchEvent(new CustomEvent("click")); + + return Promise.resolve().then(() => { + expect(spy).toHaveBeenCalledTimes(0); + }); + }); + + it("Handle save step details", async () => { + console.log("Element is : " + element.shadowRoot); + let action = element.shadowRoot.querySelector( + '[data-id="saveDetailsDialog"]' + ); + console.log("Action is : " + action); + + action.click(); + + return Promise.resolve().then(() => { + const mainInfoText = element.shadowRoot.querySelector(".mainInfoText"); + expect(mainInfoText.textContent).toBe( + "c.FollowUpAppointments_MobileWorkFlow_Info_text" + ); + }); + + // return Promise.resolve() + // .then(async () => { + // expect(spy).toBeCalledTimes(0); + // }) + // .then(() => { + // expect(spy).toBeCalledTimes(0); + // }); + }); + + it("Handle close modal", async () => { + console.log("Element is : " + element.shadowRoot); + const action = element.shadowRoot.querySelector('[data-id="closeDialog"]'); + console.log("Action is : " + action); + const spy = jest.spyOn(element, "closeModal"); + console.log(spy); + action.dispatchEvent(new CustomEvent("click")); + + return Promise.resolve().then(() => { + expect(spy).toHaveBeenCalledTimes(0); + }); + }); + + it("Test step title value", () => { + element.currentScreenTitle = "screenTitle"; + const mainInfoText = element.shadowRoot.querySelector( + '[data-id="stepTitleId"]' + ); + console.log("Value of the mainInfoText " + mainInfoText.value); + expect(mainInfoText.value).toBe(mainInfoText.value); + }); +}); diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js new file mode 100644 index 0000000..f7a4b89 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/labels.js @@ -0,0 +1,64 @@ +import FollowUpAppointments_add_step_button_label from "@salesforce/label/c.FollowUpAppointments_add_step_button_label"; +import FollowUpAppointments_edit_step_text_label from "@salesforce/label/c.FollowUpAppointments_edit_step_text_label"; +import FollowUpAppointments_new_step_text_label from "@salesforce/label/c.FollowUpAppointments_new_step_text_label"; +import FollowUpAppointments_step_name_text from "@salesforce/label/c.FollowUpAppointments_step_name_text"; +import FollowUpAppointments_Object_text from "@salesforce/label/c.FollowUpAppointments_Object_text"; +import FollowUpAppointments_placeholder_step_name from "@salesforce/label/c.FollowUpAppointments_placeholder_step_name"; +import FollowUpAppointments_select_fields from "@salesforce/label/c.FollowUpAppointments_select_fields"; +import FollowUpAppointments_button_save from "@salesforce/label/c.FollowUpAppointments_button_save"; +import FollowUpAppointments_button_cancel from "@salesforce/label/c.FollowUpAppointments_button_cancel"; +import FollowUpAppointments_duallist_available_fields from "@salesforce/label/c.FollowUpAppointments_duallist_available_fields"; +import FollowUpAppointments_duallist_selected_fields from "@salesforce/label/c.FollowUpAppointments_duallist_selected_fields"; +import FollowUpAppointments_placeHolder_select_an_option from "@salesforce/label/c.FollowUpAppointments_placeHolder_select_an_option"; +import FollowUpAppointments_placeholder_search_fields from "@salesforce/label/c.FollowUpAppointments_placeholder_search_fields"; + +import FollowUpAppointments_MobileWorkFlow_Info_text from "@salesforce/label/c.FollowUpAppointments_MobileWorkFlow_Info_text"; +import FollowUpAppointments_MobileWorkFlow_info_help_url from "@salesforce/label/c.FollowUpAppointments_MobileWorkFlow_info_help_url"; + +import FollowUpAppointments_delete_step_heading from "@salesforce/label/c.FollowUpAppointments_delete_step_heading"; +import FollowUpAppointments_delete_step_body from "@salesforce/label/c.FollowUpAppointments_delete_step_body"; + +import FollowUpAppointments_delete_cancel_button from "@salesforce/label/c.FollowUpAppointments_delete_cancel_button"; +import FollowUpAppointments_delete_button_title from "@salesforce/label/c.FollowUpAppointments_delete_button_title"; + +import FollowUpAppointments_settings_duplicateScreenToastMessage from "@salesforce/label/c.FollowUpAppointments_settings_duplicateScreenToastMessage"; +import FollowUpAppointments_settings_deleteScreenToastMessage from "@salesforce/label/c.FollowUpAppointments_settings_deleteScreenToastMessage"; +import FollowUpAppointments_settings_createScreenToastMessage from "@salesforce/label/c.FollowUpAppointments_settings_createScreenToastMessage"; + +import FollowUpAppointments_settingPage_error_duplicate_screen from "@salesforce/label/c.FollowUpAppointments_settingPage_error_duplicate_screen"; +import FollowUpAppointments_settingPage_error_delete_screen from "@salesforce/label/c.FollowUpAppointments_settingPage_error_delete_screen"; +import FollowUpAppointments_workflow_addStepFailureMessage from "@salesforce/label/c.FollowUpAppointments_workflow_addStepFailureMessage"; +import FollowUpAppointments_settingPage_save_message from "@salesforce/label/c.FollowUpAppointments_settingPage_save_message"; +import FollowUpAppointments_settingPage_error_message from "@salesforce/label/c.FollowUpAppointments_settingPage_error_message"; + +const customLabels = { + FollowUpAppointments_add_step_button_label, + FollowUpAppointments_edit_step_text_label, + FollowUpAppointments_new_step_text_label, + FollowUpAppointments_step_name_text, + FollowUpAppointments_Object_text, + FollowUpAppointments_placeholder_step_name, + FollowUpAppointments_select_fields, + FollowUpAppointments_button_save, + FollowUpAppointments_button_cancel, + FollowUpAppointments_duallist_available_fields, + FollowUpAppointments_duallist_selected_fields, + FollowUpAppointments_placeHolder_select_an_option, + FollowUpAppointments_placeholder_search_fields, + FollowUpAppointments_MobileWorkFlow_Info_text, + FollowUpAppointments_MobileWorkFlow_info_help_url, + FollowUpAppointments_delete_step_heading, + FollowUpAppointments_delete_step_body, + FollowUpAppointments_delete_cancel_button, + FollowUpAppointments_delete_button_title, + FollowUpAppointments_settings_duplicateScreenToastMessage, + FollowUpAppointments_settings_deleteScreenToastMessage, + FollowUpAppointments_settingPage_error_duplicate_screen, + FollowUpAppointments_settingPage_error_delete_screen, + FollowUpAppointments_settings_createScreenToastMessage, + FollowUpAppointments_workflow_addStepFailureMessage, + FollowUpAppointments_settingPage_save_message, + FollowUpAppointments_settingPage_error_message +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css new file mode 100644 index 0000000..ac69717 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.css @@ -0,0 +1,117 @@ +.mainDiv { + height: 500px; + width: 300px; + margin-top: 50px; + margin-left: 30px; +} + +.layoutItem { + height: 500px; + width: 300px; + margin-top: 20px; + margin-left: 30px; +} + +.mainInfoText { + margin-left: 30px; + margin-top: 10px; +} + +.fieldText { + margin-top: 10px; +} + +.newAppointmentTitleLayout { +} + +.deleteIcon { + padding-top: 12px; + margin-left: 15px; + width: 10px; + height: 10px; +} + +.permissionText { + padding-top: 15px; + margin-left: 20px; + padding-bottom: 10px; +} + +.screenTitleLayout { + height: 54px; + background-color: #f3f3f3; +} + +.screenTitle1 { + padding-top: 5px; + margin-left: 15px; +} + +.screenTitle2 { + padding-top: 1px; + margin-left: 15px; +} + +.screenFooterDivElement { + margin-top: 340px; + height: 50px; +} + +.inputFieldTitle { + width: 100%; +} + +.layoutMainPage { + width: 100%; +} + +.layoutItem1 { + width: 45%; +} + +.editIcon { + margin-top: 15px; + margin-right: 20px; + background-color: #f3f3f3; + height: 30px; + padding-top: 4px; +} + +.editButton { + margin-top: 15px; + margin-right: 0px; +} + +.leftrightDivLayout { + margin-top: 15px; + margin-left: 20px; +} + +.footerLayout { + height: 48px; + padding-right: 60px; + margin-top: 50px; +} + +.addStepBtn { + margin-top: 15px; + margin-left: 30px; + margin-bottom: 10px; +} + +.saveButton { + margin-top: 10px; +} + +.comboBox { + margin-right: 15px; +} + +.fieldTitle { + margin-top: 15px; +} + +.searchInputField { + width: 42%; + margin-top: 5px; +} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.html similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.html rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.html diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js similarity index 75% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js index d043d09..550add1 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js @@ -2,16 +2,16 @@ /* eslint-disable guard-for-in */ /* eslint-disable @lwc/lwc/no-leading-uppercase-api-name */ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, track, api, wire } from 'lwc'; -import getObjectNames from '@salesforce/apex/FollowUpAppointmentController.getObjectNames'; -import getSavedScreenData from '@salesforce/apex/FollowUpAppointmentController.getSavedScreenData'; -import { getObjectInfo } from 'lightning/uiObjectInfoApi'; -import getFieldNames from '@salesforce/apex/FollowUpAppointmentController.getFieldNames'; -import saveFieldSettings from '@salesforce/apex/FollowUpAppointmentController.saveFieldSettings'; -import deleteScreen from '@salesforce/apex/FollowUpAppointmentController.deleteScreen'; -import duplicateScreenData from '@salesforce/apex/FollowUpAppointmentController.duplicateScreenData'; -import swapScreenLeftRight from '@salesforce/apex/FollowUpAppointmentController.swapScreenLeftRight'; -import customLabels from './labels'; +import { LightningElement, track, api, wire } from "lwc"; +import getObjectNames from "@salesforce/apex/FollowUpAppointmentController.getObjectNames"; +import getSavedScreenData from "@salesforce/apex/FollowUpAppointmentController.getSavedScreenData"; +import { getObjectInfo } from "lightning/uiObjectInfoApi"; +import getFieldNames from "@salesforce/apex/FollowUpAppointmentController.getFieldNames"; +import saveFieldSettings from "@salesforce/apex/FollowUpAppointmentController.saveFieldSettings"; +import deleteScreen from "@salesforce/apex/FollowUpAppointmentController.deleteScreen"; +import duplicateScreenData from "@salesforce/apex/FollowUpAppointmentController.duplicateScreenData"; +import swapScreenLeftRight from "@salesforce/apex/FollowUpAppointmentController.swapScreenLeftRight"; +import customLabels from "./labels"; export default class MobileWorkFlowPage extends LightningElement { @api showModal = false; @@ -23,7 +23,7 @@ export default class MobileWorkFlowPage extends LightningElement { fieldNameList = []; ObjectArray = []; ObjectTempNameArr = []; - @track selected = ''; + @track selected = ""; selectedFieldList1 = []; selectedFieldList2 = []; selectedFieldList3 = []; @@ -33,9 +33,9 @@ export default class MobileWorkFlowPage extends LightningElement { workOrderLineItemFields = new Map(); @api isParentcomponentChange = false; - @api selectedObject1 = ''; - @api selectedObject2 = ''; - @api selectedObject3 = ''; + @api selectedObject1 = ""; + @api selectedObject2 = ""; + @api selectedObject3 = ""; dataLoaded = true; @@ -48,10 +48,10 @@ export default class MobileWorkFlowPage extends LightningElement { @api screenTitle3; @api currentScreenTitle; - @api screenSubTitle1 = ''; - @api screenSubTitle2 = ''; - @api screenSubTitle3 = ''; - @api screenSubTitle4 = ''; + @api screenSubTitle1 = ""; + @api screenSubTitle2 = ""; + @api screenSubTitle3 = ""; + @api screenSubTitle4 = ""; @api currentSubTitle; @api showScreen1 = false; @@ -71,10 +71,10 @@ export default class MobileWorkFlowPage extends LightningElement { dialgBoxTitle = this.LABELS.FollowUpAppointments_edit_step_text_label; - @wire(getObjectInfo, { objectApiName: 'ServiceAppointment' }) + @wire(getObjectInfo, { objectApiName: "ServiceAppointment" }) serviceAppointmentInfo({ error, data }) { if (data) { - console.log('-- got serviceAppointmentInfo -> ', data.fields); + console.log("-- got serviceAppointmentInfo -> ", data.fields); this.error = undefined; for (const field in data.fields) { this.serviceAppointmentFields.set( @@ -83,31 +83,34 @@ export default class MobileWorkFlowPage extends LightningElement { ); } } else if (error) { - console.log('-- error serviceAppointmentInfo -> ', error); + console.log("-- error serviceAppointmentInfo -> ", error); this.error = error; this.objectInfo = undefined; } } - @wire(getObjectInfo, { objectApiName: 'WorkOrder' }) + @wire(getObjectInfo, { objectApiName: "WorkOrder" }) workOrderInfo({ error, data }) { if (data) { - console.log('-- got workOrderInfo -> ', data.fields); + console.log("-- got workOrderInfo -> ", data.fields); this.error = undefined; for (const field in data.fields) { - this.workOrderFields.set(`${data.fields[field].apiName}`, `${data.fields[field].dataType}`); + this.workOrderFields.set( + `${data.fields[field].apiName}`, + `${data.fields[field].dataType}` + ); } } else if (error) { - console.log('-- error workOrderInfo -> ', error); + console.log("-- error workOrderInfo -> ", error); this.error = error; this.objectInfo = undefined; } } - @wire(getObjectInfo, { objectApiName: 'WorkOrderLineItem' }) + @wire(getObjectInfo, { objectApiName: "WorkOrderLineItem" }) workOrderLineItemInfo({ error, data }) { if (data) { - console.log('-- got workOrderLineItemInfo -> ', data.fields); + console.log("-- got workOrderLineItemInfo -> ", data.fields); this.error = undefined; for (const field in data.fields) { this.workOrderLineItemFields.set( @@ -116,14 +119,14 @@ export default class MobileWorkFlowPage extends LightningElement { ); } } else if (error) { - console.log('-- error workOrderLineItemInfo -> ', error); + console.log("-- error workOrderLineItemInfo -> ", error); this.error = error; this.objectInfo = undefined; } } set isParentComponentChanged(value) { - console.log('Reload child component called : ' + value); + console.log("Reload child component called : " + value); this.callAPEX(); } @api get isParentComponentChanged() { @@ -131,12 +134,12 @@ export default class MobileWorkFlowPage extends LightningElement { } handleEditButtonEvent() { - console.log('Edit button pressed'); + console.log("Edit button pressed"); this.showModal = true; } @api closeModal() { - console.log('Modal Close event called'); + console.log("Modal Close event called"); this.callAPEX(); this.showModal = false; } @@ -168,63 +171,63 @@ export default class MobileWorkFlowPage extends LightningElement { let arr = []; this.dataLoaded = false; if (this.currentScreenDisplayed === 1) { - console.log('Save event called for screen1'); + console.log("Save event called for screen1"); this.screenTitle1 = this.currentScreenTitle; this.selectedFieldList1 = this.selected; - console.log('Selected fields are : ' + this.selectedFieldList1); + console.log("Selected fields are : " + this.selectedFieldList1); } if (this.currentScreenDisplayed === 2) { - console.log('Save event called for screen2'); + console.log("Save event called for screen2"); this.screenTitle2 = this.currentScreenTitle; this.selectedFieldList2 = this.selected; } if (this.currentScreenDisplayed === 3) { - console.log('Save event called for screen3'); + console.log("Save event called for screen3"); this.screenTitle3 = this.currentScreenTitle; this.selectedFieldList3 = this.selected; } arr.push(this.currentScreenDisplayed); // 0 arr.push(this.currentScreenTitle); // 1 - let strField = ''; + let strField = ""; for (let i = 0; i < this.selected.length; i++) { switch (this.selectedObject) { - case 'ServiceAppointment': + case "ServiceAppointment": strField = strField + this.selectedObject + - ',' + + "," + this.selected[i] + - ',' + + "," + this.serviceAppointmentFields.get(this.selected[i]) + - ';'; + ";"; break; - case 'WorkOrder': + case "WorkOrder": strField = strField + this.selectedObject + - ',' + + "," + this.selected[i] + - ',' + + "," + this.workOrderFields.get(this.selected[i]) + - ';'; + ";"; break; - case 'WorkOrderLineItem': + case "WorkOrderLineItem": strField = strField + this.selectedObject + - ',' + + "," + this.selected[i] + - ',' + + "," + this.workOrderLineItemFields.get(this.selected[i]) + - ';'; + ";"; break; default: break; } } - console.log('Selected field string is : ' + strField); + console.log("Selected field string is : " + strField); arr.push(strField); // 2 this.handleSaveFieldDataApexCall(arr); } @@ -233,36 +236,48 @@ export default class MobileWorkFlowPage extends LightningElement { saveFieldSettings({ inputArr: arr }) .then((data) => { if (data.error) { - console.error('Error while creating screen : ' + data); + console.error("Error while creating screen : " + data); this.dataLoaded = true; throw new Error(data.error); } else { - console.log('saved successfully'); + console.log("saved successfully"); this.dataLoaded = true; - if (this.dialgBoxTitle === this.LABELS.FollowUpAppointments_new_step_text_label) { + if ( + this.dialgBoxTitle === + this.LABELS.FollowUpAppointments_new_step_text_label + ) { this.showToastMessages( this.LABELS.FollowUpAppointments_settings_createScreenToastMessage.replace( - '{0}', + "{0}", arr[1] ), true ); } else { - this.showToastMessages(this.LABELS.FollowUpAppointments_settingPage_save_message, true); + this.showToastMessages( + this.LABELS.FollowUpAppointments_settingPage_save_message, + true + ); } this.callAPEX(); } }) .catch((error) => { - console.error('Error while creating the screen : ' + error.message); + console.error("Error while creating the screen : " + error.message); this.dataLoaded = true; - if (this.dialgBoxTitle === this.LABELS.FollowUpAppointments_new_step_text_label) { + if ( + this.dialgBoxTitle === + this.LABELS.FollowUpAppointments_new_step_text_label + ) { this.showToastMessages( this.LABELS.FollowUpAppointments_workflow_addStepFailureMessage, false ); } else { - this.showToastMessages(this.LABELS.FollowUpAppointments_settingPage_error_message, false); + this.showToastMessages( + this.LABELS.FollowUpAppointments_settingPage_error_message, + false + ); } }); } @@ -275,18 +290,20 @@ export default class MobileWorkFlowPage extends LightningElement { for (let j = 0; j < 1; j++) { let arr = []; - arr.value = 'value'; + arr.value = "value"; arr.key = j; this.fieldLayoutArray.push(arr); } this.filter(); - console.log('Value in fieldLayoutArray is : ' + this.fieldLayoutArray.length); + console.log( + "Value in fieldLayoutArray is : " + this.fieldLayoutArray.length + ); } maxPageNoTitle = 4; minPageNoTitle = 1; callAPEX() { - console.log('Apex method called '); + console.log("Apex method called "); /** * GET object list @@ -307,13 +324,16 @@ export default class MobileWorkFlowPage extends LightningElement { arr.fields = []; this.ObjectArray.push(arr); this.ObjectTempNameArr.push(data[i]); - this.objectNameList = [...this.objectNameList, { value: data[i], label: data[i] }]; + this.objectNameList = [ + ...this.objectNameList, + { value: data[i], label: data[i] } + ]; this.dataLoaded = true; } } }) .catch((error) => { - console.log('Error while getting object list : ' + error); + console.log("Error while getting object list : " + error); }); /** @@ -334,20 +354,20 @@ export default class MobileWorkFlowPage extends LightningElement { if ( data.Screen_Title_1__c && data.Screen_Title_1__c.length > 0 && - data.Screen_Title_1__c !== 'null' + data.Screen_Title_1__c !== "null" ) { this.screenTitle1 = data.Screen_Title_1__c; this.showScreen1 = true; let fieldList = data.Fields_To_Show_Page_1__c; this.currentScreenDisplayed = this.currentScreenDisplayed + 1; - console.log('Saved field values are : ' + fieldList); + console.log("Saved field values are : " + fieldList); this.selectedFieldList1 = []; if (fieldList && fieldList.length > 0) { - const myArray = fieldList.split(';'); // split the fields by ';' + const myArray = fieldList.split(";"); // split the fields by ';' if (myArray.length > 0) { for (let i = 0; i < myArray.length; i++) { let objfield = myArray[i]; - const fieldArray = objfield.split(','); + const fieldArray = objfield.split(","); if (fieldArray.length > 0) { if (fieldArray[1] && fieldArray[1].length > 0) { this.selectedObject1 = fieldArray[0]; @@ -358,7 +378,10 @@ export default class MobileWorkFlowPage extends LightningElement { } } this.minPageNoTitle = this.minPageNoTitle + 1; - this.screenSubTitle1 = this.createStepTitle(this.minPageNoTitle, this.maxPageNoTitle); + this.screenSubTitle1 = this.createStepTitle( + this.minPageNoTitle, + this.maxPageNoTitle + ); } else { this.showScreen1 = false; } @@ -366,7 +389,7 @@ export default class MobileWorkFlowPage extends LightningElement { if ( data.Screen_Title_2__c && data.Screen_Title_2__c.length > 0 && - data.Screen_Title_2__c !== 'null' + data.Screen_Title_2__c !== "null" ) { this.screenTitle2 = data.Screen_Title_2__c; this.showScreen2 = true; @@ -374,11 +397,11 @@ export default class MobileWorkFlowPage extends LightningElement { let fieldList2 = data.Fields_To_Show_Page_2__c; this.selectedFieldList2 = []; if (fieldList2 && fieldList2.length > 0) { - const myArray = fieldList2.split(';'); // split the fields by ',' + const myArray = fieldList2.split(";"); // split the fields by ',' if (myArray.length > 0) { for (let i = 0; i < myArray.length; i++) { let objfield = myArray[i]; - const fieldArray = objfield.split(','); + const fieldArray = objfield.split(","); if (fieldArray.length > 0) { if (fieldArray[1] && fieldArray[1].length > 0) { this.selectedObject2 = fieldArray[0]; @@ -389,7 +412,10 @@ export default class MobileWorkFlowPage extends LightningElement { } } this.minPageNoTitle = this.minPageNoTitle + 1; - this.screenSubTitle2 = this.createStepTitle(this.minPageNoTitle, this.maxPageNoTitle); + this.screenSubTitle2 = this.createStepTitle( + this.minPageNoTitle, + this.maxPageNoTitle + ); } else { this.showScreen2 = false; } @@ -397,7 +423,7 @@ export default class MobileWorkFlowPage extends LightningElement { if ( data.Screen_Title_3__c && data.Screen_Title_3__c.length > 0 && - data.Screen_Title_3__c !== 'null' + data.Screen_Title_3__c !== "null" ) { this.screenTitle3 = data.Screen_Title_3__c; let fieldList3 = data.Fields_To_Show_Page_3__c; @@ -405,11 +431,11 @@ export default class MobileWorkFlowPage extends LightningElement { this.currentScreenDisplayed = this.currentScreenDisplayed + 1; this.selectedFieldList3 = []; if (fieldList3 && fieldList3.length > 0) { - const myArray = fieldList3.split(';'); // split the fields by ',' + const myArray = fieldList3.split(";"); // split the fields by ',' if (myArray.length > 0) { for (let i = 0; i < myArray.length; i++) { let objfield = myArray[i]; - const fieldArray = objfield.split(','); + const fieldArray = objfield.split(","); if (fieldArray.length > 0) { if (fieldArray[1] && fieldArray[1].length > 0) { this.selectedObject3 = fieldArray[0]; @@ -420,12 +446,18 @@ export default class MobileWorkFlowPage extends LightningElement { } } this.minPageNoTitle = this.minPageNoTitle + 1; - this.screenSubTitle3 = this.createStepTitle(this.minPageNoTitle, this.maxPageNoTitle); + this.screenSubTitle3 = this.createStepTitle( + this.minPageNoTitle, + this.maxPageNoTitle + ); } else { this.showScreen3 = false; } this.minPageNoTitle = this.minPageNoTitle + 1; - this.screenSubTitle4 = this.createStepTitle(this.minPageNoTitle, this.maxPageNoTitle); + this.screenSubTitle4 = this.createStepTitle( + this.minPageNoTitle, + this.maxPageNoTitle + ); this.disableAddStepBtn = false; if (this.currentScreenDisplayed === this.screenMaxLimitConst) { this.disableAddStepBtn = true; @@ -434,7 +466,7 @@ export default class MobileWorkFlowPage extends LightningElement { } }) .catch((error) => { - console.log('Error while getting object list : ' + error); + console.log("Error while getting object list : " + error); }); } @@ -447,7 +479,7 @@ export default class MobileWorkFlowPage extends LightningElement { this.isRightButtonDisabled2 = false; this.isRightButtonDisabled3 = false; - console.log('Page no displayed are : ' + this.minPageNoTitle); + console.log("Page no displayed are : " + this.minPageNoTitle); switch (this.minPageNoTitle) { case 2: { if (this.showScreen1) { @@ -489,26 +521,29 @@ export default class MobileWorkFlowPage extends LightningElement { } } - selectedObject = ''; + selectedObject = ""; handleObjectNameSelected(event) { - console.log('On object selected called : ' + event.detail.value); + console.log("On object selected called : " + event.detail.value); this.selectedObject = event.detail.value; //this.selectedFields =[{label:'', value:''}]; /** * GET field list */ this.selectedFields = []; - this.selected = ''; + this.selected = ""; this.dataLoaded = false; getFieldNames({ objectName: this.selectedObject }) .then((data) => { if (data.error) { throw new Error(data.error); } else { - console.log('Got the field names successfully ' + data); + console.log("Got the field names successfully " + data); this.fieldNameList = []; for (let i = 0; i < data.length; i++) { - this.fieldNameList = [...this.fieldNameList, { value: data[i], label: data[i] }]; + this.fieldNameList = [ + ...this.fieldNameList, + { value: data[i], label: data[i] } + ]; } this.filteredFieldNames = this.fieldNameList; this.dataLoaded = true; @@ -516,7 +551,7 @@ export default class MobileWorkFlowPage extends LightningElement { }) .catch((error) => { this.dataLoaded = true; - console.log('Error while getting object list : ' + error); + console.log("Error while getting object list : " + error); }); } @@ -525,25 +560,30 @@ export default class MobileWorkFlowPage extends LightningElement { this.fieldLayoutArray = []; for (let j = 0; j < this.noOfField; j++) { let arr = []; - arr.value = 'value'; + arr.value = "value"; arr.key = j; this.fieldLayoutArray.push(arr); } - console.log('Value in fieldLayoutArray is : ' + this.fieldLayoutArray.length); + console.log( + "Value in fieldLayoutArray is : " + this.fieldLayoutArray.length + ); } filteredFieldNames = []; - searchString = ''; + searchString = ""; filter(event) { let filter = event - ? new RegExp(this.template.querySelector("[data-name='searchfield']").value, 'ig') + ? new RegExp( + this.template.querySelector("[data-name='searchfield']").value, + "ig" + ) : { test: function () { return true; - }, + } }; - console.log('filter event called'); + console.log("filter event called"); const selected = new Set(this.selected); this.filteredFieldNames = this.fieldNameList.filter( (option) => filter.test(option.value) || selected.has(option.value) @@ -559,7 +599,7 @@ export default class MobileWorkFlowPage extends LightningElement { } @api handleAddScreenEvent() { - console.log('Add screen event called '); + console.log("Add screen event called "); this.dialgBoxTitle = this.LABELS.FollowUpAppointments_new_step_text_label; this.disableAddStepBtn = false; if (this.currentScreenDisplayed < 3) { @@ -601,8 +641,8 @@ export default class MobileWorkFlowPage extends LightningElement { // Open the dialog box directly when add step is called this.selectedObject = null; - this.currentScreenTitle = ''; - this.selected = ''; + this.currentScreenTitle = ""; + this.selected = ""; this.filteredFieldNames = []; this.selectedFields = []; this.isSaveButtonDisabled = true; @@ -612,13 +652,13 @@ export default class MobileWorkFlowPage extends LightningElement { selectedFields = []; editButtonEventCalledFromChild(event) { this.dialgBoxTitle = this.LABELS.FollowUpAppointments_edit_step_text_label; - console.log('Selected Page is : ' + event.detail); + console.log("Selected Page is : " + event.detail); this.currentScreenDisplayed = event.detail; this.showModal = true; this.selectedObject = null; - this.currentScreenTitle = ''; - this.selected = ''; + this.currentScreenTitle = ""; + this.selected = ""; this.isSaveButtonDisabled = true; switch (this.currentScreenDisplayed) { case 1: { @@ -685,10 +725,13 @@ export default class MobileWorkFlowPage extends LightningElement { if (data.error) { throw new Error(data.error); } else { - console.log('Got the field names successfully'); + console.log("Got the field names successfully"); this.fieldNameList = []; for (let i = 0; i < data.length; i++) { - this.fieldNameList = [...this.fieldNameList, { value: data[i], label: data[i] }]; + this.fieldNameList = [ + ...this.fieldNameList, + { value: data[i], label: data[i] } + ]; } this.filteredFieldNames = this.fieldNameList; this.dataLoaded = true; @@ -696,17 +739,17 @@ export default class MobileWorkFlowPage extends LightningElement { }) .catch((error) => { this.dataLoaded = true; - console.log('Error while getting object list : ' + error); + console.log("Error while getting object list : " + error); }); } else { this.dataLoaded = true; - console.log('No object selected'); + console.log("No object selected"); } } deletePageNoCalled = -1; deleteScreenEventCalledFromChild(event) { - console.log('Selected Page is : ' + event.detail); + console.log("Selected Page is : " + event.detail); this.deletePageNoCalled = event.detail; this.showDeleteDialogBox = true; } @@ -718,7 +761,7 @@ export default class MobileWorkFlowPage extends LightningElement { if (this.currentScreenDisplayed > 0) { this.dataLoaded = false; this.showDeleteDialogBox = false; - let screenTitleTemp = ''; + let screenTitleTemp = ""; switch (this.deletePageNoCalled) { case 1: { screenTitleTemp = this.screenTitle1; @@ -739,14 +782,14 @@ export default class MobileWorkFlowPage extends LightningElement { deleteScreen({ screenNo: this.deletePageNoCalled }) .then((data) => { if (data.error) { - console.error('Got error while deleting the data : ' + data.error); + console.error("Got error while deleting the data : " + data.error); this.dataLoaded = true; throw new Error(data.error); } else { - console.log('screen deleted successfully'); + console.log("screen deleted successfully"); this.showToastMessages( this.LABELS.FollowUpAppointments_settings_deleteScreenToastMessage.replace( - '{0}', + "{0}", screenTitleTemp ), true @@ -759,26 +802,26 @@ export default class MobileWorkFlowPage extends LightningElement { switch (this.deletePageNoCalled) { case 1: { - this.screenTitle1 = ''; - this.currentScreenTitle = ''; - this.selected = ''; + this.screenTitle1 = ""; + this.currentScreenTitle = ""; + this.selected = ""; this.selectedFieldList1 = []; this.showScreen2 = false; break; } case 2: { - this.screenTitle2 = ''; - this.currentScreenTitle = ''; - this.selected = ''; + this.screenTitle2 = ""; + this.currentScreenTitle = ""; + this.selected = ""; this.selectedFieldList2 = []; this.showScreen2 = false; break; } case 3: { - this.screenTitle3 = ''; - this.currentScreenTitle = ''; - this.selected = ''; + this.screenTitle3 = ""; + this.currentScreenTitle = ""; + this.selected = ""; this.selectedFieldList3 = []; this.showScreen3 = false; break; @@ -801,7 +844,7 @@ export default class MobileWorkFlowPage extends LightningElement { } }) .catch((error) => { - console.log('Error while deleting the screen : ' + error); + console.log("Error while deleting the screen : " + error); this.dataLoaded = true; this.showToastMessages( this.LABELS.FollowUpAppointments_settingPage_error_delete_screen, @@ -814,9 +857,9 @@ export default class MobileWorkFlowPage extends LightningElement { } duplicateEventCalledFromChild(event) { - console.log('Duplicate event called for page : ' + event.detail); + console.log("Duplicate event called for page : " + event.detail); let pageNo = event.detail; - let screenTitleTemp = ''; + let screenTitleTemp = ""; let fieldSelected = []; let toScreenNo; @@ -877,21 +920,21 @@ export default class MobileWorkFlowPage extends LightningElement { break; } } - console.log('selected screen title : ' + screenTitleTemp); - console.log('selected fields : ' + fieldSelected); + console.log("selected screen title : " + screenTitleTemp); + console.log("selected fields : " + fieldSelected); if (toScreenNo) { duplicateScreenData({ fromScreenNo: pageNo, toScreenNo: toScreenNo }) .then((data) => { if (data.error) { - console.error('Got error while saving the data : ' + data); + console.error("Got error while saving the data : " + data); this.dataLoaded = true; throw new Error(data.error); } else { this.callAPEX(); this.showToastMessages( this.LABELS.FollowUpAppointments_settings_duplicateScreenToastMessage.replace( - '{0}', + "{0}", screenTitleTemp ), true @@ -899,10 +942,13 @@ export default class MobileWorkFlowPage extends LightningElement { } }) .catch((error) => { - console.log('Error while duplicating the screen : ' + error.message); + console.log( + "Error while duplicating the screen : " + error.message + ); this.dataLoaded = true; this.showToastMessages( - this.LABELS.FollowUpAppointments_settingPage_error_duplicate_screen, + this.LABELS + .FollowUpAppointments_settingPage_error_duplicate_screen, false ); }); @@ -913,20 +959,20 @@ export default class MobileWorkFlowPage extends LightningElement { /** * FUNCTIONS TO CALL DIALOG BOX */ - dialogTitle = ''; - dialogMessage = ''; + dialogTitle = ""; + dialogMessage = ""; showToastMessages(message, isSuccessMessage) { - var variant = 'success'; - if (isSuccessMessage) variant = 'success'; - else variant = 'error'; + var variant = "success"; + if (isSuccessMessage) variant = "success"; + else variant = "error"; this.template - .querySelector('c-follow-up-appointment-custom-toast-notifications') + .querySelector("c-follow-up-appointment-custom-toast-notifications") .showToast(variant, message); } createStepTitle(minPage, maxPage) { - return 'Step ' + minPage + ' of ' + maxPage; + return "Step " + minPage + " of " + maxPage; } /** @@ -975,7 +1021,7 @@ export default class MobileWorkFlowPage extends LightningElement { swapScreenLeftRight({ fromScreenNo: fromScreen, toScreenNo: toScreen }) .then((data) => { if (data.error) { - console.error('Got error while saving the data : ' + data); + console.error("Got error while saving the data : " + data); this.dataLoaded = true; throw new Error(data.error); } else { @@ -983,9 +1029,12 @@ export default class MobileWorkFlowPage extends LightningElement { } }) .catch((error) => { - console.log('Error while shifting the screen : ' + error); + console.log("Error while shifting the screen : " + error); this.dataLoaded = true; - this.showToastMessages('Error while shifting the screen : ' + error.message, false); + this.showToastMessages( + "Error while shifting the screen : " + error.message, + false + ); }); } } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPage/mobileWorkFlowPage.js-meta.xml diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js new file mode 100644 index 0000000..034b21f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/__tests__/mobileWorkFlowPreviewScreen.test.js @@ -0,0 +1,36 @@ +import { createElement } from "lwc"; +import MobileWorkFlowPreviewScreen from "c/mobileWorkFlowPreviewScreen"; + +let element; +describe("c-mobile-work-flow-preview-screen", () => { + afterEach(() => { + // The jsdom instance is shared across test cases in a single file so reset the DOM + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + beforeEach(() => { + element = createElement("c-mobile-work-flow-preview-screen", { + is: MobileWorkFlowPreviewScreen + }); + + element.screenTitle = "title1"; + element.screenSubTitle = "title2"; + element.appointmentDetailTitle = "appointmentTitle"; + element.currentScreen = 2; + element.screenno = jest.fn(); + document.body.appendChild(element); + }); + it("should have the correct title", () => { + const title = element.shadowRoot.querySelector(".screenTitle1"); + expect(title.textContent).toBe("title1"); + + const screenTitle2 = element.shadowRoot.querySelector(".screenTitle2"); + expect(screenTitle2.textContent).toBe("title2"); + + const appointmentTitle = + element.shadowRoot.querySelector(".appointmentTitle"); + expect(appointmentTitle.textContent).toBe("appointmentTitle"); + }); +}); diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js new file mode 100644 index 0000000..3ca6fa7 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/labels.js @@ -0,0 +1,17 @@ +import FollowUpAppointments_preview_appointmentDateTime_title from "@salesforce/label/c.FollowUpAppointments_preview_appointmentDateTime_title"; +import FollowUpAppointments_preview_appointmentDetails_title from "@salesforce/label/c.FollowUpAppointments_preview_appointmentDetails_title"; +import FollowUpAppointments_preview_mobileWorker_title from "@salesforce/label/c.FollowUpAppointments_preview_mobileWorker_title"; +import FollowUpAppointments_preview_step_not_editable from "@salesforce/label/c.FollowUpAppointments_preview_step_not_editable"; +import FollowUpAppointments_preview_text from "@salesforce/label/c.FollowUpAppointments_preview_text"; +import FollowUpAppointments_preview_step_help_text from "@salesforce/label/c.FollowUpAppointments_preview_step_help_text"; + +const customLabels = { + FollowUpAppointments_preview_appointmentDateTime_title, + FollowUpAppointments_preview_appointmentDetails_title, + FollowUpAppointments_preview_mobileWorker_title, + FollowUpAppointments_preview_step_not_editable, + FollowUpAppointments_preview_text, + FollowUpAppointments_preview_step_help_text +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css new file mode 100644 index 0000000..72f1831 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.css @@ -0,0 +1,212 @@ +.mainDiv { + height: 500px; + width: 300px; + /* margin-top: 50px; */ + /* margin-left: 30px; */ + position: relative; + border-radius: 2%; +} + +.newAppointmentTitleLayout { + background-color: #f3f3f3; +} + +.deleteIcon { + padding-top: 12px; + margin-left: 15px; + width: 10px; + height: 10px; +} + +.previewText { + padding-top: 5px; + /* margin-left: 20px; */ + padding-bottom: 5px; + background-color: #f3f3f3; +} + +.screenTitleLayout { + margin-top: 15px; + height: 54px; +} + +.screenTitle1 { + padding-top: 5px; + margin-left: 15px; + color: black; +} + +.screenTitle2 { + padding-top: 6px; + margin-left: 15px; + color: black; +} + +.appointmentTitle { + padding-top: 10px; + margin-left: 15px; + color: black; +} + +.smallDividerLayout { + width: 100%; + height: 1px; + background-color: #f3f3f3; + margin-top: 6px; +} + +.smallDividerLayout2 { + width: 100%; + height: 1px; + background-color: #f3f3f3; + margin-top: 6px; +} + +.previewFieldLayout { + margin-left: 10px; + overflow-x: hidden; + overflow-y: auto; +} + +.loadingBar1 { + width: 200px; + height: 6px; + background-color: #e5e5e5; + margin-left: 15px; + margin-top: 8px; + border-radius: 10px; +} + +.loadingBar2 { + width: 169px; + height: 6px; + background-color: #e5e5e5; + margin-left: 15px; + margin-top: 8px; + border-radius: 10px; +} + +.loadingBar3 { + width: 220px; + height: 6px; + background-color: #e5e5e5; + margin-left: 15px; + margin-top: 8px; + border-radius: 10px; +} + +.loadingBar4 { + width: 100px; + height: 6px; + background-color: #0176d3; + margin-top: 8px; + border-radius: 10px; +} + +.calenderTitle { + margin-top: 6px; + height: 27px; +} + +.blueIconDown { + margin-left: 5px; + --sds-c-icon-color-foreground-default: #0176d3; + margin-top: 2px; +} + +.lgc-bg { + margin-top: 5px; + margin-left: 7px; + margin-right: 10px; +} + +.previewFieldOuterLayout { + overflow-x: hidden; + overflow-y: auto; + height: 350px; +} + +.inputFieldPreview { + width: 200px; +} + +.dividerLayout { + width: 100%; + height: 16px; + background-color: #f3f3f3; + margin-top: 10px; +} + +.screenFooterDivElement { + height: 50px; + position: absolute; + bottom: 0; + width: 100%; + background-color: #f3f3f3; +} + +.editIcon { + margin-top: 10px; + margin-right: 20px; + margin-bottom: 5px; + border-radius: 2%; + background-color: #f3f3f3; + /* padding-top: 4px; */ +} + +.lgc-bg { + background-color: white; +} + +.editButton { + /* margin-top: 15px; */ + margin-right: 0px; +} + +.leftrightDivLayout { + margin-top: 10px; + margin-left: 20px; + width: 100%; +} + +.footerLayout { + height: 48px; + background-color: #f3f3f3; + padding-right: 60px; + margin-top: 50px; +} + +.addStepBtn { + margin-top: 15px; + margin-left: 30px; + margin-bottom: 10px; +} + +.saveButton { + margin-top: 10px; +} + +.comboBox { + margin-right: 15px; +} + +.fieldTitle { + margin-top: 15px; +} + +.searchInputField { + width: 150px; +} + +.loadingBarCalender { + width: 26px; + height: 5px; + background-color: #e5e5e5; + border-radius: 10px; +} + +.c-container { + margin-top: 9px; + padding-left: 15px; + padding-right: 15px; +} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.html similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.html rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.html diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js similarity index 51% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js index 309ae1c..304d931 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js @@ -1,31 +1,34 @@ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class MobileWorkFlowPreviewScreen extends LightningElement { @api currentScreen; LABELS = customLabels; @api handleEditButtonClickEvent; - @api screenTitle = this.LABELS.FollowUpAppointments_preview_appointmentDateTime_title; - @api screenSubTitle = 'Step 1 of 4'; + @api screenTitle = + this.LABELS.FollowUpAppointments_preview_appointmentDateTime_title; + @api screenSubTitle = "Step 1 of 4"; fieldListArray = []; @api footerTitle = this.LABELS.FollowUpAppointments_preview_step_not_editable; - @api appointmentDetailTitle = this.LABELS.FollowUpAppointments_preview_appointmentDetails_title; - @api mobileWorkerText = this.LABELS.FollowUpAppointments_preview_mobileWorker_title; + @api appointmentDetailTitle = + this.LABELS.FollowUpAppointments_preview_appointmentDetails_title; + @api mobileWorkerText = + this.LABELS.FollowUpAppointments_preview_mobileWorker_title; - SUN = 'SUN'; - MON = 'MON'; - TUE = 'TUE'; - WED = 'WED'; - THU = 'THU'; - FRI = 'FRI'; - SAT = 'SAT'; + SUN = "SUN"; + MON = "MON"; + TUE = "TUE"; + WED = "WED"; + THU = "THU"; + FRI = "FRI"; + SAT = "SAT"; @api get screenno() { return this.currentScreen; } set screenno(value) { - console.log('screen no value is : ' + value); + console.log("screen no value is : " + value); if (value) { this.currentScreen = value; } diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowPreviewScreen/mobileWorkFlowPreviewScreen.js-meta.xml diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js new file mode 100644 index 0000000..490b652 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/__tests__/mobileWorkFlowScreenLayout.test.js @@ -0,0 +1,147 @@ +import { createElement } from "lwc"; +import MobileWorkFlowLayout from "c/mobileWorkFlowScreenLayout"; + +jest.mock( + "./labels", + () => { + return { + MobileWorkFlowLayoutLabels: "test" + }; + }, + { virtual: true } +); + +let element; +describe("c-mobile-work-flow-screen-layout", () => { + afterEach(() => { + // The jsdom instance is shared across test cases in a single file so reset the DOM + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + beforeEach(() => { + element = createElement("c-mobile-work-flow-screen-layout", { + is: MobileWorkFlowLayout + }); + + element.screenTitle = "title1"; + element.screenSubTitle = "title2"; + element.inputFieldPreview = "previewText"; + element.currentScreen = 2; + element.handleLeftButtonEventClick = jest.fn(); + element.handleDropDownActionSelected = jest.fn(); + element.handleClildEditButtonEvent = jest.fn(); + + element.fieldListArray = []; + element.const_duplicate = "duplicate"; + element.const_delete = "delete"; + element.isDuplicateButtonDisabled = false; + document.body.appendChild(element); + }); + + it("should show correct info", () => { + const title1 = element.shadowRoot.querySelector(".slds-truncate"); + const title2 = element.shadowRoot.querySelector(".screenTitle2"); + const editButton = element.shadowRoot.querySelector(".editButton"); + editButton.label = "edit"; + expect(title1.textContent).toBe("title1"); + expect(title2.textContent).toBe("title2"); + expect(editButton.label).toBe("edit"); + }); + + test("element does not have slds-icon class when bare", () => { + // Use a promise to wait for asynchronous changes to the DOM + return Promise.resolve().then(() => { + expect(element.classList).not.toContain("slds-icon"); + }); + }); + + it("should call left button when left arrow clicked", async () => { + const action = element.shadowRoot.querySelector(".leftarrowbutton"); + console.log(action); + action.click(); + return Promise.resolve().then(() => { + expect(element.handleLeftButtonEventClick).toHaveBeenCalledTimes(0); + }); + }); + + it("should call right button when right arrow clicked", async () => { + const action = element.shadowRoot.querySelector(".rightarrowbutton"); + console.log(action); + const spy = jest.spyOn(element, "handleRightButtonEventClick"); + action.dispatchEvent(new CustomEvent("click")); + return Promise.resolve().then(() => { + //expect(element.handleRightButtonEventClick).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(0); + }); + }); + + it("should call drop down arrow button", async () => { + const action = element.shadowRoot.querySelector(".dropdownbtn"); + console.log(action); + const spy = jest.spyOn(element, "handleDropDownActionSelected"); + action.dispatchEvent(new CustomEvent("click")); + return Promise.resolve().then(() => { + //expect(element.handleRightButtonEventClick).toHaveBeenCalledTimes(1); + expect(spy).toHaveBeenCalledTimes(0); + }); + }); + + it("should call edit button", async () => { + const action = element.shadowRoot.querySelector(".editButton"); + console.log(action); + action.click(); + return Promise.resolve().then(() => { + expect(element.handleClildEditButtonEvent).toHaveBeenCalledTimes(0); + }); + }); + + it("Getter and setter disableleftbutton", () => { + const spy = jest.spyOn(element, "disableleftbutton", "set"); + element.disableleftbutton = false; + expect(spy).toHaveBeenCalled(); + expect(element.disableleftbutton).toBe(false); + }); + + it("Getter and setter disablerightbutton", () => { + const spy = jest.spyOn(element, "disablerightbutton", "set"); + element.disablerightbutton = false; + expect(spy).toHaveBeenCalled(); + expect(element.disablerightbutton).toBe(false); + }); + + it("Getter and setter for screenno", () => { + const spy = jest.spyOn(element, "screenno", "set"); + element.screenno = 1; + expect(element.screenno).toBe(1); + expect(spy).toHaveBeenCalled(); + }); + + it("Getter and setter for screentitle", () => { + const spy = jest.spyOn(element, "screentitle", "set"); + element.screentitle = "titletest"; + expect(element.screentitle).toBe("titletest"); + expect(spy).toHaveBeenCalled(); + }); + + it("Getter and setter for screensubtitle", () => { + const spy = jest.spyOn(element, "screensubtitle", "set"); + element.screensubtitle = "title1"; + expect(element.screensubtitle).toBe("title1"); + expect(spy).toHaveBeenCalled(); + }); + + it("Getter and setter for selectedfieldlist", () => { + const spy = jest.spyOn(element, "selectedfieldlist", "set"); + element.selectedfieldlist = ["title2"]; + expect(element.selectedfieldlist).toStrictEqual(["title2"]); + expect(spy).toHaveBeenCalled(); + }); + + it("Getter and setter for disableduplicatebutton", () => { + const spy = jest.spyOn(element, "disableduplicatebutton", "set"); + element.disableduplicatebutton = false; + expect(element.disableduplicatebutton).toBe(false); + expect(spy).toHaveBeenCalled(); + }); +}); diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js new file mode 100644 index 0000000..defd33a --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/labels.js @@ -0,0 +1,13 @@ +import FollowUpAppointments_duplicate_title from "@salesforce/label/c.FollowUpAppointments_duplicate_title"; +import FollowUpAppointments_delete_title from "@salesforce/label/c.FollowUpAppointments_delete_title"; +import FollowUpAppointments_preview_text from "@salesforce/label/c.FollowUpAppointments_preview_text"; +import FollowUpAppointments_edit_button_label from "@salesforce/label/c.FollowUpAppointments_edit_button_label"; + +const customLabels = { + FollowUpAppointments_duplicate_title, + FollowUpAppointments_delete_title, + FollowUpAppointments_preview_text, + FollowUpAppointments_edit_button_label +}; + +export default customLabels; diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css new file mode 100644 index 0000000..e6c2b2f --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.css @@ -0,0 +1,121 @@ +.mainDiv { + height: 500px; + width: 300px; + /* margin-top: 50px; */ + /* margin-left: 30px; */ + position: relative; + border-radius: 2%; +} + +.newAppointmentTitleLayout { + background-color: #f3f3f3; +} + +.deleteIcon { + padding-top: 12px; + margin-left: 15px; + width: 10px; + height: 10px; +} + +.previewText { + padding-top: 5px; + /* margin-left: 20px; */ + padding-bottom: 5px; + background-color: #f3f3f3; +} + +.screenTitleLayout { + margin-top: 15px; + height: 54px; +} + +.screenTitle1 { + padding-top: 5px; + margin-left: 15px; + color: black; +} + +.screenTitle2 { + padding-top: 1px; + margin-left: 15px; + color: black; +} + +.previewFieldLayout { + margin-left: 10px; + overflow-x: hidden; + overflow-y: auto; +} + +.previewFieldOuterLayout { + overflow-x: hidden; + overflow-y: auto; + height: 350px; +} + +.inputFieldPreview { + width: 200px; +} + +.screenFooterDivElement { + height: 50px; + position: absolute; + bottom: 0; + width: 100%; +} + +.editIcon { + margin-top: 8px; + margin-right: 20px; + margin-bottom: 5px; + border-radius: 2%; + /* padding-top: 4px; */ +} + +.lgc-bg { + background-color: white; +} + +.editButton { + /* margin-top: 15px; */ + margin-right: 0px; +} + +.leftrightDivLayout { + margin-top: 8px; + margin-left: 20px; +} + +.rightShiftButton { + margin-left: 5px; +} + +.footerLayout { + height: 48px; + background-color: #f3f3f3; + padding-right: 60px; + margin-top: 50px; +} + +.addStepBtn { + margin-top: 15px; + margin-left: 30px; + margin-bottom: 10px; +} + +.saveButton { + margin-top: 10px; +} + +.comboBox { + margin-right: 15px; +} + +.fieldTitle { + margin-top: 15px; +} + +.searchInputField { + width: 150px; +} diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.html b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.html similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.html rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.html diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js similarity index 73% rename from FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js index 59cd382..b33f65c 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js @@ -1,6 +1,6 @@ /* eslint-disable @lwc/lwc/no-api-reassignments */ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class MobileWorkFlowScreenLayout extends LightningElement { @api currentScreen; @@ -20,7 +20,7 @@ export default class MobileWorkFlowScreenLayout extends LightningElement { return this.currentScreen; } set screenno(value) { - console.log('screen no value is : ' + value); + console.log("screen no value is : " + value); if (value) { this.currentScreen = value; } @@ -73,41 +73,41 @@ export default class MobileWorkFlowScreenLayout extends LightningElement { // send the event to parent class for edit button @api handleClildEditButtonEvent() { - let ev = new CustomEvent('editevent', { detail: this.currentScreen }); + let ev = new CustomEvent("editevent", { detail: this.currentScreen }); this.dispatchEvent(ev); } @api handleDropDownActionSelected(event) { - console.log('Drop down list selected : ' + event.detail.value); + console.log("Drop down list selected : " + event.detail.value); let selectedValue = event.detail.value; if (selectedValue === this.const_duplicate) { // handle duplication of screen - console.log('Duplicate screen called : ' + this.currentScreen); - let ev = new CustomEvent('duplicateevent', { - detail: this.currentScreen, + console.log("Duplicate screen called : " + this.currentScreen); + let ev = new CustomEvent("duplicateevent", { + detail: this.currentScreen }); this.dispatchEvent(ev); } else { // Handle delete of screen - console.log('Delete screen called : ' + this.currentScreen); - let ev = new CustomEvent('deleteevent', { detail: this.currentScreen }); + console.log("Delete screen called : " + this.currentScreen); + let ev = new CustomEvent("deleteevent", { detail: this.currentScreen }); this.dispatchEvent(ev); } } @api handleLeftButtonEventClick() { - console.log('Left button clicked for screen : ' + this.currentScreen); - let ev = new CustomEvent('leftbuttoneevent', { - detail: this.currentScreen, + console.log("Left button clicked for screen : " + this.currentScreen); + let ev = new CustomEvent("leftbuttoneevent", { + detail: this.currentScreen }); this.dispatchEvent(ev); } @api handleRightButtonEventClick() { - console.log('Right button clicked for screen : ' + this.currentScreen); - let ev = new CustomEvent('rightbuttoneevent', { - detail: this.currentScreen, + console.log("Right button clicked for screen : " + this.currentScreen); + let ev = new CustomEvent("rightbuttoneevent", { + detail: this.currentScreen }); this.dispatchEvent(ev); } diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml index f8c5cb4..9b08a91 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/mobileWorkFlowScreenLayout/mobileWorkFlowScreenLayout.js-meta.xml @@ -1,5 +1,5 @@ - + 56.0 false - \ No newline at end of file + diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css new file mode 100644 index 0000000..05d1ef0 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.css @@ -0,0 +1,22 @@ +.modal-background { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: rgba(43, 40, 38, 0.6); + display: flex; +} +.modal-container { + background-color: white; + position: fixed; + bottom: 0; + left: 0; + width: 100%; +} + +.modal-header { + display: flex; + align-items: center; + justify-content: space-between; +} diff --git a/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html new file mode 100644 index 0000000..67022b9 --- /dev/null +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.html @@ -0,0 +1,22 @@ + diff --git a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js similarity index 60% rename from FollowUpAppointment/force-app/main/default/lwc/modal/modal.js rename to projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js index 33f513c..02910ca 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class Modal extends LightningElement { @api showModal; @@ -10,11 +10,11 @@ export default class Modal extends LightningElement { closeModal(event) { event.preventDefault(); - console.log('dispatching close modal::: ' + this.showModal); + console.log("dispatching close modal::: " + this.showModal); this.dispatchEvent( - new CustomEvent('closemodal', { + new CustomEvent("closemodal", { composed: true, - bubbles: true, + bubbles: true }) ); } diff --git a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml index eac275d..e013881 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/lwc/modal/modal.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c.object-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c.object-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c.object-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c.object-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_1__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_1__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_1__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_1__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_2__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_2__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_2__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_2__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_3__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_3__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_3__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Fields_To_Show_Page_3__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Operating_Hours__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Operating_Hours__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Operating_Hours__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Operating_Hours__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Record_To_Create__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Record_To_Create__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Record_To_Create__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Record_To_Create__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Horizon_Value__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Horizon_Value__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Horizon_Value__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Horizon_Value__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Policy__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Policy__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Policy__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Scheduling_Policy__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_1__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_1__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_1__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_1__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_2__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_2__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_2__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_2__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_3__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_3__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_3__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Screen_Title_3__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/ShowExactArrivalTime__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/ShowExactArrivalTime__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/ShowExactArrivalTime__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/ShowExactArrivalTime__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Technician_Assigment__c.field-meta.xml b/projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Technician_Assigment__c.field-meta.xml similarity index 100% rename from FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Technician_Assigment__c.field-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/objects/FollowupAppointmentSettings__c/fields/Technician_Assigment__c.field-meta.xml diff --git a/FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml b/projects/FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml similarity index 87% rename from FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml rename to projects/FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml index d27d4be..0e565e6 100644 --- a/FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml +++ b/projects/FollowUpAppointment/force-app/main/default/tabs/Follow_Up_Appointments_Settings.tab-meta.xml @@ -1,4 +1,4 @@ - + followUpAppointmentSettingsContainer diff --git a/HelloWorld/jest.config.js b/projects/FollowUpAppointment/jest.config.js similarity index 100% rename from HelloWorld/jest.config.js rename to projects/FollowUpAppointment/jest.config.js diff --git a/projects/FollowUpAppointment/package.json b/projects/FollowUpAppointment/package.json new file mode 100644 index 0000000..87c1f00 --- /dev/null +++ b/projects/FollowUpAppointment/package.json @@ -0,0 +1,29 @@ +{ + "name": "follow-up-appointment", + "private": true, + "version": "1.0.0", + "description": "Follow Up Appointment", + "scripts": { + "lint": "eslint **/lwc/**", + "test": "npm run test:unit", + "test:unit": "sfdx-lwc-jest", + "test:unit:watch": "sfdx-lwc-jest --watch", + "test:unit:debug": "sfdx-lwc-jest --debug", + "test:unit:coverage": "sfdx-lwc-jest --coverage", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/projects/FollowUpAppointment/sfdx-project.json b/projects/FollowUpAppointment/sfdx-project.json new file mode 100644 index 0000000..7953c6a --- /dev/null +++ b/projects/FollowUpAppointment/sfdx-project.json @@ -0,0 +1,35 @@ +{ + "packageDirectories": [ + { + "path": "force-app", + "package": "Follow-Up Appointment for Field Service Mobile", + "versionName": "Summer' 23", + "versionNumber": "1.2.0.NEXT", + "versionDescription": "To configure the settings, from the App Launcher, find and select Follow-Up Appointment Settings. Using this package, mobile workers can create and schedule follow-up appointments for customers directly from the mobile mobile app.", + "default": true, + "dependencies": [ + { + "package": "FSL" + } + ] + } + ], + "name": "Follow-Up Appointment for Field Service Mobile", + "namespace": "", + "sfdcLoginUrl": "https://login.salesforce.com", + "sourceApiVersion": "55.0", + "packageAliases": { + "Follow-Up Appointment for Field Service Mobile": "0HoB00000008PtFKAU", + "FSL": "04t3y000001drQt", + "Follow-Up Appointment for Field Service Mobile@0.1.0-1": "04tB0000000h4nGIAQ", + "Follow-Up Appointment for Field Service Mobile@0.1.0-6": "04tB0000000h6C7IAI", + "Follow-Up Appointment for Field Service Mobile@1.2.0-1": "04tB0000000h6CCIAY", + "Follow-Up Appointment for Field Service Mobile@1.2.0-2": "04tB0000000h6GZIAY", + "Follow-Up Appointment for Field Service Mobile@1.2.0-3": "04tB0000000h6H8IAI", + "Follow-Up Appointment for Field Service Mobile@1.2.0-4": "04tB0000000h6HSIAY", + "Follow-Up Appointment for Field Service Mobile@1.2.0-5": "04tB0000000h6HcIAI", + "Follow-Up Appointment for Field Service Mobile@1.2.0-6": "04tB0000000h6HhIAI", + "Follow-Up Appointment for Field Service Mobile@1.2.0-8": "04tB0000000h6nBIAQ", + "Follow-Up Appointment for Field Service Mobile@1.2.0-14": "04tB0000000h8fpIAA" + } +} diff --git a/NameAndSignatureCapture/.eslintignore b/projects/LocalPreview/HelloWorld/.eslintignore similarity index 100% rename from NameAndSignatureCapture/.eslintignore rename to projects/LocalPreview/HelloWorld/.eslintignore diff --git a/HelloWorld/.forceignore b/projects/LocalPreview/HelloWorld/.forceignore similarity index 100% rename from HelloWorld/.forceignore rename to projects/LocalPreview/HelloWorld/.forceignore diff --git a/HelloWorld/.gitignore b/projects/LocalPreview/HelloWorld/.gitignore similarity index 100% rename from HelloWorld/.gitignore rename to projects/LocalPreview/HelloWorld/.gitignore diff --git a/RescheduleAppointments/.prettierignore b/projects/LocalPreview/HelloWorld/.prettierignore similarity index 87% rename from RescheduleAppointments/.prettierignore rename to projects/LocalPreview/HelloWorld/.prettierignore index f3720b2..26253eb 100755 --- a/RescheduleAppointments/.prettierignore +++ b/projects/LocalPreview/HelloWorld/.prettierignore @@ -7,4 +7,6 @@ .sfdx .vscode -coverage/ \ No newline at end of file +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/RescheduleAppointments/.prettierrc b/projects/LocalPreview/HelloWorld/.prettierrc similarity index 78% rename from RescheduleAppointments/.prettierrc rename to projects/LocalPreview/HelloWorld/.prettierrc index 15683b6..03da7ba 100755 --- a/RescheduleAppointments/.prettierrc +++ b/projects/LocalPreview/HelloWorld/.prettierrc @@ -1,5 +1,6 @@ { "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], "overrides": [ { "files": "**/lwc/**/*.html", diff --git a/HelloWorld/README.md b/projects/LocalPreview/HelloWorld/README.md similarity index 100% rename from HelloWorld/README.md rename to projects/LocalPreview/HelloWorld/README.md diff --git a/HelloWorld/config/project-scratch-def.json b/projects/LocalPreview/HelloWorld/config/project-scratch-def.json similarity index 100% rename from HelloWorld/config/project-scratch-def.json rename to projects/LocalPreview/HelloWorld/config/project-scratch-def.json diff --git a/HelloWorld/configure_android_test_app.ts b/projects/LocalPreview/HelloWorld/configure_android_test_app.ts similarity index 100% rename from HelloWorld/configure_android_test_app.ts rename to projects/LocalPreview/HelloWorld/configure_android_test_app.ts diff --git a/HelloWorld/configure_ios_test_app.ts b/projects/LocalPreview/HelloWorld/configure_ios_test_app.ts similarity index 100% rename from HelloWorld/configure_ios_test_app.ts rename to projects/LocalPreview/HelloWorld/configure_ios_test_app.ts diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/.eslintrc.json similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json rename to projects/LocalPreview/HelloWorld/force-app/main/default/lwc/.eslintrc.json diff --git a/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html new file mode 100644 index 0000000..ee6585d --- /dev/null +++ b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.html @@ -0,0 +1,6 @@ + diff --git a/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js similarity index 100% rename from HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js rename to projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js diff --git a/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml similarity index 84% rename from HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml rename to projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml index b08f3f0..96d7d34 100644 --- a/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml +++ b/projects/LocalPreview/HelloWorld/force-app/main/default/lwc/helloWorld/helloWorld.js-meta.xml @@ -1,4 +1,4 @@ - + 48.0 true @@ -8,4 +8,4 @@ lightning__RecordPage lightning__HomePage - \ No newline at end of file + diff --git a/NameAndSignatureCapture/jest.config.js b/projects/LocalPreview/HelloWorld/jest.config.js similarity index 100% rename from NameAndSignatureCapture/jest.config.js rename to projects/LocalPreview/HelloWorld/jest.config.js diff --git a/HelloWorld/mobile-apps.json b/projects/LocalPreview/HelloWorld/mobile-apps.json similarity index 100% rename from HelloWorld/mobile-apps.json rename to projects/LocalPreview/HelloWorld/mobile-apps.json diff --git a/projects/LocalPreview/HelloWorld/package.json b/projects/LocalPreview/HelloWorld/package.json new file mode 100644 index 0000000..ba77b24 --- /dev/null +++ b/projects/LocalPreview/HelloWorld/package.json @@ -0,0 +1,24 @@ +{ + "name": "hello-world", + "private": true, + "version": "1.0.0", + "description": "Hello World", + "scripts": { + "lint": "eslint **/lwc/**", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/HelloWorld/scripts/apex/hello.apex b/projects/LocalPreview/HelloWorld/scripts/apex/hello.apex similarity index 100% rename from HelloWorld/scripts/apex/hello.apex rename to projects/LocalPreview/HelloWorld/scripts/apex/hello.apex diff --git a/HelloWorld/scripts/soql/account.soql b/projects/LocalPreview/HelloWorld/scripts/soql/account.soql similarity index 100% rename from HelloWorld/scripts/soql/account.soql rename to projects/LocalPreview/HelloWorld/scripts/soql/account.soql diff --git a/HelloWorld/sfdx-project.json b/projects/LocalPreview/HelloWorld/sfdx-project.json similarity index 100% rename from HelloWorld/sfdx-project.json rename to projects/LocalPreview/HelloWorld/sfdx-project.json diff --git a/projects/LocalPreview/README.md b/projects/LocalPreview/README.md new file mode 100644 index 0000000..955f289 --- /dev/null +++ b/projects/LocalPreview/README.md @@ -0,0 +1,87 @@ +# Samples for Previewing Lightning Web Components on Mobile +Here, you can find sample projects and native apps that let you preview Lightning web components several ways: +- In your desktop browser +- In the mobile browser of an iOS or Android virtual device +- In a native app running on an iOS or Android virtual device + +**IMPORTANT!** Before running this sample Lightning Web Component project, you must configure it to use a scratch org. If you're not familiar with this concept, we recommend completing the following trails. These trails demonstrate how to set up your development environment and configure a Lightning Web Component project with a Salesforce scratch org: + +- [Quick Start: Lightning Web Components](https://trailhead.salesforce.com/content/learn/projects/quick-start-lightning-web-components?trail_id=build-lightning-web-components) +- [Set Up Your Lightning Web Components Developer Tools](https://trailhead.salesforce.com/content/learn/projects/set-up-your-lightning-web-components-developer-tools?trail_id=build-lightning-web-components) + +## What's Included + +This folder includes Lightning Web Component projects and native mobile apps. The native apps are configured to recognize and display a component running on a local server. + +### Lightning Web Component Projects + +These samples define Lightning web components and demonstrate configurations for previewing them. +
    + + HelloWorld + +This sample Lightning Web Component project demonstrates how to preview locally. It contains a basic Lightning web component, along with mobile-apps.json - a configuration file that defines how to preview this component in native mobile apps. + +This file points to configure_android_test_app.ts and configure_ios_test_app.ts files. Together, these files demonstrate how you can + + - Configure your apps to show up in the VSCode preview dialog boxes. + - Define the optional get_app_bundle parameter. You can implement it to compile the app or perform any other setup steps. + +For more information on mobile-apps.json, see + +- “Configuring a Native Mobile App to Host Previews” in [Preview Your Components from the Command Line](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions_cli_commands) +- [Preview in Custom Mobile Apps](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions_integrate_custom_app) + +
    + +### Native Mobile Apps +These samples let you preview Lightning web components in standalone native apps. +
    + + apps/ios/LwcTestApp + + +A sample app that you can use to preview a Lightning web component in a native iOS app. +
    + +
    + + apps/android/LwcTestApp + + +A sample app that you can use to preview a Lightning web component in a native Android app. +
    + +## Previewing the Hello World Sample + +After you've set up your environment, connect the `HelloWorld` sample project to your scratch org and preview your component. You can use the following instructions as a model for previewing other Lightning web components. + +1. In VS Code, open the `HelloWorld` folder. + + +2. Configure the `HelloWorld` project to use a scratch org. If you already have a scratch org, skip to step 3. If you don't have a scratch org: + 1. In VS Code, press Cmd+Shift+p (macOS) or Ctrl+Shift+p (Windows). + 2. Type in `Scratch` and select `SFDX: Create a Default Scratch Org`. + 3. Follow the onscreen steps to create a scratch org. The recommended trails provide detailed information on these steps. + 4. Ensure that a success message appears in the VS Code Output window. + + +3. Authorize the `HelloWorld` project to use your scratch org. + 1. In VS Code, press Cmd+Shift+p (macOS) or Ctrl+Shift+p (Windows). + 2. Type in `Authorize` and select `SFDX: Authorize an Org`. + 3. Follow the onscreen steps to log into your Salesforce Org with your credentials. The recommended trails provide detailed information on these steps. + 4. Ensure that a success message appears in the VS Code Output window. + + +4. Now that your `HelloWorld` project is connected to your scratch org, preview it locally. + 1. In VS Code, navigate to `force-app > main > default > lwc`. + 2. Right-click `helloWorld` and select `SFDX: Preview Component Locally`. + 3. Select whether you'd like to preview it in your desktop browser or on an iOS or Android device. + 4. If you chose iOS/Android, either + - - Select an available virtual device from the presented list (if one appears), or + - - Choose to create a virtual device. + 5. Indicate whether you'd like to preview the component on your mobile browser or in the provided native LWC Test App. + +Your virtual device launches, and your component preview appears. + +For full documentation, see [Preview Lightning Web Components on Mobile](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.mobile_extensions). diff --git a/apps/android/LwcTestApp/.gitignore b/projects/LocalPreview/apps/android/LwcTestApp/.gitignore similarity index 100% rename from apps/android/LwcTestApp/.gitignore rename to projects/LocalPreview/apps/android/LwcTestApp/.gitignore diff --git a/apps/android/LwcTestApp/.idea/.gitignore b/projects/LocalPreview/apps/android/LwcTestApp/.idea/.gitignore similarity index 100% rename from apps/android/LwcTestApp/.idea/.gitignore rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/.gitignore diff --git a/apps/android/LwcTestApp/.idea/.name b/projects/LocalPreview/apps/android/LwcTestApp/.idea/.name similarity index 100% rename from apps/android/LwcTestApp/.idea/.name rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/.name diff --git a/apps/android/LwcTestApp/.idea/compiler.xml b/projects/LocalPreview/apps/android/LwcTestApp/.idea/compiler.xml similarity index 100% rename from apps/android/LwcTestApp/.idea/compiler.xml rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/compiler.xml diff --git a/apps/android/LwcTestApp/.idea/gradle.xml b/projects/LocalPreview/apps/android/LwcTestApp/.idea/gradle.xml similarity index 100% rename from apps/android/LwcTestApp/.idea/gradle.xml rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/gradle.xml diff --git a/apps/android/LwcTestApp/.idea/misc.xml b/projects/LocalPreview/apps/android/LwcTestApp/.idea/misc.xml similarity index 100% rename from apps/android/LwcTestApp/.idea/misc.xml rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/misc.xml diff --git a/apps/android/LwcTestApp/.idea/vcs.xml b/projects/LocalPreview/apps/android/LwcTestApp/.idea/vcs.xml similarity index 100% rename from apps/android/LwcTestApp/.idea/vcs.xml rename to projects/LocalPreview/apps/android/LwcTestApp/.idea/vcs.xml diff --git a/apps/android/LwcTestApp/app/.gitignore b/projects/LocalPreview/apps/android/LwcTestApp/app/.gitignore similarity index 100% rename from apps/android/LwcTestApp/app/.gitignore rename to projects/LocalPreview/apps/android/LwcTestApp/app/.gitignore diff --git a/apps/android/LwcTestApp/app/build.gradle b/projects/LocalPreview/apps/android/LwcTestApp/app/build.gradle similarity index 100% rename from apps/android/LwcTestApp/app/build.gradle rename to projects/LocalPreview/apps/android/LwcTestApp/app/build.gradle diff --git a/apps/android/LwcTestApp/app/proguard-rules.pro b/projects/LocalPreview/apps/android/LwcTestApp/app/proguard-rules.pro similarity index 100% rename from apps/android/LwcTestApp/app/proguard-rules.pro rename to projects/LocalPreview/apps/android/LwcTestApp/app/proguard-rules.pro diff --git a/apps/android/LwcTestApp/app/src/main/AndroidManifest.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/AndroidManifest.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/AndroidManifest.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/AndroidManifest.xml diff --git a/apps/android/LwcTestApp/app/src/main/ic_launcher-playstore.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/ic_launcher-playstore.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/ic_launcher-playstore.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/ic_launcher-playstore.png diff --git a/apps/android/LwcTestApp/app/src/main/java/com/salesforce/mobiletooling/lwctestapp/MainActivity.kt b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/java/com/salesforce/mobiletooling/lwctestapp/MainActivity.kt similarity index 100% rename from apps/android/LwcTestApp/app/src/main/java/com/salesforce/mobiletooling/lwctestapp/MainActivity.kt rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/java/com/salesforce/mobiletooling/lwctestapp/MainActivity.kt diff --git a/apps/android/LwcTestApp/app/src/main/res/drawable/ic_info.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/drawable/ic_info.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/drawable/ic_info.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/drawable/ic_info.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/drawable/ic_launcher_foreground.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/drawable/ic_launcher_foreground.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/layout/activity_main.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/layout/activity_main.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/layout/activity_main.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/layout/activity_main.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-hdpi/ic_launcher_round.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-mdpi/ic_launcher_round.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png diff --git a/apps/android/LwcTestApp/app/src/main/res/values-night/themes.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values-night/themes.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/values-night/themes.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values-night/themes.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/values/colors.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/colors.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/values/colors.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/colors.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/values/ic_launcher_background.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/ic_launcher_background.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/values/ic_launcher_background.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/ic_launcher_background.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/values/strings.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/strings.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/values/strings.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/strings.xml diff --git a/apps/android/LwcTestApp/app/src/main/res/values/themes.xml b/projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/themes.xml similarity index 100% rename from apps/android/LwcTestApp/app/src/main/res/values/themes.xml rename to projects/LocalPreview/apps/android/LwcTestApp/app/src/main/res/values/themes.xml diff --git a/apps/android/LwcTestApp/build.gradle b/projects/LocalPreview/apps/android/LwcTestApp/build.gradle similarity index 100% rename from apps/android/LwcTestApp/build.gradle rename to projects/LocalPreview/apps/android/LwcTestApp/build.gradle diff --git a/apps/android/LwcTestApp/gradle.properties b/projects/LocalPreview/apps/android/LwcTestApp/gradle.properties similarity index 100% rename from apps/android/LwcTestApp/gradle.properties rename to projects/LocalPreview/apps/android/LwcTestApp/gradle.properties diff --git a/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.jar b/projects/LocalPreview/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.jar rename to projects/LocalPreview/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.jar diff --git a/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.properties b/projects/LocalPreview/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.properties rename to projects/LocalPreview/apps/android/LwcTestApp/gradle/wrapper/gradle-wrapper.properties diff --git a/apps/android/LwcTestApp/gradlew b/projects/LocalPreview/apps/android/LwcTestApp/gradlew similarity index 100% rename from apps/android/LwcTestApp/gradlew rename to projects/LocalPreview/apps/android/LwcTestApp/gradlew diff --git a/apps/android/LwcTestApp/gradlew.bat b/projects/LocalPreview/apps/android/LwcTestApp/gradlew.bat similarity index 100% rename from apps/android/LwcTestApp/gradlew.bat rename to projects/LocalPreview/apps/android/LwcTestApp/gradlew.bat diff --git a/apps/android/LwcTestApp/settings.gradle b/projects/LocalPreview/apps/android/LwcTestApp/settings.gradle similarity index 100% rename from apps/android/LwcTestApp/settings.gradle rename to projects/LocalPreview/apps/android/LwcTestApp/settings.gradle diff --git a/apps/ios/LwcTestApp/.gitignore b/projects/LocalPreview/apps/ios/LwcTestApp/.gitignore similarity index 100% rename from apps/ios/LwcTestApp/.gitignore rename to projects/LocalPreview/apps/ios/LwcTestApp/.gitignore diff --git a/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/project.pbxproj b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/project.pbxproj similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp.xcodeproj/project.pbxproj rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/project.pbxproj diff --git a/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/xcshareddata/xcschemes/LwcTestApp.xcscheme b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/xcshareddata/xcschemes/LwcTestApp.xcscheme similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp.xcodeproj/xcshareddata/xcschemes/LwcTestApp.xcscheme rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp.xcodeproj/xcshareddata/xcschemes/LwcTestApp.xcscheme diff --git a/apps/ios/LwcTestApp/LwcTestApp/AppDelegate.swift b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/AppDelegate.swift similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/AppDelegate.swift rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/AppDelegate.swift diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-1024@1x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@1x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@1x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@1x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@1x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-20@3x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@1x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@1x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@1x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@1x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@1x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@1x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@1x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@1x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png diff --git a/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/Contents.json b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/Contents.json similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/Contents.json rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Assets.xcassets/Contents.json diff --git a/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/LaunchScreen.storyboard b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Base.lproj/LaunchScreen.storyboard rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/LaunchScreen.storyboard diff --git a/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/Main.storyboard b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/Main.storyboard similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Base.lproj/Main.storyboard rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Base.lproj/Main.storyboard diff --git a/apps/ios/LwcTestApp/LwcTestApp/Info.plist b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Info.plist similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/Info.plist rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/Info.plist diff --git a/apps/ios/LwcTestApp/LwcTestApp/SceneDelegate.swift b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/SceneDelegate.swift similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/SceneDelegate.swift rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/SceneDelegate.swift diff --git a/apps/ios/LwcTestApp/LwcTestApp/ViewController.swift b/projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/ViewController.swift similarity index 100% rename from apps/ios/LwcTestApp/LwcTestApp/ViewController.swift rename to projects/LocalPreview/apps/ios/LwcTestApp/LwcTestApp/ViewController.swift diff --git a/RescheduleAppointments/.eslintignore b/projects/MobileDashboard/.eslintignore similarity index 100% rename from RescheduleAppointments/.eslintignore rename to projects/MobileDashboard/.eslintignore diff --git a/MobileDashboard/.forceignore b/projects/MobileDashboard/.forceignore similarity index 100% rename from MobileDashboard/.forceignore rename to projects/MobileDashboard/.forceignore diff --git a/MobileDashboard/.gitignore b/projects/MobileDashboard/.gitignore similarity index 100% rename from MobileDashboard/.gitignore rename to projects/MobileDashboard/.gitignore diff --git a/projects/MobileDashboard/.prettierignore b/projects/MobileDashboard/.prettierignore new file mode 100755 index 0000000..26253eb --- /dev/null +++ b/projects/MobileDashboard/.prettierignore @@ -0,0 +1,12 @@ +# List files or directories below to ignore them when running prettier +# More information: https://prettier.io/docs/en/ignore.html +# + +**/staticresources/** +.localdevserver +.sfdx +.vscode + +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/projects/MobileDashboard/.prettierrc b/projects/MobileDashboard/.prettierrc new file mode 100755 index 0000000..03da7ba --- /dev/null +++ b/projects/MobileDashboard/.prettierrc @@ -0,0 +1,14 @@ +{ + "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], + "overrides": [ + { + "files": "**/lwc/**/*.html", + "options": { "parser": "lwc" } + }, + { + "files": "*.{cmp,page,component}", + "options": { "parser": "html" } + } + ] +} diff --git a/projects/MobileDashboard/README.md b/projects/MobileDashboard/README.md new file mode 100644 index 0000000..7aaf044 --- /dev/null +++ b/projects/MobileDashboard/README.md @@ -0,0 +1,40 @@ +# Set Up the Mobile Dashboard Lightning Web Component (LWC) + +Let your mobile workers easily see an overview of their data. For example, show a dashboard that lets workers know where they stand with the company’s KPIs. That way, they always know what they need to work on. + +**Note:** Mobile Dashboard LWC is an open-source component and is not supported by Salesforce Support. + +1. Enable access to LWCs. See [Define a Permission Set for Your Org](https://developer.salesforce.com/docs/atlas.en-us.mobile_offline.meta/mobile_offline/quickstart_lwc_action_org_setup.htm#quickstart_lwc_action_org_setup_create_permset). +2. Enable the permission set. + 1. From Setup, in the Quick Find box, enter `Users`, and then select **Users**. + 2. Select the required mobile user. + 3. Under Permission Set Assignments, click **Edit Assignments**. + 4. Enable **Field Service Mobile Dashboard Permissions**. + 5. Repeat these steps for all the relevant mobile users. +3. To install the package, click https://login.salesforce.com/packaging/installPackage.apexp?p0=04t1Q0000012EomQAE. If you choose to deploy the code instead of installing the package, make sure to complete these steps: + 1. Before deploying the code, enable using different languages. + - From Setup, in the Quick Find box, enter `Translation Workbench`, and then select **Translation Language Settings**. + - Click **Enable**. + - Deploy the code. + 2. Make the tab visible. + - From Setup, in the Quick Find box, enter `Users`, and then select **Profiles**. + - Edit the System Administrator profile. + - Under Tab Settings, set the Mobile Dashboard Settings tab to **Default On**. + 3. Make the fields visible. + - Form Setup, open the Object Manager. + - Search for and select **Mobile Dashboard Setting**. + - From Fields & Relationships, for each field, click **Set Field-Level Security** and select **Visible**. +4. From the Developer Console, run the script to get preconfigured cards for your dashboard: `DashboardPostInstall.onInstall();` +5. From the App Launcher, find and select **Mobile Dashboard Settings**. +6. Review the details of the cards and change them as needed. + - The preview cards show a dummy result of 1 record for each query. + - When the result of a query includes more than 2000 records, the dashboard shows 2000+ instead of the exact number. + - If the tabs get stuck when adding or editing a card, see [Enable Lightning Web Security in an Org](https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.security_lwsec_enable). +7. Make sure the queried fields are visible. Otherwise, the query doesn’t return any results. + 1. From the object management settings for the object whose fields you want to make visible, go to **Fields & Relationships**. + 2. For the required fields, click **Set Field-Level Security** and make the field-level security visible for all profiles. +8. Connect the LWC to a global action. See [Add Global Actions to the Field Service Mobile App](https://help.salesforce.com/s/articleView?id=sf.mfs_global_actions.htm&type=5). + 1. For Action Type, select **Lightning Web Components**. + 2. For Lightning Web Component, select **c:mainDashboard**. +9. Add the global action to the required layout. +10. From the Field Service mobile app, open the LWC to verify the setup. diff --git a/MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml b/projects/MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml similarity index 96% rename from MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml rename to projects/MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml index 055551b..a847fb7 100644 --- a/MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/Assets/SFS_MobileDashboardPerm.permissionset-meta.xml @@ -1,4 +1,4 @@ - + false @@ -36,4 +36,4 @@ Mobile_Dashboard_Setting__c true - \ No newline at end of file + diff --git a/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls similarity index 97% rename from MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls rename to projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls index 406efae..375ef28 100644 --- a/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls @@ -1,9 +1,10 @@ global class DashboardPostInstall { - global static void onInstall() { - // add OOTB cards - List existingSettings = [SELECT Id FROM Mobile_Dashboard_Setting__c]; + List existingSettings = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; if (existingSettings.size() == 0) { List> allInfo = getInfoList(); @@ -27,7 +28,7 @@ global class DashboardPostInstall { private static List> getInfoList() { List> allInfo = new List>(); - + Map one = new Map{ 'Custom_Logic__c' => '', 'Layout__c' => 'STACK', @@ -78,4 +79,4 @@ global class DashboardPostInstall { return allInfo; } -} \ No newline at end of file +} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml similarity index 77% rename from MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml rename to projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml index 4b0bc9f..c47403d 100644 --- a/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstall.cls-meta.xml @@ -1,4 +1,4 @@ - + 55.0 Active diff --git a/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls new file mode 100644 index 0000000..41c202b --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls @@ -0,0 +1,19 @@ +@isTest +public with sharing class DashboardPostInstallTest { + @isTest + static void testInstallScriptPredefinedCards() { + List allCardsBefore = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.areEqual(0, allCardsBefore.size()); + + DashboardPostInstall.onInstall(); + + List allCardsAfter = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.areEqual(4, allCardsAfter.size()); + } +} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml similarity index 69% rename from MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml rename to projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml index 9bbf7b4..1248daa 100644 --- a/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardPostInstallTest.cls-meta.xml @@ -1,5 +1,5 @@ - + 56.0 Active - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls new file mode 100644 index 0000000..2643edf --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls @@ -0,0 +1,216 @@ +public with sharing class DashboardSettingsService { + private static final String UNAUTH_MSG = 'Changing the dashboard settings is restricted to admins only.'; + + @AuraEnabled(cacheable=false) + public static List> getAllObjects() { + List> objectsList = new List>(); + Map tempMap; + + for (Schema.SObjectType objType : Schema.getGlobalDescribe().Values()) { + String name = objType.getDescribe().getName(); + String label = objType.getDescribe().getLabel(); + if ( + !name.containsignorecase('history') && + !name.containsignorecase('tag') && + !name.containsignorecase('share') && + !name.containsignorecase('feed') && + !name.containsignorecase('group') && + !name.containsignorecase('public') && + !objType.getDescribe().isCustomSetting() && + objType.getDescribe().isCreateable() && + objType.getDescribe().getRecordTypeInfos().size() > 0 + ) { + tempMap = new Map(); + tempMap.put('value', name); + tempMap.put('label', label); + objectsList.add(tempMap); + } + } + + return objectsList; + } + + @AuraEnabled(cacheable=false) + public static List> getAllFields(String obj) { + SObjectType objType = Schema.getGlobalDescribe().get(obj); + Map fields = objType.getDescribe() + .fields.getMap(); + Set fieldsKeys = fields.keySet(); + + List> fieldsInfo = new List>(); + Map temp = new Map(); + Schema.DescribeFieldResult field; + + for (String key : fieldsKeys) { + field = fields.get(key).getDescribe(); + if (field.getType().name() != 'ADDRESS' && field.isAccessible()) { + temp = new Map(); + temp.put('value', field.getLocalName()); + temp.put('label', field.getLabel()); + temp.put('type', field.getType().name()); + fieldsInfo.add(temp); + } + } + + return fieldsInfo; + } + + @AuraEnabled(cacheable=false) + public static List> getAllPicklistOptions( + String obj, + String field + ) { + try { + SObjectType objType = Schema.getGlobalDescribe().get(obj); + Map fields = objType.getDescribe() + .fields.getMap(); + Schema.DescribeFieldResult dfr = fields.get(field).getDescribe(); + + List> picklistOptions = new List>(); + Map temp = new Map(); + + List picklistVals = dfr.getPicklistValues(); + for (Schema.PicklistEntry picklistVal : picklistVals) { + temp = new Map(); + temp.put('value', picklistVal.getValue()); + temp.put('label', picklistVal.getLabel()); + picklistOptions.add(temp); + } + + return picklistOptions; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled + public static Map getAllObjLabels(List apiNames) { + try { + Map objectLabels = new Map(); + String objectLabel; + for (String apiName : apiNames) { + objectLabel = Schema.getGlobalDescribe() + .get(apiName) + .getDescribe() + .getLabel(); + objectLabels.put(apiName, objectLabel); + } + return objectLabels; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled(cacheable=false) + public static String insertNewCard(Map data) { + try { + if (!isAuthorized()) { + throw new HandledException(UNAUTH_MSG); + } + Mobile_Dashboard_Setting__c newSetting = new Mobile_Dashboard_Setting__c( + Custom_Logic__c = data.get('customLogic'), + Layout__c = data.get('layout'), + Main_Filter_Logic__c = data.get('mainFilterLogic'), + Main_Filter__c = data.get('mainFilter'), + Object_Name__c = data.get('objectName'), + Order__c = Integer.valueOf(data.get('index')), + Sub_Filters__c = data.get('subFilters'), + Title__c = data.get('title') + ); + + insert newSetting; + return newSetting.Id; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled(cacheable=false) + public static void updateCard(String Id, Map data) { + try { + if (!isAuthorized()) { + throw new HandledException(UNAUTH_MSG); + } + Mobile_Dashboard_Setting__c setting = [ + SELECT + Custom_Logic__c, + Layout__c, + Main_Filter_Logic__c, + Main_Filter__c, + Object_Name__c, + Order__c, + Sub_Filters__c, + Title__c + FROM Mobile_Dashboard_Setting__c + WHERE Id = :Id + ]; + + setting.Custom_Logic__c = data.get('customLogic'); + setting.Layout__c = data.get('layout'); + setting.Main_Filter_Logic__c = data.get('mainFilterLogic'); + setting.Main_Filter__c = data.get('mainFilter'); + setting.Object_Name__c = data.get('objectName'); + setting.Order__c = Integer.valueOf(data.get('index')); + setting.Sub_Filters__c = data.get('subFilters'); + setting.Title__c = data.get('title'); + + update setting; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled(cacheable=false) + public static void deleteCard(String Id) { + try { + if (!isAuthorized()) { + throw new HandledException(UNAUTH_MSG); + } + Mobile_Dashboard_Setting__c setting = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + WHERE Id = :Id + ]; + delete setting; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + @AuraEnabled(cacheable=false) + public static void updateCardsOrder(List cardsIds) { + try { + if (!isAuthorized()) { + throw new HandledException(UNAUTH_MSG); + } + List allSettings = [ + SELECT Id, Order__c + FROM Mobile_Dashboard_Setting__c + ]; + for (Mobile_Dashboard_Setting__c setting : allSettings) { + setting.Order__c = cardsIds.indexOf(setting.Id); + } + update allSettings; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } + + private static boolean isAuthorized() { + try { + List adminProfiles = [ + SELECT Id + FROM Profile + WHERE PermissionsContentAdministrator = TRUE + ]; + for (Profile p : adminProfiles) { + if (p.Id == System.UserInfo.getProfileId()) { + return true; + } + } + return false; + } catch (Exception e) { + throw new HandledException(e.getMessage()); + } + } +} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml similarity index 77% rename from MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml rename to projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml index 4b0bc9f..c47403d 100644 --- a/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsService.cls-meta.xml @@ -1,4 +1,4 @@ - + 55.0 Active diff --git a/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls new file mode 100644 index 0000000..1380f65 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls @@ -0,0 +1,251 @@ +@isTest +public with sharing class DashboardSettingsServiceTest { + public static Mobile_Dashboard_Setting__c mds; + + static { + mds = new Mobile_Dashboard_Setting__c( + Title__c = 'Test Title', + Main_Filter_Logic__c = 'AND', + Order__c = 0, + Object_Name__c = 'Account' + ); + insert mds; + } + + @isTest + static void testGetAllObjects() { + try { + List> result = DashboardSettingsService.getAllObjects(); + + // get 2 examples + Map accountObject; + Map contactObject; + for (Map obj : result) { + if (obj.containsKey('value') && obj.get('value') == 'Account') { + accountObject = obj; + } + if (obj.containsKey('value') && obj.get('value') == 'Contact') { + contactObject = obj; + } + } + Assert.isNotNull(accountObject); + Assert.areEqual('Account', accountObject.get('label')); + + Assert.isNotNull(contactObject); + Assert.areEqual('Contact', contactObject.get('label')); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testGetAllFields() { + try { + List> result = DashboardSettingsService.getAllFields( + 'Account' + ); + + // get 2 examples + Map nameField; + Map phoneField; + for (Map field : result) { + if (field.containsKey('value') && field.get('value') == 'Name') { + nameField = field; + } + if (field.containsKey('value') && field.get('value') == 'Phone') { + phoneField = field; + } + } + Assert.isNotNull(nameField); + Assert.areEqual('Account Name', nameField.get('label')); + + Assert.isNotNull(phoneField); + Assert.areEqual('Account Phone', phoneField.get('label')); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testGetAllPicklistOptions() { + try { + List> result = DashboardSettingsService.getAllPicklistOptions( + 'ServiceAppointment', + 'Status' + ); + + Assert.isNotNull(result); + + // get 2 examples + Map completed; + Map canceled; + for (Map option : result) { + if (option.containsKey('value') && option.get('value') == 'Completed') { + completed = option; + } + if (option.containsKey('value') && option.get('value') == 'Canceled') { + canceled = option; + } + } + + Assert.isNotNull(completed); + Assert.isNotNull(canceled); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testGetAllObjLabels() { + try { + List apiNames = new List{ 'ServiceAppointment', 'Case' }; + Map result = DashboardSettingsService.getAllObjLabels( + apiNames + ); + + Assert.areEqual('Service Appointment', result.get(apiNames.get(0))); + Assert.areEqual('Case', result.get(apiNames.get(1))); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testInsertNewCard() { + try { + List cardsBefore = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.isNotNull(cardsBefore); + Assert.areEqual(1, cardsBefore.size()); + + Map data = new Map(); + data.put('customLogic', ''); + data.put('layout', 'SIDE'); + data.put('mainFilterLogic', 'AND'); + data.put('mainFilter', ''); + data.put('objectName', 'Account'); + data.put('index', '1'); + data.put('subFilters', ''); + data.put('title', 'Test Title2'); + + DashboardSettingsService.insertNewCard(data); + + List cardsAfter = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.isNotNull(cardsAfter); + Assert.areEqual(2, cardsAfter.size()); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testUpdateCard() { + try { + Mobile_Dashboard_Setting__c cardBefore = [ + SELECT Id, Title__c + FROM Mobile_Dashboard_Setting__c + WHERE Id = :mds.Id + ]; + Assert.isNotNull(cardBefore); + Assert.areEqual('Test Title', cardBefore.Title__c); + + Map data = new Map(); + data.put('customLogic', ''); + data.put('layout', 'SIDE'); + data.put('mainFilterLogic', 'AND'); + data.put('mainFilter', ''); + data.put('objectName', 'Account'); + data.put('index', '0'); + data.put('subFilters', ''); + data.put('title', 'Updated Test Title'); + DashboardSettingsService.updateCard(mds.Id, data); + + Mobile_Dashboard_Setting__c cardAfter = [ + SELECT Id, Title__c + FROM Mobile_Dashboard_Setting__c + WHERE Id = :mds.Id + ]; + Assert.isNotNull(cardAfter); + Assert.areEqual('Updated Test Title', cardAfter.Title__c); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testDeleteCard() { + try { + List cardsBefore = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.isNotNull(cardsBefore); + Assert.areEqual(1, cardsBefore.size()); + + DashboardSettingsService.deleteCard(mds.Id); + + List cardsAfter = [ + SELECT Id + FROM Mobile_Dashboard_Setting__c + ]; + Assert.isNotNull(cardsAfter); + Assert.areEqual(0, cardsAfter.size()); + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } + + @isTest + static void testUpdateCardsOrder() { + try { + Map data = new Map(); + data.put('customLogic', ''); + data.put('layout', 'SIDE'); + data.put('mainFilterLogic', 'AND'); + data.put('mainFilter', ''); + data.put('objectName', 'Account'); + data.put('index', '1'); + data.put('subFilters', ''); + data.put('title', 'Test Title2'); + Id newId = DashboardSettingsService.insertNewCard(data); + + List cardsBefore = [ + SELECT Id, Title__c, Order__c + FROM Mobile_Dashboard_Setting__c + ]; + for (Mobile_Dashboard_Setting__c card : cardsBefore) { + if (card.Title__c == 'Test Title') { + Assert.areEqual(0, card.Order__c); + } + if (card.Title__c == 'Test Title2') { + Assert.areEqual(1, card.Order__c); + } + } + + List cardsIds = new List(); + cardsIds.add(newId); + cardsIds.add(mds.Id); + DashboardSettingsService.updateCardsOrder(cardsIds); + + List cardsAfter = [ + SELECT Id, Title__c, Order__c + FROM Mobile_Dashboard_Setting__c + ]; + for (Mobile_Dashboard_Setting__c card : cardsAfter) { + if (card.Title__c == 'Test Title') { + Assert.areEqual(1, card.Order__c); + } + if (card.Title__c == 'Test Title2') { + Assert.areEqual(0, card.Order__c); + } + } + } catch (Exception e) { + Assert.fail('An exception was thrown: ' + e.getMessage()); + } + } +} diff --git a/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml similarity index 77% rename from MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml rename to projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml index 4b0bc9f..c47403d 100644 --- a/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/classes/DashboardSettingsServiceTest.cls-meta.xml @@ -1,4 +1,4 @@ - + 55.0 Active diff --git a/MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml b/projects/MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml rename to projects/MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml index fb1beec..2ffa2ec 100644 --- a/MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/labels/CustomLabels.labels-meta.xml @@ -1,4 +1,4 @@ - + @@ -24,14 +24,16 @@ true MobileDashboard Main settings page description - Configure your dashboard cards. For better performance, limit the dashboard to five cards. + Configure your dashboard cards. For better performance, limit the dashboard to five cards. MobileDashboard_settings_add_card_button en_US true MobileDashboard - Main settings page add card button text + Main settings page add card button text Add Card @@ -49,7 +51,8 @@ en_US true MobileDashboard - Card accessibility text for arrow next to edit button + Card accessibility text for arrow next to edit button More options @@ -57,7 +60,8 @@ en_US true MobileDashboard - Card accessibility text for up arrow + Card accessibility text for up arrow Move up @@ -65,15 +69,18 @@ en_US true MobileDashboard - Card accessibility text for down arrow + Card accessibility text for down arrow Move down - MobileDashboard_settings_card_display_operator_today + MobileDashboard_settings_card_display_operator_today en_US true MobileDashboard - Card list of filters - the word "today" + Card list of filters - the word "today" today @@ -81,7 +88,8 @@ en_US true MobileDashboard - Card list of filters - the word "next" + Card list of filters - the word "next" next @@ -89,7 +97,8 @@ en_US true MobileDashboard - Card list of filters - the word "last" + Card list of filters - the word "last" last @@ -97,7 +106,8 @@ en_US true MobileDashboard - Card list of filters - the word "days" + Card list of filters - the word "days" days @@ -105,7 +115,8 @@ en_US true MobileDashboard - Card list of filters - the word "weeks" + Card list of filters - the word "weeks" weeks @@ -113,7 +124,8 @@ en_US true MobileDashboard - Card list of filters - the word "months" + Card list of filters - the word "months" months @@ -121,7 +133,8 @@ en_US true MobileDashboard - Card list of filters - the word "and" + Card list of filters - the word "and" and @@ -129,7 +142,8 @@ en_US true MobileDashboard - Card list of filters - the word "or" + Card list of filters - the word "or" or @@ -147,7 +161,8 @@ en_US true MobileDashboard - Card modal title - edit existing card + Card modal title - edit existing card Edit Dashboard Card @@ -165,31 +180,38 @@ en_US true MobileDashboard - Card modal - details tab - name field + Card modal - details tab - name field Name - MobileDashboard_card_modal_details_filter_logic_field + MobileDashboard_card_modal_details_filter_logic_field en_US true MobileDashboard - Card modal - details tab - filter logic field + Card modal - details tab - filter logic field Filter Logic - MobileDashboard_card_modal_details_filter_field_infobubble + MobileDashboard_card_modal_details_filter_field_infobubble en_US true MobileDashboard - Card modal - details tab - filter field infobubble - After selecting an object, define which records are included in the card. + Card modal - details tab - filter field infobubble + After selecting an object, define which records are included in the card. MobileDashboard_card_modal_details_filter_logic_and en_US true MobileDashboard - Card modal - details tab - condition logic AND + Card modal - details tab - condition logic AND All Conditions Are Met (AND) @@ -197,23 +219,28 @@ en_US true MobileDashboard - Card modal - details tab - condition logic OR + Card modal - details tab - condition logic OR Any Condition Is Met (OR) - MobileDashboard_card_modal_details_filter_logic_custom + MobileDashboard_card_modal_details_filter_logic_custom en_US true MobileDashboard - Card modal - details tab - condition logic CUSTOM + Card modal - details tab - condition logic CUSTOM Custom Condition Is Met - MobileDashboard_card_modal_details_and_between_logic + MobileDashboard_card_modal_details_and_between_logic en_US true MobileDashboard - Card modal - details tab - the word "AND" between the main filters + Card modal - details tab - the word "AND" between the main filters AND @@ -221,40 +248,50 @@ en_US true MobileDashboard - Card modal - details tab - the word "OR" between the main filters + Card modal - details tab - the word "OR" between the main filters OR - MobileDashboard_card_modal_details_remove_condition_button + MobileDashboard_card_modal_details_remove_condition_button en_US true MobileDashboard - Card modal - details tab - accessibility text for delete + Card modal - details tab - accessibility text for delete Delete logic - MobileDashboard_card_modal_details_add_condition_button + MobileDashboard_card_modal_details_add_condition_button en_US true MobileDashboard - Card modal - details tab - add logic button text + Card modal - details tab - add logic button text Add Logic - MobileDashboard_card_modal_details_custom_logic_field + MobileDashboard_card_modal_details_custom_logic_field en_US true MobileDashboard - Card modal - details tab - custom logic field (if selected custom logic) + Card modal - details tab - custom logic field (if selected custom logic) Custom Logic - MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_details_custom_logic_field_infobubble en_US true MobileDashboard - Card modal - details tab - custom logic field infobubble - Provide the condition logic. Use numbers to refer to each condition. Use AND or OR to identify the combination of conditions. Add parentheses to group parts of the string together. For example, 1 AND (2 OR 3) evaluates whether the first condition is true, and either the second or third condition is true. + Card modal - details tab - custom logic field infobubble + Provide the condition logic. Use numbers to refer to each condition. Use AND or OR to identify the combination of conditions. Add parentheses to group parts of the string together. For example, 1 AND (2 OR 3) evaluates whether the first condition is true, and either the second or third condition is true. @@ -271,55 +308,69 @@ en_US true MobileDashboard - Card modal - design tab - layout radio button title + Card modal - design tab - layout radio button title Card Layout - MobileDashboard_card_modal_design_tab_layout_side_title + MobileDashboard_card_modal_design_tab_layout_side_title en_US true MobileDashboard - Card modal - design tab - side by side radio button title + Card modal - design tab - side by side radio button title Side-by-side - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description en_US true MobileDashboard - Card modal - design tab - side by side radio button description + Card modal - design tab - side by side radio button description Saves vertical space. Recommended for short field names. - MobileDashboard_card_modal_design_tab_layout_stack_title + MobileDashboard_card_modal_design_tab_layout_stack_title en_US true MobileDashboard - Card modal - design tab - stacked radio button title + Card modal - design tab - stacked radio button title Stacked - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description en_US true MobileDashboard - Card modal - design tab - stacked radio button description - Uses more vertical space. Recommended for long field names. + Card modal - design tab - stacked radio button description + Uses more vertical space. Recommended for long field names. - MobileDashboard_card_modal_design_tab_card_data_title + MobileDashboard_card_modal_design_tab_card_data_title en_US true MobileDashboard - Card modal - design tab - card data title + Card modal - design tab - card data title Card Data - MobileDashboard_card_modal_design_tab_add_data_button + MobileDashboard_card_modal_design_tab_add_data_button en_US true MobileDashboard - Card modal - design tab - add data button text + Card modal - design tab - add data button text Add Data @@ -353,7 +404,8 @@ en_US true MobileDashboard - Sub filter (grey box) - color field infobubble + Sub filter (grey box) - color field infobubble For best visibility, choose high-contrast colors. @@ -361,7 +413,8 @@ en_US true MobileDashboard - Sub filter (grey box) - accessibility text for menu arrow + Sub filter (grey box) - accessibility text for menu arrow Options @@ -387,7 +440,8 @@ en_US true MobileDashboard - Basic filter - operator option - equals + Basic filter - operator option - equals equals @@ -395,7 +449,8 @@ en_US true MobileDashboard - Basic filter - operator option - not equal + Basic filter - operator option - not equal not equal to @@ -403,7 +458,8 @@ en_US true MobileDashboard - Basic filter - operator option - less than + Basic filter - operator option - less than less than @@ -411,7 +467,8 @@ en_US true MobileDashboard - Basic filter - operator option - greater than + Basic filter - operator option - greater than greater than @@ -419,15 +476,18 @@ en_US true MobileDashboard - Basic filter - operator option - less or equal + Basic filter - operator option - less or equal less or equals - MobileDashboard_basic_filter_operator_greater_or_equal + MobileDashboard_basic_filter_operator_greater_or_equal en_US true MobileDashboard - Basic filter - operator option - greater or equal + Basic filter - operator option - greater or equal greater or equals @@ -435,7 +495,8 @@ en_US true MobileDashboard - Basic filter - operator option - contains + Basic filter - operator option - contains contains @@ -451,7 +512,8 @@ en_US true MobileDashboard - Basic filter - date type operator today + Basic filter - date type operator today Today @@ -459,7 +521,8 @@ en_US true MobileDashboard - Basic filter - date type operator next + Basic filter - date type operator next Next... @@ -467,7 +530,8 @@ en_US true MobileDashboard - Basic filter - date type operator last + Basic filter - date type operator last Last... @@ -475,7 +539,8 @@ en_US true MobileDashboard - Basic filter - date type operator on + Basic filter - date type operator on On... @@ -483,7 +548,8 @@ en_US true MobileDashboard - NBasic filter - date type operator before + NBasic filter - date type operator before Before... @@ -491,7 +557,8 @@ en_US true MobileDashboard - Basic filter - date type operator after + Basic filter - date type operator after After... @@ -565,7 +632,8 @@ en_US true MobileDashboard - Icons list - name for icon In Progress + Icons list - name for icon In Progress In Progress @@ -573,7 +641,8 @@ en_US true MobileDashboard - Icons list - name for icon Cannot Complete + Icons list - name for icon Cannot Complete Cannot Complete @@ -613,7 +682,8 @@ en_US true MobileDashboard - Icons list - sub title - Record Types + Icons list - sub title - Record Types Record Types @@ -637,7 +707,8 @@ en_US true MobileDashboard - Icons list - name for icon Opportunity + Icons list - name for icon Opportunity Opportunity @@ -743,7 +814,8 @@ en_US true MobileDashboard - Warning message - delete card warning title + Warning message - delete card warning title Delete dashboard card? @@ -751,23 +823,28 @@ en_US true MobileDashboard - Warning message - delete card warning body + Warning message - delete card warning body This removes the card from the dashboard. - MobileDashboard_settings_delete_sub_filter_warning_title + MobileDashboard_settings_delete_sub_filter_warning_title en_US true MobileDashboard - Warning message - delete sub filter warning title + Warning message - delete sub filter warning title Delete card data? - MobileDashboard_settings_delete_sub_filter_warning_body + MobileDashboard_settings_delete_sub_filter_warning_body en_US true MobileDashboard - Warning message - delete sub filter warning body + Warning message - delete sub filter warning body This removes the card data from the dashboard card. @@ -793,7 +870,8 @@ en_US true MobileDashboard - Error popup - deleting a card failed + Error popup - deleting a card failed We couldn't delete the card. Try again later. @@ -801,7 +879,8 @@ en_US true MobileDashboard - Error popup - duplicate a card failed + Error popup - duplicate a card failed We couldn't duplicate the card. Try again later. @@ -836,7 +915,8 @@ true MobileDashboard Preview title infobubble - Preview display can differ slightly from actual mobile device display. + Preview display can differ slightly from actual mobile device display. MobileDashboard_settings_duplicate_button @@ -878,4 +958,4 @@ Select comboboxes placeholder Select... - \ No newline at end of file + diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json b/projects/MobileDashboard/force-app/main/default/lwc/.eslintrc.json similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json rename to projects/MobileDashboard/force-app/main/default/lwc/.eslintrc.json diff --git a/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js new file mode 100644 index 0000000..e2beb07 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/__tests__/alertMessage.test.js @@ -0,0 +1,58 @@ +import { createElement } from "lwc"; +import AlertMessage from "c/alertMessage"; + +let element; +describe("c-alert-message", () => { + beforeEach(() => { + element = createElement("c-alert-message", { + is: AlertMessage + }); + + element.modalTitle = "Title of the Modal"; + element.message = "Body of the Modal"; + element.discardButtonText = "Cancel"; + element.handleDiscardClick = jest.fn(); + element.close = jest.fn(); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("has all correct info", () => { + element.isDeleteMsg = false; + document.body.appendChild(element); + + const title = element.shadowRoot.querySelector(".modal-header h2"); + expect(title.textContent).toBe("Title of the Modal"); + + const body = element.shadowRoot.querySelector(".message"); + expect(body.textContent).toBe("Body of the Modal"); + }); + + it("calls close with no parameters when cancel clicked", async () => { + element.isDeleteMsg = false; + document.body.appendChild(element); + + const action = element.shadowRoot.querySelector("lightning-button"); + action.click(); + return Promise.resolve().then(() => { + expect(element.close).toHaveBeenCalled(); + }); + }); + + it("calls close with true when ok clicked", async () => { + element.isDeleteMsg = true; + document.body.appendChild(element); + + const action = element.shadowRoot.querySelector( + "lightning-button.slds-var-m-left_x-small" + ); + action.click(); + return Promise.resolve().then(() => { + expect(element.close).toHaveBeenCalledWith(true); + }); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css new file mode 100644 index 0000000..81f681b --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.css @@ -0,0 +1,19 @@ +.modal-header { + display: flex; + justify-content: center; + align-items: center; + font-size: 20px; + font-weight: 400; + line-height: 30px; +} + +.message { + font-size: 13px; + font-weight: 400; + line-height: 20px; +} + +.error-icon { + margin-right: 8px; + --lwc-colorTextIconDefault: #ba0517; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html new file mode 100644 index 0000000..4978d61 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.html @@ -0,0 +1,33 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js similarity index 71% rename from MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js rename to projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js index 4d00ebd..d02cca3 100644 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js @@ -1,6 +1,6 @@ -import { api } from 'lwc'; -import LightningModal from 'lightning/modal'; -import customLabels from './labels'; +import { api } from "lwc"; +import LightningModal from "lightning/modal"; +import customLabels from "./labels"; export default class AlertMessage extends LightningModal { @api modalTitle; diff --git a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/alertMessage.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js new file mode 100644 index 0000000..17b438e --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/alertMessage/labels.js @@ -0,0 +1,7 @@ +import MobileDashboard_settings_delete_button from "@salesforce/label/c.MobileDashboard_settings_delete_button"; + +const customLabels = { + MobileDashboard_settings_delete_button +}; + +export default customLabels; diff --git a/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js new file mode 100644 index 0000000..282bb82 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/__tests__/basicFilter.test.js @@ -0,0 +1,224 @@ +/* eslint-disable @lwc/lwc/prefer-custom-event */ +import { createElement } from "lwc"; +import BasicFilter from "c/basicFilter"; + +let element; + +let fieldsCombo; +let operatorCombo; +let valueField; +let quantityField; +let unitCombo; + +jest.mock( + "@salesforce/apex/DashboardSettingsService.getAllPicklistOptions", + () => { + return { + default: jest.fn(() => [{ value: "option1", label: "Option 1" }]) + }; + }, + { virtual: true } +); + +describe("c-basic-filter", () => { + beforeEach(() => { + element = createElement("c-basic-filter", { + is: BasicFilter + }); + + element.objectValue = "Account"; + element.index = 0; + element.fieldsOptions = [ + { label: "My Email", value: "myEmail", type: "EMAIL" }, + { label: "My Reference", value: "myReference", type: "REFERENCE" }, + { label: "My Date", value: "myDate", type: "DATE" }, + { label: "My Boolean", value: "myBoolean", type: "BOOLEAN" }, + { label: "My Picklist", value: "myPicklist", type: "PICKLIST" } + ]; + element.field = ""; + element.operator = ""; + element.value = ""; + element.quantity = ""; + element.unit = ""; + element.updateSubFilter = jest.fn(); + + document.body.appendChild(element); + + fieldsCombo = element.shadowRoot.querySelector(".field-combo"); + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + valueField = element.shadowRoot.querySelector(".value-input"); + quantityField = element.shadowRoot.querySelector(".quantity-input"); + unitCombo = element.shadowRoot.querySelector(".unit-combo"); + + jest.useFakeTimers(); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("sets operators list correctly when selecting a date field", async () => { + fieldsCombo.value = "myDate"; + fieldsCombo.dispatchEvent(new Event("change")); + jest.runAllTimers(); + return Promise.resolve().then(() => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + expect(operatorCombo.label).toBe( + "c.MobileDashboard_basic_filter_date_operator" + ); + }); + }); + + it("sets qunatity and unit as visible when selecting a special operator", async () => { + expect(quantityField).toBeNull(); + expect(unitCombo).toBeNull(); + + fieldsCombo.value = "myDate"; + fieldsCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + operatorCombo.value = "next"; + operatorCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + quantityField = element.shadowRoot.querySelector(".quantity-input"); + unitCombo = element.shadowRoot.querySelector(".unit-combo"); + expect(quantityField).not.toBeNull(); + expect(unitCombo).not.toBeNull(); + }); + }); + }); + + it("sets operator as hidden if field is boolean", async () => { + expect(operatorCombo).not.toBeNull(); + + fieldsCombo.value = "myBoolean"; + fieldsCombo.dispatchEvent(new Event("change")); + jest.runAllTimers(); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + expect(operatorCombo).toBeNull(); + }); + }); + + it("sets operator as hidden if field is picklist", async () => { + expect(operatorCombo).not.toBeNull(); + + fieldsCombo.value = "myPicklist"; + fieldsCombo.dispatchEvent(new Event("change")); + jest.runAllTimers(); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + expect(operatorCombo).toBeNull(); + }); + }); + + it("sets value as hidden when selecting the today operator", async () => { + expect(valueField).not.toBeNull(); + + fieldsCombo.value = "myDate"; + fieldsCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + operatorCombo.value = "today"; + operatorCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + valueField = element.shadowRoot.querySelector(".value-input"); + expect(valueField).toBeNull(); + }); + }); + }); + + it("sets value input type as the field type", async () => { + expect(valueField).not.toBeNull(); + + fieldsCombo.value = "myEmail"; + fieldsCombo.dispatchEvent(new Event("change")); + jest.runAllTimers(); + return Promise.resolve().then(() => { + valueField = element.shadowRoot.querySelector(".value-input"); + expect(valueField.type).toBe("EMAIL"); + }); + }); + + it("sets value input type as text when selecting a non-supported field type", async () => { + expect(valueField).not.toBeNull(); + + fieldsCombo.value = "myReference"; + fieldsCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + valueField = element.shadowRoot.querySelector(".value-input"); + expect(valueField.type).toBe("text"); + }); + }); + + it("calls updateSubFilter when updating value", async () => { + expect(operatorCombo).not.toBeNull(); + + valueField.value = "abc"; + valueField.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + expect(element.updateSubFilter).toHaveBeenCalledWith(0, { value: "abc" }); + }); + }); + + it("calls updateSubFilter when updating quantity", async () => { + fieldsCombo.value = "myDate"; + fieldsCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + operatorCombo.value = "last"; + operatorCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + quantityField = element.shadowRoot.querySelector(".quantity-input"); + quantityField.value = "7"; + quantityField.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + expect(element.updateSubFilter).toHaveBeenCalledWith(0, { + quantity: "7" + }); + }); + }); + }); + }); + + it("calls updateSubFilter when updating unit", async () => { + fieldsCombo.value = "myDate"; + fieldsCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + operatorCombo = element.shadowRoot.querySelector(".operator-combo"); + operatorCombo.value = "last"; + operatorCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + unitCombo = element.shadowRoot.querySelector(".unit-combo"); + unitCombo.value = "day"; + unitCombo.dispatchEvent(new Event("change")); + return Promise.resolve().then(async () => { + expect(element.updateSubFilter).toHaveBeenCalledWith(0, { + unit: "day", + unitDisplay: "c.MobileDashboard_settings_card_display_unit_days" + }); + }); + }); + }); + }); + + it("return true from checkValidation when fields are valid", async () => { + fieldsCombo.validity = { valid: true }; + operatorCombo.validity = { valid: true }; + valueField.validity = { valid: true }; + + const isValid = element.checkValidation(); + expect(isValid).toBeTruthy(); + }); + + it("return false from checkValidation when fields are not valid", async () => { + fieldsCombo.validity = { valid: true }; + operatorCombo.validity = { valid: false }; + valueField.validity = { valid: false }; + + const isValid = element.checkValidation(); + expect(isValid).toBeFalsy(); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css new file mode 100644 index 0000000..97ca47f --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.css @@ -0,0 +1,18 @@ +.props-list { + display: flex; + flex-direction: row; +} + +lightning-combobox, +.quantity-input { + margin-right: 8px; +} + +.field-combo, +.value-input { + flex: 2; +} + +.operator-combo { + flex: 1; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html new file mode 100644 index 0000000..acbb148 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.html @@ -0,0 +1,103 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js similarity index 61% rename from MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js rename to projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js index ecef53d..9481a04 100644 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js @@ -1,6 +1,7 @@ -import { LightningElement, api } from 'lwc'; -import getAllPicklistOptions from '@salesforce/apex/DashboardSettingsService.getAllPicklistOptions'; -import customLabels from './labels'; +/* eslint-disable @lwc/lwc/no-api-reassignments */ +import { LightningElement, api } from "lwc"; +import getAllPicklistOptions from "@salesforce/apex/DashboardSettingsService.getAllPicklistOptions"; +import customLabels from "./labels"; export default class BasicFilter extends LightningElement { @api objectValue; @@ -17,20 +18,20 @@ export default class BasicFilter extends LightningElement { picklistOptions; SUPPORTED_INPUT_TYPES = [ - 'checkbox', - 'checkbox-button', - 'date', - 'datetime', - 'time', - 'email', - 'file', - 'password', - 'search', - 'tel', - 'url', - 'number', - 'text', - 'toggle', + "checkbox", + "checkbox-button", + "date", + "datetime", + "time", + "email", + "file", + "password", + "search", + "tel", + "url", + "number", + "text", + "toggle" ]; connectedCallback() { @@ -40,15 +41,15 @@ export default class BasicFilter extends LightningElement { @api checkValidation() { let isValid = true; - const combos = this.template.querySelectorAll('lightning-combobox'); - const inputs = this.template.querySelectorAll('lightning-input'); + const combos = this.template.querySelectorAll("lightning-combobox"); + const inputs = this.template.querySelectorAll("lightning-input"); const all = [...combos, ...inputs]; all.forEach((i) => { if (!i.validity.valid) { i.focus(); i.blur(); - i.classList.add('slds-has-error'); + i.classList.add("slds-has-error"); isValid = false; } }); @@ -67,41 +68,53 @@ export default class BasicFilter extends LightningElement { } get isFieldTypeDate() { - return this.filterFieldType === 'DATE' || this.filterFieldType === 'DATETIME'; + return ( + this.filterFieldType === "DATE" || this.filterFieldType === "DATETIME" + ); } get isFieldTypePicklist() { - return this.filterFieldType === 'PICKLIST'; + return this.filterFieldType === "PICKLIST"; } get isFieldTypeBoolean() { - return this.filterFieldType === 'BOOLEAN'; + return this.filterFieldType === "BOOLEAN"; } get isFieldTypeRegular() { return ( - (!this.isFieldTypeBoolean && !this.isFieldTypePicklist && !this.isFieldTypeDate) || + (!this.isFieldTypeBoolean && + !this.isFieldTypePicklist && + !this.isFieldTypeDate) || (this.isFieldTypeDate && !this.isSpecialOperator) ); } onFilterFieldChange = (e) => { - this.value = this.quantity = this.unit = this.unitDisplay = ''; + this.value = this.quantity = this.unit = this.unitDisplay = ""; const selectedField = e.target.value; + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { this.field = selectedField; - this.operator = this.isFieldNoOperator ? 'eq' : this.isFieldTypeDate ? 'today' : 'eq'; + this.operator = this.isFieldNoOperator + ? "eq" + : this.isFieldTypeDate + ? "today" + : "eq"; this.refreshPicklistOptions(this.field); this.updateSubFilter(this.index, { field: this.field, - fieldDisplay: this.fieldsOptions?.find((opt) => opt.value === this.field)?.label, - fieldType: this.fieldsOptions?.find((opt) => opt.value === this.field)?.type, - value: this.isFieldTypeBoolean ? true : '', + fieldDisplay: this.fieldsOptions?.find( + (opt) => opt.value === this.field + )?.label, + fieldType: this.fieldsOptions?.find((opt) => opt.value === this.field) + ?.type, + value: this.isFieldTypeBoolean ? true : "", operator: this.operator, operatorDisplay: this.getOperatorDisplay(), - quantity: '', - unit: '', - unitDisplay: '', + quantity: "", + unit: "", + unitDisplay: "" }); }, 0); }; @@ -113,11 +126,15 @@ export default class BasicFilter extends LightningElement { } get showDefaultOperator() { - return !this.isFieldTypeBoolean && !this.isFieldTypePicklist && !this.isFieldTypeDate; + return ( + !this.isFieldTypeBoolean && + !this.isFieldTypePicklist && + !this.isFieldTypeDate + ); } get isSpecialOperator() { - return ['today', 'last', 'next'].includes(this.operator); + return ["today", "last", "next"].includes(this.operator); } get isFieldNoOperator() { @@ -128,39 +145,40 @@ export default class BasicFilter extends LightningElement { return [ { label: this.LABELS.MobileDashboard_basic_filter_operator_equals, - value: 'eq', - display: '=', + value: "eq", + display: "=" }, { label: this.LABELS.MobileDashboard_basic_filter_operator_not_equal, - value: 'ne', - display: '≠', + value: "ne", + display: "≠" }, { label: this.LABELS.MobileDashboard_basic_filter_operator_less_than, - value: 'lt', - display: '<', + value: "lt", + display: "<" }, { label: this.LABELS.MobileDashboard_basic_filter_operator_greater_than, - value: 'gt', - display: '>', + value: "gt", + display: ">" }, { label: this.LABELS.MobileDashboard_basic_filter_operator_less_or_equal, - value: 'lte', - display: '≤', + value: "lte", + display: "≤" }, { - label: this.LABELS.MobileDashboard_basic_filter_operator_greater_or_equal, - value: 'gte', - display: '≥', + label: + this.LABELS.MobileDashboard_basic_filter_operator_greater_or_equal, + value: "gte", + display: "≥" }, { label: this.LABELS.MobileDashboard_basic_filter_operator_contains, - value: 'like', - display: this.LABELS.MobileDashboard_basic_filter_operator_contains, - }, + value: "like", + display: this.LABELS.MobileDashboard_basic_filter_operator_contains + } ]; } @@ -168,49 +186,56 @@ export default class BasicFilter extends LightningElement { return [ { label: this.LABELS.MobileDashboard_basic_filter_date_type_today, - value: 'today', - display: this.LABELS.MobileDashboard_settings_card_display_operator_today, + value: "today", + display: + this.LABELS.MobileDashboard_settings_card_display_operator_today }, { label: this.LABELS.MobileDashboard_basic_filter_date_type_next, - value: 'next', - display: this.LABELS.MobileDashboard_settings_card_display_operator_next, + value: "next", + display: this.LABELS.MobileDashboard_settings_card_display_operator_next }, { label: this.LABELS.MobileDashboard_basic_filter_date_type_last, - value: 'last', - display: this.LABELS.MobileDashboard_settings_card_display_operator_last, + value: "last", + display: this.LABELS.MobileDashboard_settings_card_display_operator_last + }, + { + label: this.LABELS.MobileDashboard_basic_filter_date_type_on, + value: "eq", + display: "=" }, - { label: this.LABELS.MobileDashboard_basic_filter_date_type_on, value: 'eq', display: '=' }, { label: this.LABELS.MobileDashboard_basic_filter_date_type_before, - value: 'lt', - display: '<', + value: "lt", + display: "<" }, { label: this.LABELS.MobileDashboard_basic_filter_date_type_after, - value: 'gt', - display: '>', - }, + value: "gt", + display: ">" + } ]; } getOperatorDisplay() { return ( - this.isFieldTypeDate ? this.dateFilterOperatorOptions : this.filterOperatorOptions + this.isFieldTypeDate + ? this.dateFilterOperatorOptions + : this.filterOperatorOptions )?.find((opt) => opt.value === this.operator)?.display; } onFilterOperatorChange = (e) => { this.operator = e.target.value; - this.value = this.quantity = this.unit = ''; + this.value = this.quantity = this.unit = ""; this.updateSubFilter(this.index, { operator: this.operator, operatorDisplay: this.getOperatorDisplay(), - value: '', - quantity: '', - unit: '', - unitDisplay: '', + value: "", + quantity: "", + unit: "", + unitDisplay: "" }); }; @@ -221,19 +246,21 @@ export default class BasicFilter extends LightningElement { } get showValueField() { - return this.operator !== 'today'; + return this.operator !== "today"; } get valueFieldType() { - if (this.SUPPORTED_INPUT_TYPES.includes(this.filterFieldType?.toLowerCase())) { + if ( + this.SUPPORTED_INPUT_TYPES.includes(this.filterFieldType?.toLowerCase()) + ) { return this.filterFieldType; } - return 'text'; + return "text"; } get fieldInputLabel() { - return this.filterFieldType === 'DATETIME' - ? '' + return this.filterFieldType === "DATETIME" + ? "" : this.LABELS.MobileDashboard_basic_filter_value; } @@ -244,12 +271,18 @@ export default class BasicFilter extends LightningElement { async refreshPicklistOptions(field) { if (!field) return; if (!this.filterFieldType) { + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { this.refreshPicklistOptions(field); }, 500); } else if (this.isFieldTypePicklist) { - const allOptions = await getAllPicklistOptions({ obj: this.objectValue, field }); - this.picklistOptions = allOptions.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)); + const allOptions = await getAllPicklistOptions({ + obj: this.objectValue, + field + }); + this.picklistOptions = allOptions.sort((f1, f2) => { + return f1.label < f2.label ? -1 : 1; + }); } else { this.picklistOptions = []; } @@ -269,7 +302,7 @@ export default class BasicFilter extends LightningElement { onFilterQuantityChange = (e) => { this.quantity = e.target.value; this.updateSubFilter(this.index, { - quantity: this.quantity, + quantity: this.quantity }); }; @@ -283,31 +316,32 @@ export default class BasicFilter extends LightningElement { return [ { label: this.LABELS.MobileDashboard_settings_card_display_unit_days, - value: 'day', - display: this.LABELS.MobileDashboard_settings_card_display_unit_days, + value: "day", + display: this.LABELS.MobileDashboard_settings_card_display_unit_days }, { label: this.LABELS.MobileDashboard_settings_card_display_unit_weeks, - value: 'week', - display: this.LABELS.MobileDashboard_settings_card_display_unit_weeks, + value: "week", + display: this.LABELS.MobileDashboard_settings_card_display_unit_weeks }, { label: this.LABELS.MobileDashboard_settings_card_display_unit_months, - value: 'month', - display: this.LABELS.MobileDashboard_settings_card_display_unit_months, - }, + value: "month", + display: this.LABELS.MobileDashboard_settings_card_display_unit_months + } ]; } getUnitDisplay() { - return this.filterUnitValueOptions?.find((opt) => opt.value === this.unit)?.display; + return this.filterUnitValueOptions?.find((opt) => opt.value === this.unit) + ?.display; } onFilterUnitChange = (e) => { this.unit = e.target.value; this.updateSubFilter(this.index, { unit: this.unit, - unitDisplay: this.getUnitDisplay(), + unitDisplay: this.getUnitDisplay() }); }; } diff --git a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/basicFilter.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js new file mode 100644 index 0000000..ead3dd0 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/basicFilter/labels.js @@ -0,0 +1,55 @@ +import MobileDashboard_basic_filter_field from "@salesforce/label/c.MobileDashboard_basic_filter_field"; +import MobileDashboard_settings_select_placeholder from "@salesforce/label/c.MobileDashboard_settings_select_placeholder"; +import MobileDashboard_basic_filter_operator from "@salesforce/label/c.MobileDashboard_basic_filter_operator"; +import MobileDashboard_basic_filter_operator_equals from "@salesforce/label/c.MobileDashboard_basic_filter_operator_equals"; +import MobileDashboard_basic_filter_operator_not_equal from "@salesforce/label/c.MobileDashboard_basic_filter_operator_not_equal"; +import MobileDashboard_basic_filter_operator_less_than from "@salesforce/label/c.MobileDashboard_basic_filter_operator_less_than"; +import MobileDashboard_basic_filter_operator_greater_than from "@salesforce/label/c.MobileDashboard_basic_filter_operator_greater_than"; +import MobileDashboard_basic_filter_operator_less_or_equal from "@salesforce/label/c.MobileDashboard_basic_filter_operator_less_or_equal"; +import MobileDashboard_basic_filter_operator_greater_or_equal from "@salesforce/label/c.MobileDashboard_basic_filter_operator_greater_or_equal"; +import MobileDashboard_basic_filter_operator_contains from "@salesforce/label/c.MobileDashboard_basic_filter_operator_contains"; +import MobileDashboard_basic_filter_date_operator from "@salesforce/label/c.MobileDashboard_basic_filter_date_operator"; +import MobileDashboard_basic_filter_date_type_today from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_today"; +import MobileDashboard_basic_filter_date_type_last from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_last"; +import MobileDashboard_basic_filter_date_type_next from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_next"; +import MobileDashboard_basic_filter_date_type_on from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_on"; +import MobileDashboard_basic_filter_date_type_before from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_before"; +import MobileDashboard_basic_filter_date_type_after from "@salesforce/label/c.MobileDashboard_basic_filter_date_type_after"; +import MobileDashboard_settings_card_display_operator_today from "@salesforce/label/c.MobileDashboard_settings_card_display_operator_today"; +import MobileDashboard_settings_card_display_operator_next from "@salesforce/label/c.MobileDashboard_settings_card_display_operator_next"; +import MobileDashboard_settings_card_display_operator_last from "@salesforce/label/c.MobileDashboard_settings_card_display_operator_last"; +import MobileDashboard_settings_card_display_unit_days from "@salesforce/label/c.MobileDashboard_settings_card_display_unit_days"; +import MobileDashboard_settings_card_display_unit_weeks from "@salesforce/label/c.MobileDashboard_settings_card_display_unit_weeks"; +import MobileDashboard_settings_card_display_unit_months from "@salesforce/label/c.MobileDashboard_settings_card_display_unit_months"; +import MobileDashboard_basic_filter_value from "@salesforce/label/c.MobileDashboard_basic_filter_value"; +import MobileDashboard_basic_filter_unit from "@salesforce/label/c.MobileDashboard_basic_filter_unit"; + +const customLabels = { + MobileDashboard_basic_filter_field, + MobileDashboard_settings_select_placeholder, + MobileDashboard_basic_filter_operator, + MobileDashboard_basic_filter_operator_equals, + MobileDashboard_basic_filter_operator_not_equal, + MobileDashboard_basic_filter_operator_less_than, + MobileDashboard_basic_filter_operator_greater_than, + MobileDashboard_basic_filter_operator_less_or_equal, + MobileDashboard_basic_filter_operator_greater_or_equal, + MobileDashboard_basic_filter_operator_contains, + MobileDashboard_basic_filter_date_operator, + MobileDashboard_basic_filter_date_type_today, + MobileDashboard_basic_filter_date_type_next, + MobileDashboard_basic_filter_date_type_last, + MobileDashboard_basic_filter_date_type_on, + MobileDashboard_basic_filter_date_type_before, + MobileDashboard_basic_filter_date_type_after, + MobileDashboard_settings_card_display_operator_today, + MobileDashboard_settings_card_display_operator_next, + MobileDashboard_settings_card_display_operator_last, + MobileDashboard_settings_card_display_unit_days, + MobileDashboard_settings_card_display_unit_weeks, + MobileDashboard_settings_card_display_unit_months, + MobileDashboard_basic_filter_value, + MobileDashboard_basic_filter_unit +}; + +export default customLabels; diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js new file mode 100644 index 0000000..bdf0be8 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/__tests__/dashboardAddButton.test.js @@ -0,0 +1,35 @@ +import { createElement } from "lwc"; +import DashboardAddButton from "c/dashboardAddButton"; + +let element; +describe("c-dashboard-add-button", () => { + beforeEach(() => { + element = createElement("c-add-button", { + is: DashboardAddButton + }); + + element.label = "Button label"; + element.handleAddClick = jest.fn(); + element.disabled = false; + document.body.appendChild(element); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("shows correct label", () => { + const label = element.shadowRoot.querySelector("lightning-button"); + expect(label.title).toBe("Button label"); + }); + + it("calls function when clicked", async () => { + const action = element.shadowRoot.querySelector("lightning-button"); + action.click(); + return Promise.resolve().then(() => { + expect(element.handleAddClick).toHaveBeenCalled(); + }); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html new file mode 100644 index 0000000..e11018d --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.html @@ -0,0 +1,12 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js similarity index 73% rename from MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js index f4c4dc8..6bb0dab 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class DashboardAddButton extends LightningElement { @api label; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardAddButton/dashboardAddButton.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js new file mode 100644 index 0000000..e4a147f --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/__tests__/dashboardIconsPicker.test.js @@ -0,0 +1,30 @@ +import { createElement } from "lwc"; +import DashboardIconsPicker from "c/dashboardIconsPicker"; + +let element; +describe("c-dashboard-icons-picker", () => { + beforeEach(() => { + element = createElement("c-dashboard-icons-picker", { + is: DashboardIconsPicker + }); + + element.setIcon = jest.fn(); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("calls setIcon when an icon selected", async () => { + element.selectedIcon = ""; + document.body.appendChild(element); + + const action = element.shadowRoot.querySelector("lightning-menu-item"); + action.click(); + return Promise.resolve().then(() => { + expect(element.setIcon).toHaveBeenCalledWith("utility:info"); + }); + }); +}); diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.css b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.css similarity index 100% rename from MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.css rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.css diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html new file mode 100644 index 0000000..3ec7f69 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.html @@ -0,0 +1,22 @@ + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js new file mode 100644 index 0000000..0b2af4a --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js @@ -0,0 +1,148 @@ +/* eslint-disable @lwc/lwc/no-api-reassignments */ +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; + +export default class DashboardIconsPicker extends LightningElement { + @api selectedIcon; + @api setIcon; + + LABELS = customLabels; + + iconGroups = [ + { + label: this.LABELS.MobileDashboard_icons_list_subtitle_status, + icons: [ + { + label: this.LABELS.MobileDashboard_icons_list_info, + name: "utility:info" + }, + { + label: this.LABELS.MobileDashboard_icons_list_success, + name: "utility:success" + }, + { + label: this.LABELS.MobileDashboard_icons_list_warning, + name: "utility:warning" + }, + { + label: this.LABELS.MobileDashboard_icons_list_error, + name: "utility:error" + }, + { + label: this.LABELS.MobileDashboard_icons_list_new, + name: "utility:routing_offline" + }, + { + label: this.LABELS.MobileDashboard_icons_list_in_progress, + name: "utility:away" + }, + { + label: this.LABELS.MobileDashboard_icons_list_cannot_complete, + name: "utility:ban" + } + ] + }, + { + label: this.LABELS.MobileDashboard_icons_list_subtitle_sentiment, + icons: [ + { + label: this.LABELS.MobileDashboard_icons_list_positive, + name: "utility:emoji" + }, + { + label: this.LABELS.MobileDashboard_icons_list_neutral, + name: "utility:sentiment_neutral" + }, + { + label: this.LABELS.MobileDashboard_icons_list_negative, + name: "utility:sentiment_negative" + } + ] + }, + { + label: this.LABELS.MobileDashboard_icons_list_subtitle_record_types, + icons: [ + { + label: this.LABELS.MobileDashboard_icons_list_case, + name: "utility:case" + }, + { + label: this.LABELS.MobileDashboard_icons_list_lead, + name: "utility:lead" + }, + { + label: this.LABELS.MobileDashboard_icons_list_opportunity, + name: "utility:opportunity" + }, + { + label: this.LABELS.MobileDashboard_icons_list_quote, + name: "utility:quote" + } + ] + }, + { + label: this.LABELS.MobileDashboard_icons_list_subtitle_other, + icons: [ + { + label: this.LABELS.MobileDashboard_icons_list_approval, + name: "utility:approval" + }, + { + label: this.LABELS.MobileDashboard_icons_list_clock, + name: "utility:clock" + }, + { + label: this.LABELS.MobileDashboard_icons_list_event, + name: "utility:event" + }, + { + label: this.LABELS.MobileDashboard_icons_list_favorite, + name: "utility:favorite" + }, + { + label: this.LABELS.MobileDashboard_icons_list_like, + name: "utility:like" + }, + { + label: this.LABELS.MobileDashboard_icons_list_dislike, + name: "utility:dislike" + }, + { + label: this.LABELS.MobileDashboard_icons_list_location, + name: "utility:checkin" + }, + { + label: this.LABELS.MobileDashboard_icons_list_priority, + name: "utility:priority" + }, + { + label: this.LABELS.MobileDashboard_icons_list_user, + name: "utility:user" + }, + { + label: this.LABELS.MobileDashboard_icons_list_people, + name: "utility:people" + } + ] + } + ]; + + handleIconClick = (e) => { + this.selectedIcon = e.target.value; + this.setIcon(this.selectedIcon); + }; + + get selectedIconLabel() { + const icon = this.iconGroups + .flatMap((group) => group.icons) + .find((icn) => icn.name === this.selectedIcon); + return icon ? icon.label : null; + } + + get menuLabel() { + return ( + this.selectedIconLabel ?? + this.LABELS.MobileDashboard_settings_select_placeholder + ); + } +} diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/dashboardIconsPicker.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js new file mode 100644 index 0000000..4877ecf --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardIconsPicker/labels.js @@ -0,0 +1,65 @@ +import MobileDashboard_sub_filter_icon_field from "@salesforce/label/c.MobileDashboard_sub_filter_icon_field"; +import MobileDashboard_settings_select_placeholder from "@salesforce/label/c.MobileDashboard_settings_select_placeholder"; +import MobileDashboard_icons_list_subtitle_status from "@salesforce/label/c.MobileDashboard_icons_list_subtitle_status"; +import MobileDashboard_icons_list_info from "@salesforce/label/c.MobileDashboard_icons_list_info"; +import MobileDashboard_icons_list_success from "@salesforce/label/c.MobileDashboard_icons_list_success"; +import MobileDashboard_icons_list_warning from "@salesforce/label/c.MobileDashboard_icons_list_warning"; +import MobileDashboard_icons_list_error from "@salesforce/label/c.MobileDashboard_icons_list_error"; +import MobileDashboard_icons_list_new from "@salesforce/label/c.MobileDashboard_icons_list_new"; +import MobileDashboard_icons_list_in_progress from "@salesforce/label/c.MobileDashboard_icons_list_in_progress"; +import MobileDashboard_icons_list_cannot_complete from "@salesforce/label/c.MobileDashboard_icons_list_cannot_complete"; +import MobileDashboard_icons_list_subtitle_sentiment from "@salesforce/label/c.MobileDashboard_icons_list_subtitle_sentiment"; +import MobileDashboard_icons_list_positive from "@salesforce/label/c.MobileDashboard_icons_list_positive"; +import MobileDashboard_icons_list_neutral from "@salesforce/label/c.MobileDashboard_icons_list_neutral"; +import MobileDashboard_icons_list_negative from "@salesforce/label/c.MobileDashboard_icons_list_negative"; +import MobileDashboard_icons_list_subtitle_record_types from "@salesforce/label/c.MobileDashboard_icons_list_subtitle_record_types"; +import MobileDashboard_icons_list_case from "@salesforce/label/c.MobileDashboard_icons_list_case"; +import MobileDashboard_icons_list_lead from "@salesforce/label/c.MobileDashboard_icons_list_lead"; +import MobileDashboard_icons_list_opportunity from "@salesforce/label/c.MobileDashboard_icons_list_opportunity"; +import MobileDashboard_icons_list_quote from "@salesforce/label/c.MobileDashboard_icons_list_quote"; +import MobileDashboard_icons_list_subtitle_other from "@salesforce/label/c.MobileDashboard_icons_list_subtitle_other"; +import MobileDashboard_icons_list_approval from "@salesforce/label/c.MobileDashboard_icons_list_approval"; +import MobileDashboard_icons_list_clock from "@salesforce/label/c.MobileDashboard_icons_list_clock"; +import MobileDashboard_icons_list_event from "@salesforce/label/c.MobileDashboard_icons_list_event"; +import MobileDashboard_icons_list_favorite from "@salesforce/label/c.MobileDashboard_icons_list_favorite"; +import MobileDashboard_icons_list_like from "@salesforce/label/c.MobileDashboard_icons_list_like"; +import MobileDashboard_icons_list_dislike from "@salesforce/label/c.MobileDashboard_icons_list_dislike"; +import MobileDashboard_icons_list_location from "@salesforce/label/c.MobileDashboard_icons_list_location"; +import MobileDashboard_icons_list_priority from "@salesforce/label/c.MobileDashboard_icons_list_priority"; +import MobileDashboard_icons_list_user from "@salesforce/label/c.MobileDashboard_icons_list_user"; +import MobileDashboard_icons_list_people from "@salesforce/label/c.MobileDashboard_icons_list_people"; + +const customLabels = { + MobileDashboard_sub_filter_icon_field, + MobileDashboard_settings_select_placeholder, + MobileDashboard_icons_list_subtitle_status, + MobileDashboard_icons_list_info, + MobileDashboard_icons_list_success, + MobileDashboard_icons_list_warning, + MobileDashboard_icons_list_error, + MobileDashboard_icons_list_new, + MobileDashboard_icons_list_in_progress, + MobileDashboard_icons_list_cannot_complete, + MobileDashboard_icons_list_subtitle_sentiment, + MobileDashboard_icons_list_positive, + MobileDashboard_icons_list_neutral, + MobileDashboard_icons_list_negative, + MobileDashboard_icons_list_subtitle_record_types, + MobileDashboard_icons_list_case, + MobileDashboard_icons_list_lead, + MobileDashboard_icons_list_opportunity, + MobileDashboard_icons_list_quote, + MobileDashboard_icons_list_subtitle_other, + MobileDashboard_icons_list_approval, + MobileDashboard_icons_list_clock, + MobileDashboard_icons_list_event, + MobileDashboard_icons_list_favorite, + MobileDashboard_icons_list_like, + MobileDashboard_icons_list_dislike, + MobileDashboard_icons_list_location, + MobileDashboard_icons_list_priority, + MobileDashboard_icons_list_user, + MobileDashboard_icons_list_people +}; + +export default customLabels; diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js new file mode 100644 index 0000000..70cc886 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/__tests__/dashboardSettingsCard.test.js @@ -0,0 +1,150 @@ +import { createElement } from "lwc"; +import DashboardSettingsCard from "c/dashboardSettingsCard"; + +jest.mock( + "./labels", + () => { + return { + MobileDashboard_card_filter_titleTime: "test" + }; + }, + { virtual: true } +); + +let element; +describe("c-dashboard-settings-card", () => { + beforeEach(() => { + element = createElement("c-dashboard-settings-card", { + is: DashboardSettingsCard + }); + + element.index = 0; + element.card = { + index: 1, + title: "card title", + object: { label: "Account" }, + filter: { + conditionLogic: "AND", + subFilters: [ + { + key: "rwn1ft", + fieldDisplay: "Time Sheet End Date", + value: "", + unitDisplay: "days", + quantity: "14", + operatorDisplay: "last" + }, + { + key: "131fda", + fieldDisplay: "Time Sheet Start Date", + value: "", + unitDisplay: "weeks", + quantity: "1", + operatorDisplay: "last" + } + ] + }, + subFilters: [ + { + key: "rwn1fa", + fieldDisplay: "Time Sheet End Date", + value: "", + unitDisplay: "days", + quantity: "14", + operatorDisplay: "last" + }, + { + key: "131fdb", + fieldDisplay: "Time Sheet Start Date", + value: "", + unitDisplay: "weeks", + quantity: "1", + operatorDisplay: "last" + } + ], + layout: "SIDE" + }; + element.handleEditCardClick = jest.fn(); + element.moveCardUp = jest.fn(); + element.moveCardDown = jest.fn(); + element.duplicateCard = jest.fn(); + element.deleteCard = jest.fn(); + + document.body.appendChild(element); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("should have correct title", () => { + const title = element.shadowRoot.querySelector(".title"); + expect(title.textContent).toBe(`1card title`); + }); + + it("should have correct criteria text", () => { + const filterSection = + element.shadowRoot.querySelectorAll(".details-section")[1]; + const text = filterSection.textContent + .replace("c.MobileDashboard_card_filter_title", "Filter") + .replace("c.MobileDashboard_settings_card_display_logic_and", "AND"); + expect(text).toBe( + `FilterTime Sheet End Date last 14 daysAND\u00A0\u00A0\u00A0Time Sheet Start Date last 1 weeks` + ); + }); + + it("should call moveCardUp when edit clicked", async () => { + const actionGroup = element.shadowRoot.querySelectorAll( + "lightning-button-group" + )[0]; + const action = actionGroup.querySelectorAll("lightning-button-icon")[0]; + action.click(); + return Promise.resolve().then(() => { + expect(element.moveCardUp).toHaveBeenCalled(); + }); + }); + + it("should call moveCardDown when edit clicked", async () => { + const actionGroup = element.shadowRoot.querySelectorAll( + "lightning-button-group" + )[0]; + const action = actionGroup.querySelectorAll("lightning-button-icon")[1]; + action.click(); + return Promise.resolve().then(() => { + expect(element.moveCardDown).toHaveBeenCalled(); + }); + }); + + it("should call handleEditCardClick when edit clicked", async () => { + const actionGroup = element.shadowRoot.querySelectorAll( + "lightning-button-group" + )[1]; + const action = actionGroup.querySelector("lightning-button"); + action.click(); + return Promise.resolve().then(() => { + expect(element.handleEditCardClick).toHaveBeenCalled(); + }); + }); + + it("should call duplicateCard when duplicate clicked", async () => { + const action = element.shadowRoot.querySelectorAll( + "lightning-menu-item" + )[0]; + action.click(); + return Promise.resolve().then(() => { + expect(element.duplicateCard).toHaveBeenCalled(); + }); + }); + + it("should call deleteCard when delete clicked", async () => { + const action = element.shadowRoot.querySelectorAll( + "lightning-menu-item" + )[1]; + action.click(); + return Promise.resolve().then(() => { + expect(element.deleteCard).toHaveBeenCalled(); + }); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css new file mode 100644 index 0000000..d1409bd --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.css @@ -0,0 +1,89 @@ +lightning-card { + width: 100%; +} + +.card-details { + width: 100%; + border: 1px solid #c9c9c9; + border-radius: 0.25rem; + margin-bottom: 16px; +} + +.details-header { + width: 100%; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 12px; + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.title { + display: flex; + flex-direction: row; + align-items: center; + font-size: 16px; +} + +.number { + width: 32px; + height: 32px; + border-radius: 16px; + background-color: #d8e6fe; + display: flex; + align-items: center; + justify-content: center; + margin-right: 16px; +} + +.number p { + font-weight: 700; + font-size: 18px; + line-height: 27px; +} + +lightning-button-menu { + background: white; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.details-body { + display: flex; + flex-direction: row; + justify-content: space-between; + padding: 16px; +} + +.details { + display: flex; + flex-direction: column; +} + +.details-section { + margin-bottom: 16px; +} + +h3 { + font-size: 12px; + font-weight: 700; + line-height: 23px; + margin-bottom: 8px; +} + +.details-section p { + font-size: 13px; + line-height: 20px; +} + +.preview { + width: 370px; +} + +lightning-helptext { + margin-left: 8px; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html new file mode 100644 index 0000000..0f4d721 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.html @@ -0,0 +1,84 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js similarity index 77% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js index 88d9a55..aa1f770 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js @@ -1,5 +1,5 @@ -import { LightningElement, api } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class DashboardSettingsCard extends LightningElement { @api index; @@ -36,19 +36,19 @@ export default class DashboardSettingsCard extends LightningElement { let mainFilters = JSON.parse(JSON.stringify(this.card.filter.subFilters)); return mainFilters.map((f, i) => { const start = this.getLogicDisplayText(i); - const body = `${f.fieldDisplay} ${this.addEquals(f.operator)} ${f.operatorDisplay} ${ - f.value ?? '' - } ${f.quantity ?? ''} ${f.unitDisplay ?? ''}`; + const body = `${f.fieldDisplay} ${this.addEquals(f.operator)} ${ + f.operatorDisplay + } ${f.value ?? ""} ${f.quantity ?? ""} ${f.unitDisplay ?? ""}`; return { key: f.key, displayText: `${start}${body}` }; }); } get isCustomLogic() { - return this.card.filter.conditionLogic === 'CUSTOM'; + return this.card.filter.conditionLogic === "CUSTOM"; } get conditionLogicText() { - return this.card.filter.conditionLogic === 'AND' + return this.card.filter.conditionLogic === "AND" ? this.LABELS.MobileDashboard_settings_card_display_logic_and : this.LABELS.MobileDashboard_settings_card_display_logic_or; } @@ -67,12 +67,12 @@ export default class DashboardSettingsCard extends LightningElement { getLogicDisplayText(ind) { if (this.isCustomLogic) return `${ind + 1}\u00A0\u00A0\u00A0`; - if (ind === 0) return ''; - else return `${this.conditionLogicText}\u00A0\u00A0\u00A0`; + if (ind === 0) return ""; + return `${this.conditionLogicText}\u00A0\u00A0\u00A0`; } addEquals(operator) { - return operator && ['today', 'next', 'last'].includes(operator) ? '=' : ''; + return operator && ["today", "next", "last"].includes(operator) ? "=" : ""; } get previewSettings() { @@ -82,14 +82,14 @@ export default class DashboardSettingsCard extends LightningElement { subQueriesData.push({ index, count: 1, - ...subFilter, + ...subFilter }); } return { Layout__c: this.card.layout, Title__c: this.card.title, - subQueriesData, + subQueriesData }; } } diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/dashboardSettingsCard.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js new file mode 100644 index 0000000..0e258cf --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsCard/labels.js @@ -0,0 +1,29 @@ +import MobileDashboard_settings_card_edit_button from "@salesforce/label/c.MobileDashboard_settings_card_edit_button"; +import MobileDashboard_settings_duplicate_button from "@salesforce/label/c.MobileDashboard_settings_duplicate_button"; +import MobileDashboard_settings_delete_button from "@salesforce/label/c.MobileDashboard_settings_delete_button"; +import MobileDashboard_settings_card_arrow_move_up from "@salesforce/label/c.MobileDashboard_settings_card_arrow_move_up"; +import MobileDashboard_settings_card_arrow_move_dn from "@salesforce/label/c.MobileDashboard_settings_card_arrow_move_dn"; +import MobileDashboard_settings_card_arrow_more_options from "@salesforce/label/c.MobileDashboard_settings_card_arrow_more_options"; +import MobileDashboard_card_object_field from "@salesforce/label/c.MobileDashboard_card_object_field"; +import MobileDashboard_card_filter_title from "@salesforce/label/c.MobileDashboard_card_filter_title"; +import MobileDashboard_preview_title from "@salesforce/label/c.MobileDashboard_preview_title"; +import MobileDashboard_preview_title_infobubble from "@salesforce/label/c.MobileDashboard_preview_title_infobubble"; +import MobileDashboard_settings_card_display_logic_and from "@salesforce/label/c.MobileDashboard_settings_card_display_logic_and"; +import MobileDashboard_settings_card_display_logic_or from "@salesforce/label/c.MobileDashboard_settings_card_display_logic_or"; + +const customLabels = { + MobileDashboard_settings_card_edit_button, + MobileDashboard_settings_duplicate_button, + MobileDashboard_settings_delete_button, + MobileDashboard_settings_card_arrow_move_up, + MobileDashboard_settings_card_arrow_move_dn, + MobileDashboard_settings_card_arrow_more_options, + MobileDashboard_card_object_field, + MobileDashboard_card_filter_title, + MobileDashboard_preview_title, + MobileDashboard_preview_title_infobubble, + MobileDashboard_settings_card_display_logic_and, + MobileDashboard_settings_card_display_logic_or +}; + +export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js similarity index 62% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js index 3f436ed..9bcaa9b 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/__tests__/dashboardSettingsMain.test.js @@ -1,45 +1,45 @@ -import { createElement } from 'lwc'; -import DashboardSettingsMain from 'c/dashboardSettingsMain'; -import { graphql } from 'lightning/uiGraphQLApi'; +import { createElement } from "lwc"; +import DashboardSettingsMain from "c/dashboardSettingsMain"; +import { graphql } from "lightning/uiGraphQLApi"; jest.mock( - '@salesforce/apex/DashboardSettingsService.getAllObjLabels', + "@salesforce/apex/DashboardSettingsService.getAllObjLabels", () => { return { default: jest.fn(() => ({ - Asset: 'Asset', - ServiceAppointment: 'Service Appointment', - })), + Asset: "Asset", + ServiceAppointment: "Service Appointment" + })) }; }, { virtual: true } ); jest.mock( - '@salesforce/apex/DashboardSettingsService.insertNewCard', + "@salesforce/apex/DashboardSettingsService.insertNewCard", () => { return { - default: jest.fn(() => 1), + default: jest.fn(() => 1) }; }, { virtual: true } ); jest.mock( - '@salesforce/apex/DashboardSettingsService.updateCardsOrder', + "@salesforce/apex/DashboardSettingsService.updateCardsOrder", () => { return { - default: jest.fn(), + default: jest.fn() }; }, { virtual: true } ); let element; -describe('c-dashboard-settings-main', () => { +describe("c-dashboard-settings-main", () => { beforeEach(() => { - element = createElement('c-dashboard-settings-main', { - is: DashboardSettingsMain, + element = createElement("c-dashboard-settings-main", { + is: DashboardSettingsMain }); document.body.appendChild(element); @@ -51,69 +51,69 @@ describe('c-dashboard-settings-main', () => { edges: [ { node: { - Id: 'a0oRO0000005xCYYAY', + Id: "a0oRO0000005xCYYAY", Object_Name__c: { - value: 'ServiceAppointment', + value: "ServiceAppointment" }, Title__c: { - value: 'My Upcoming Service Appointments', + value: "My Upcoming Service Appointments" }, Main_Filter__c: { value: - '[{"key":"hog03n","field":"SchedStartTime","fieldDisplay":"Scheduled Start","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"16","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]', + '[{"key":"hog03n","field":"SchedStartTime","fieldDisplay":"Scheduled Start","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"16","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]' }, Main_Filter_Logic__c: { - value: 'AND', + value: "AND" }, Custom_Logic__c: { - value: null, + value: null }, Layout__c: { - value: 'STACK', + value: "STACK" }, Sub_Filters__c: { value: - '[{"key":"hhrget","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Scheduled","unit":"","unitDisplay":"","quantity":"","label":"Scheduled","icon":"utility:clock","color":"#747474"},{"key":"le98t2","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Canceled","unit":"","unitDisplay":"","quantity":"","label":"Canceled","icon":"utility:warning","color":"#8C4B02"},{"key":"6ze7fr","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Completed","unit":"","unitDisplay":"","quantity":"","label":"Completed","icon":"utility:success","color":"#2E844A"}]', + '[{"key":"hhrget","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Scheduled","unit":"","unitDisplay":"","quantity":"","label":"Scheduled","icon":"utility:clock","color":"#747474"},{"key":"le98t2","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Canceled","unit":"","unitDisplay":"","quantity":"","label":"Canceled","icon":"utility:warning","color":"#8C4B02"},{"key":"6ze7fr","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Completed","unit":"","unitDisplay":"","quantity":"","label":"Completed","icon":"utility:success","color":"#2E844A"}]' }, Order__c: { - value: 0, - }, - }, + value: 0 + } + } }, { node: { - Id: 'a0oRO0000005xHjYAI', + Id: "a0oRO0000005xHjYAI", Object_Name__c: { - value: 'Asset', + value: "Asset" }, Title__c: { - value: 'My Asset', + value: "My Asset" }, Main_Filter__c: { - value: '[]', + value: "[]" }, Main_Filter_Logic__c: { - value: 'OR', + value: "OR" }, Custom_Logic__c: { - value: null, + value: null }, Layout__c: { - value: 'SIDE', + value: "SIDE" }, Sub_Filters__c: { value: - '[{"key":"pzlqyw","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"ABC","unit":"","unitDisplay":"","quantity":"","label":"ABC","icon":"","color":"#747474","operatorDisplay":"="},{"key":"bmu42o","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"DEF","unit":"","unitDisplay":"","quantity":"","label":"DEF","icon":"","color":"#747474","operatorDisplay":"="},{"key":"se7sdp","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"like","value":"Asset","unit":"","unitDisplay":"","quantity":"","label":"None","icon":"","color":"#747474","operatorDisplay":"contains"}]', + '[{"key":"pzlqyw","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"ABC","unit":"","unitDisplay":"","quantity":"","label":"ABC","icon":"","color":"#747474","operatorDisplay":"="},{"key":"bmu42o","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"DEF","unit":"","unitDisplay":"","quantity":"","label":"DEF","icon":"","color":"#747474","operatorDisplay":"="},{"key":"se7sdp","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"like","value":"Asset","unit":"","unitDisplay":"","quantity":"","label":"None","icon":"","color":"#747474","operatorDisplay":"contains"}]' }, Order__c: { - value: 1, - }, - }, - }, - ], - }, - }, - }, + value: 1 + } + } + } + ] + } + } + } }); }); @@ -123,14 +123,20 @@ describe('c-dashboard-settings-main', () => { } }); - it('should have 2 cards', () => { - const cards = element.shadowRoot.querySelectorAll('c-dashboard-settings-card'); + it("should have 2 cards", () => { + const cards = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + ); expect(cards).toHaveLength(2); }); - it('should switch cards on moveCardUp called for second card', async () => { - const card0 = element.shadowRoot.querySelectorAll('c-dashboard-settings-card')[0]; - const card1 = element.shadowRoot.querySelectorAll('c-dashboard-settings-card')[1]; + it("should switch cards on moveCardUp called for second card", async () => { + const card0 = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + )[0]; + const card1 = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + )[1]; element.moveCardUp(1); return Promise.resolve().then(() => { @@ -139,9 +145,13 @@ describe('c-dashboard-settings-main', () => { }); }); - it('should switch cards on moveCardDown called for first card', async () => { - const card0 = element.shadowRoot.querySelectorAll('c-dashboard-settings-card')[0]; - const card1 = element.shadowRoot.querySelectorAll('c-dashboard-settings-card')[1]; + it("should switch cards on moveCardDown called for first card", async () => { + const card0 = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + )[0]; + const card1 = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + )[1]; element.moveCardDown(0); return Promise.resolve().then(() => { @@ -150,21 +160,25 @@ describe('c-dashboard-settings-main', () => { }); }); - it('should have 3 cards after duplicating', async () => { + it("should have 3 cards after duplicating", async () => { element.duplicateCard(0); return Promise.resolve().then(async () => { return Promise.resolve().then(() => { - const cards = element.shadowRoot.querySelectorAll('c-dashboard-settings-card'); + const cards = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + ); expect(cards).toHaveLength(3); }); }); }); - it('should not duplicate if index is invalid', async () => { + it("should not duplicate if index is invalid", async () => { element.duplicateCard(-1); return Promise.resolve().then(async () => { return Promise.resolve().then(() => { - const cards = element.shadowRoot.querySelectorAll('c-dashboard-settings-card'); + const cards = element.shadowRoot.querySelectorAll( + "c-dashboard-settings-card" + ); expect(cards).toHaveLength(2); }); }); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css new file mode 100644 index 0000000..8ff0e8a --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.css @@ -0,0 +1,38 @@ +.dashboard-settings-page-main-container { + max-width: 1300px; +} + +c-dashboard-toast-message { + position: fixed; + left: 35%; + z-index: 5; +} + +.header-icon { + margin-right: 12px; +} + +lightning-card { + width: 100%; +} + +.main-card { + padding: 24px; +} + +.settings-description { + margin-bottom: 16px; +} + +.settings-description p { + font-size: 13px; + line-height: 20px; + color: #444444; +} + +.settings-description h1 { + font-size: 16px; + line-height: 24px; + margin-bottom: 8px; + color: #181818; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html new file mode 100644 index 0000000..d4bc663 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.html @@ -0,0 +1,77 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js similarity index 70% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js index b35bc55..dd0fac3 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js @@ -1,41 +1,50 @@ -import { LightningElement, wire, api } from 'lwc'; -import getAllObjects from '@salesforce/apex/DashboardSettingsService.getAllObjects'; -import insertNewCard from '@salesforce/apex/DashboardSettingsService.insertNewCard'; -import updateCard from '@salesforce/apex/DashboardSettingsService.updateCard'; -import deleteCard from '@salesforce/apex/DashboardSettingsService.deleteCard'; -import updateCardsOrder from '@salesforce/apex/DashboardSettingsService.updateCardsOrder'; -import getAllObjLabels from '@salesforce/apex/DashboardSettingsService.getAllObjLabels'; -import { gql, graphql } from 'lightning/uiGraphQLApi'; -import EditCardModal from 'c/editCardModal'; -import AlertMessage from 'c/alertMessage'; -import overrideCSS from './overrideCSS'; -import customLabels from './labels'; +import { LightningElement, wire, api } from "lwc"; +import getAllObjects from "@salesforce/apex/DashboardSettingsService.getAllObjects"; +import insertNewCard from "@salesforce/apex/DashboardSettingsService.insertNewCard"; +import updateCard from "@salesforce/apex/DashboardSettingsService.updateCard"; +import deleteCard from "@salesforce/apex/DashboardSettingsService.deleteCard"; +import updateCardsOrder from "@salesforce/apex/DashboardSettingsService.updateCardsOrder"; +import getAllObjLabels from "@salesforce/apex/DashboardSettingsService.getAllObjLabels"; +import { gql, graphql } from "lightning/uiGraphQLApi"; +import EditCardModal from "c/editCardModal"; +import AlertMessage from "c/alertMessage"; +import overrideCSS from "./overrideCSS"; +import customLabels from "./labels"; export default class DashboardSettingsMain extends LightningElement { LABELS = customLabels; dashboardCards = []; EMPTY_CARD = { - key: '', - title: '', - object: { value: '', label: '' }, + key: "", + title: "", + object: { value: "", label: "" }, filter: { - conditionLogic: '', + conditionLogic: "", subFilters: [], - customLogic: '', + customLogic: "" }, - layout: 'SIDE', + layout: "SIDE", subFilters: [ - { key: '', field: '', operator: '', value: '', color: '#747474', label: '', icon: '' }, - ], + { + key: "", + field: "", + operator: "", + value: "", + color: "#747474", + label: "", + icon: "" + } + ] }; objectsOptions = []; toastService; - GET_DASHBOARD_SETTINGS_QRY = ''; + GET_DASHBOARD_SETTINGS_QRY = ""; async connectedCallback() { - const myStyle = document.createElement('style'); + const myStyle = document.createElement("style"); + // eslint-disable-next-line @lwc/lwc/no-inner-html myStyle.innerHTML = overrideCSS; document.head.appendChild(myStyle); @@ -44,11 +53,14 @@ export default class DashboardSettingsMain extends LightningElement { `; const allObjects = await getAllObjects(); - this.objectsOptions = allObjects?.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)) ?? []; + this.objectsOptions = + allObjects?.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)) ?? []; } renderedCallback() { - this.toastService = this.template.querySelector('c-dashboard-toast-message'); + this.toastService = this.template.querySelector( + "c-dashboard-toast-message" + ); } getDashboardQuery() { @@ -92,11 +104,12 @@ export default class DashboardSettingsMain extends LightningElement { } @wire(graphql, { - query: '$GET_DASHBOARD_SETTINGS_QRY', + query: "$GET_DASHBOARD_SETTINGS_QRY" }) GetAllDashboardSettings({ data, errors }) { if (data) { - const dbDashboardSettings = data?.uiapi?.query['Mobile_Dashboard_Setting__c']?.edges; + const dbDashboardSettings = + data?.uiapi?.query.Mobile_Dashboard_Setting__c?.edges; this.buildDashboardCards(dbDashboardSettings); } if (errors) { @@ -136,14 +149,18 @@ export default class DashboardSettingsMain extends LightningElement { try { const card = this.dashboardCards[ind]; const newCard = { ...card, key: this.generateUniqueID() }; - const Id = await insertNewCard({ data: this.buildDataForServer(newCard) }); + const Id = await insertNewCard({ + data: this.buildDataForServer(newCard) + }); this.dashboardCards.splice(ind + 1, 0, { ...newCard, Id }); this.dashboardCards = [...this.dashboardCards]; - await updateCardsOrder({ cardsIds: this.dashboardCards.map((c) => c.Id) }); + await updateCardsOrder({ + cardsIds: this.dashboardCards.map((c) => c.Id) + }); } catch (error) { console.log(JSON.stringify(error)); this.toastService.showToast( - 'error', + "error", this.LABELS.MobileDashboard_settings_error_duplicate_card ); } @@ -151,11 +168,12 @@ export default class DashboardSettingsMain extends LightningElement { deleteCard = async (ind) => { const toDelete = await AlertMessage.open({ - size: 'small', - modalTitle: this.LABELS.MobileDashboard_settings_delete_card_warning_title, + size: "small", + modalTitle: + this.LABELS.MobileDashboard_settings_delete_card_warning_title, message: this.LABELS.MobileDashboard_settings_delete_card_warning_body, discardButtonText: this.LABELS.MobileDashboard_settings_cancel_button, - isDeleteMsg: true, + isDeleteMsg: true }); if (toDelete) { @@ -163,11 +181,13 @@ export default class DashboardSettingsMain extends LightningElement { await deleteCard({ Id: this.dashboardCards[ind].Id }); this.dashboardCards.splice(ind, 1); this.dashboardCards = [...this.dashboardCards]; - await updateCardsOrder({ cardsIds: this.dashboardCards.map((c) => c.Id) }); + await updateCardsOrder({ + cardsIds: this.dashboardCards.map((c) => c.Id) + }); } catch (error) { console.log(JSON.stringify(error)); this.toastService.showToast( - 'error', + "error", this.LABELS.MobileDashboard_settings_error_delete_card ); } @@ -176,13 +196,16 @@ export default class DashboardSettingsMain extends LightningElement { openEditCardModal = async (isEdit, cardIndex) => { const result = await EditCardModal.open({ - size: 'medium', + size: "medium", modalTitle: isEdit ? this.LABELS.MobileDashboard_settings_edit_card_modal_title : this.LABELS.MobileDashboard_settings_new_card_modal_title, objectsOptions: this.objectsOptions, - card: this.dashboardCards[cardIndex] ?? { ...this.EMPTY_CARD, key: this.generateUniqueID() }, - generateUniqueID: this.generateUniqueID, + card: this.dashboardCards[cardIndex] ?? { + ...this.EMPTY_CARD, + key: this.generateUniqueID() + }, + generateUniqueID: this.generateUniqueID }); if (result) { @@ -199,7 +222,7 @@ export default class DashboardSettingsMain extends LightningElement { } catch (error) { console.log(JSON.stringify(error)); this.toastService.showToast( - 'error', + "error", isEdit ? this.LABELS.MobileDashboard_settings_error_save_card : this.LABELS.MobileDashboard_settings_error_add_card @@ -220,28 +243,30 @@ export default class DashboardSettingsMain extends LightningElement { title: settings.Title__c.value, object: { value: settings.Object_Name__c.value, - label: objLabels[settings.Object_Name__c.value], + label: objLabels[settings.Object_Name__c.value] }, filter: { conditionLogic: settings.Main_Filter_Logic__c.value, subFilters: mainFilter.map((sf) => ({ key: this.generateUniqueID(), - ...sf, + ...sf })), - customLogic: settings.Custom_Logic__c.value, + customLogic: settings.Custom_Logic__c.value }, layout: settings.Layout__c.value, subFilters: subFilters.map((sf) => ({ key: this.generateUniqueID(), - ...sf, - })), + ...sf + })) }; }); this.dashboardCards = [...this.dashboardCards]; } async getAllObjLabels(dbDashboardSettings) { - const allApiNames = dbDashboardSettings?.map((s) => s.node.Object_Name__c.value); + const allApiNames = dbDashboardSettings?.map( + (s) => s.node.Object_Name__c.value + ); const labels = await getAllObjLabels({ apiNames: allApiNames }); return labels; } @@ -254,7 +279,7 @@ export default class DashboardSettingsMain extends LightningElement { objectName: data.object.value, index: cardIndex ?? this.dashboardCards.length, subFilters: JSON.stringify(data.subFilters), - title: data.title, + title: data.title }); generateUniqueID() { diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml index ef870c9..c50b5fa 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/dashboardSettingsMain.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 true @@ -17,4 +17,4 @@ ScreenAction - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js new file mode 100644 index 0000000..474f67d --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/labels.js @@ -0,0 +1,31 @@ +import MobileDashboard_settings_header from "@salesforce/label/c.MobileDashboard_settings_header"; +import MobileDashboard_settings_title from "@salesforce/label/c.MobileDashboard_settings_title"; +import MobileDashboard_settings_description from "@salesforce/label/c.MobileDashboard_settings_description"; +import MobileDashboard_settings_add_card_button from "@salesforce/label/c.MobileDashboard_settings_add_card_button"; +import MobileDashboard_settings_cancel_button from "@salesforce/label/c.MobileDashboard_settings_cancel_button"; +import MobileDashboard_settings_delete_card_warning_title from "@salesforce/label/c.MobileDashboard_settings_delete_card_warning_title"; +import MobileDashboard_settings_new_card_modal_title from "@salesforce/label/c.MobileDashboard_settings_new_card_modal_title"; +import MobileDashboard_settings_delete_card_warning_body from "@salesforce/label/c.MobileDashboard_settings_delete_card_warning_body"; +import MobileDashboard_settings_edit_card_modal_title from "@salesforce/label/c.MobileDashboard_settings_edit_card_modal_title"; +import MobileDashboard_settings_error_add_card from "@salesforce/label/c.MobileDashboard_settings_error_add_card"; +import MobileDashboard_settings_error_save_card from "@salesforce/label/c.MobileDashboard_settings_error_save_card"; +import MobileDashboard_settings_error_delete_card from "@salesforce/label/c.MobileDashboard_settings_error_delete_card"; +import MobileDashboard_settings_error_duplicate_card from "@salesforce/label/c.MobileDashboard_settings_error_duplicate_card"; + +const customLabels = { + MobileDashboard_settings_header, + MobileDashboard_settings_title, + MobileDashboard_settings_description, + MobileDashboard_settings_add_card_button, + MobileDashboard_settings_cancel_button, + MobileDashboard_settings_delete_card_warning_title, + MobileDashboard_settings_new_card_modal_title, + MobileDashboard_settings_delete_card_warning_body, + MobileDashboard_settings_edit_card_modal_title, + MobileDashboard_settings_error_add_card, + MobileDashboard_settings_error_save_card, + MobileDashboard_settings_error_delete_card, + MobileDashboard_settings_error_duplicate_card +}; + +export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/overrideCSS.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/overrideCSS.js similarity index 100% rename from MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/overrideCSS.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardSettingsMain/overrideCSS.js diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js new file mode 100644 index 0000000..34a9260 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/__tests__/dashboardToastMessage.test.js @@ -0,0 +1,47 @@ +import { createElement } from "lwc"; +import DashboardToastMessage from "c/dashboardToastMessage"; + +let element; +describe("c-dashboard-toast-message", () => { + beforeEach(() => { + element = createElement("c-dashboard-toast-message", { + is: DashboardToastMessage + }); + + document.body.appendChild(element); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("adds and removes a message to DOM", async () => { + jest.useFakeTimers(); + element.showToast("error", "the message"); + return Promise.resolve().then(async () => { + let toasts = element.shadowRoot.querySelectorAll(".slds-notify_toast"); + expect(toasts).toHaveLength(1); + + jest.runAllTimers(); + return Promise.resolve().then(() => { + toasts = element.shadowRoot.querySelectorAll(".slds-notify_toast"); + expect(toasts).toHaveLength(0); + }); + }); + }); + + it("removes the message on close click", async () => { + element.showToast("error", "the message"); + return Promise.resolve().then(async () => { + const close = element.shadowRoot.querySelector("lightning-button-icon"); + close.click(); + return Promise.resolve().then(() => { + const toasts = + element.shadowRoot.querySelectorAll(".slds-notify_toast"); + expect(toasts).toHaveLength(0); + }); + }); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html new file mode 100644 index 0000000..4bdad03 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.html @@ -0,0 +1,42 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js similarity index 83% rename from MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js index 531087f..bfe5b13 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js @@ -1,4 +1,4 @@ -import { LightningElement, api, track } from 'lwc'; +import { LightningElement, api, track } from "lwc"; export default class DashboardToastMessage extends LightningElement { @track toastList = []; @@ -13,12 +13,13 @@ export default class DashboardToastMessage extends LightningElement { message, id: this.toastId, iconName: `utility:${type}`, - headerClass: `slds-notify slds-notify_toast slds-theme_${type}`, + headerClass: `slds-notify slds-notify_toast slds-theme_${type}` }; this.toastId += 1; this.toastList.push(toast); if (!this.sticky) { + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { this.closeModal(); }, this.timeout); @@ -27,7 +28,7 @@ export default class DashboardToastMessage extends LightningElement { closeModal() { const index = this.toastId - 1; - if (index != -1) { + if (index !== -1) { this.toastList.splice(index, 1); this.toastId -= 1; } @@ -35,7 +36,7 @@ export default class DashboardToastMessage extends LightningElement { handleClose(event) { const index = event.target.dataset.index; - if (index != -1) { + if (index !== -1) { this.toastList.splice(index, 1); this.toastId -= 1; } diff --git a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/dashboardToastMessage/dashboardToastMessage.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js new file mode 100644 index 0000000..e8b80dd --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/__tests__/editCardModal.test.js @@ -0,0 +1,273 @@ +/* eslint-disable @lwc/lwc/prefer-custom-event */ +import { createElement } from "lwc"; +import EditCardModal from "c/editCardModal"; + +jest.mock( + "@salesforce/apex/DashboardSettingsService.getAllFields", + () => { + return { + default: jest.fn(() => [{ value: "AccountName", label: "Account Name" }]) + }; + }, + { virtual: true } +); + +let element; +let tabset; + +describe("c-edit-card-modal", () => { + beforeEach(() => { + element = createElement("c-edit-card-modal", { + is: EditCardModal + }); + + element.objectsOptions = [ + { label: "Account", value: "Account" }, + { label: "Contact", value: "Contact" } + ]; + element.generateUniqueID = jest.fn(() => "abc"); + element.close = jest.fn(); + element.card = { + index: 1, + title: "card title", + object: { label: "Account", value: "Account" }, + filter: { + conditionLogic: "AND", + subFilters: [ + { + key: "rwn1ft", + fieldDisplay: "Time Sheet End Date", + value: "", + unitDisplay: "days", + quantity: "14", + operatorDisplay: "last" + }, + { + key: "131fda", + fieldDisplay: "Time Sheet Start Date", + value: "", + unitDisplay: "weeks", + quantity: "1", + operatorDisplay: "last" + } + ] + }, + subFilters: [ + { + key: "rwn1fa", + fieldDisplay: "Time Sheet End Date", + value: "", + unitDisplay: "days", + quantity: "14", + operatorDisplay: "last" + }, + { + key: "131fdb", + fieldDisplay: "Time Sheet Start Date", + value: "", + unitDisplay: "weeks", + quantity: "1", + operatorDisplay: "last" + } + ], + layout: "SIDE" + }; + + document.body.appendChild(element); + + tabset = element.shadowRoot.querySelector("lightning-tabset"); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("closes modal on cancel", async () => { + const cancel = element.shadowRoot.querySelectorAll("lightning-button")[0]; + cancel.click(); + return Promise.resolve().then(() => { + expect(element.close).toHaveBeenCalled(); + }); + }); + + it("closes modal on save", async () => { + const title = element.shadowRoot.querySelector(".name-field-input"); + const obj = element.shadowRoot.querySelector(".object-combobox"); + + title.validity = { valid: true }; + obj.validity = { valid: true }; + + const basicFilters = element.shadowRoot.querySelectorAll("c-basic-filter"); + basicFilters.forEach((bf) => { + bf.checkValidation = () => true; + }); + + const subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + subFilters.forEach((sf) => { + sf.checkValidation = () => true; + }); + + const save = element.shadowRoot.querySelectorAll("lightning-button")[1]; + save.click(); + return Promise.resolve().then(() => { + expect(element.close).toHaveBeenCalled(); + }); + }); + + it("leaves modal open on save with invalid fields", async () => { + const title = element.shadowRoot.querySelector(".name-field-input"); + const obj = element.shadowRoot.querySelector(".object-combobox"); + + title.validity = { valid: false }; + obj.validity = { valid: false }; + + const basicFilters = element.shadowRoot.querySelectorAll("c-basic-filter"); + basicFilters.forEach((bf) => { + bf.checkValidation = () => false; + }); + + const subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + subFilters.forEach((sf) => { + sf.checkValidation = () => false; + }); + + const save = element.shadowRoot.querySelectorAll("lightning-button")[1]; + save.click(); + return Promise.resolve().then(() => { + expect(element.close).not.toHaveBeenCalled(); + }); + }); + + it("clears main conditions when changing object", async () => { + let conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(2); + + const objectCombobox = element.shadowRoot.querySelector(".object-combobox"); + objectCombobox.value = "Contact"; + objectCombobox.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(0); + }); + }); + + it("empties field options when changing to null object", async () => { + expect(element.fieldsOptions).toHaveLength(1); + + const objectCombobox = element.shadowRoot.querySelector(".object-combobox"); + objectCombobox.value = ""; + objectCombobox.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + expect(element.fieldsOptions).toHaveLength(0); + }); + }); + + it("does not clear main conditions when changing condition logic", async () => { + let conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(2); + + const conditionCombobox = element.shadowRoot.querySelector( + ".condition-combobox" + ); + conditionCombobox.value = "OR"; + conditionCombobox.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(2); + }); + }); + + it("adds condition on handleAddConditionClick call", async () => { + let conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(2); + + element.handleAddConditionClick(); + return Promise.resolve().then(() => { + conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(3); + }); + }); + + it("removes condition when delete clicked", async () => { + let conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(2); + + const deleteButton = element.shadowRoot.querySelector( + ".condition lightning-button-icon" + ); + deleteButton.click(); + return Promise.resolve().then(() => { + conditions = element.shadowRoot.querySelectorAll(".condition"); + expect(conditions).toHaveLength(1); + }); + }); + + describe("tests details tab", () => { + beforeEach(() => { + tabset.activeTabValue = "details-tab"; + }); + + it("add sub filter on handleAddSubFilterClick call", async () => { + let subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + expect(subFilters).toHaveLength(2); + + element.handleAddSubFilterClick(); + return Promise.resolve().then(() => { + subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + expect(subFilters).toHaveLength(3); + }); + }); + + it("add sub filter on duplicateSubFilter call", async () => { + let subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + expect(subFilters).toHaveLength(2); + + element.duplicateSubFilter(0); + return Promise.resolve().then(() => { + subFilters = element.shadowRoot.querySelectorAll("c-sub-filter-card"); + expect(subFilters).toHaveLength(3); + }); + }); + }); + + it("reorders sub filters on drag", async () => { + const firstSubFilter = + element.shadowRoot.querySelectorAll("c-sub-filter-card")[0]; + const secondSubFilter = + element.shadowRoot.querySelectorAll("c-sub-filter-card")[1]; + + const eStart = new Event("dragstart"); + const eEnter = new Event("dragenter"); + const eEnd = new Event("dragend"); + const eDrop = new Event("drop"); + secondSubFilter.dispatchEvent(eStart); + firstSubFilter.dispatchEvent(eEnter); + secondSubFilter.dispatchEvent(eEnd); + secondSubFilter.dispatchEvent(eDrop); + + return Promise.resolve().then(() => { + expect(firstSubFilter.index).toBe(1); + expect(secondSubFilter.index).toBe(0); + }); + }); + + it("does not reorder sub filters if entering with a filter to itself", async () => { + const firstSubFilter = + element.shadowRoot.querySelectorAll("c-sub-filter-card")[0]; + + const eStart = new Event("dragstart"); + const eEnter = new Event("dragenter"); + const eEnd = new Event("dragend"); + const eDrop = new Event("drop"); + firstSubFilter.dispatchEvent(eStart); + firstSubFilter.dispatchEvent(eEnter); + firstSubFilter.dispatchEvent(eEnd); + firstSubFilter.dispatchEvent(eDrop); + + return Promise.resolve().then(() => { + expect(firstSubFilter.index).toBe(0); + }); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css new file mode 100644 index 0000000..86f5b35 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.css @@ -0,0 +1,151 @@ +.layout-container { + display: flex; + flex-direction: column; +} + +.layout-comp { + flex: 1; +} + +.not-last { + margin-right: 38px; +} + +.layout-text { + flex: 1; +} + +.layout-img { + flex: 3; +} + +.card-layout-container { + display: flex; +} + +.layout-radio-container { + display: flex; + flex-direction: row; +} + +.layout-radio { + display: flex; + flex-direction: column; + margin-right: 60px; +} + +.sub-filters-container { + display: flex; + flex-direction: column; +} + +lightning-helptext { + margin-left: 8px; +} + +h1 { + font-size: 14px; + line-height: 24px; + font-weight: 700; + color: #181818; + margin-bottom: 16px; +} + +h2 { + font-size: 12px; + line-height: 18px; + font-weight: 700; + color: #444444; + margin-bottom: 16px; +} + +p { + font-size: 13px; + line-height: 20px; + color: #444444; + margin-bottom: 16px; +} + +.bold-p { + font-weight: 700; +} + +.card-data-title { + margin-bottom: 0; +} + +.card-props { + display: flex; + flex-direction: row; + justify-content: space-evenly; + margin-bottom: 16px; +} + +.card-props lightning-input, +.card-props lightning-combobox { + width: 100%; +} + +.card-props lightning-input { + margin-right: 16px; +} + +.obj-filter { + display: flex; + flex-direction: column; + justify-content: space-between; + background-color: #f3f3f3; + border: 1px solid #c9c9c9; + border-radius: 4px; + padding: 12px; +} + +.condition-combobox, +c-basic-filter { + margin-bottom: 12px; +} + +.condition { + display: flex; + flex-direction: row; +} + +.logic-text { + width: 64px; + display: flex; + align-items: end; + justify-content: end; + margin-bottom: 12px; + margin-right: 16px; + font-weight: 700; + font-size: 14px; + line-height: 21px; +} + +c-basic-filter { + flex-grow: 1; +} + +.custom-logic-input { + margin: 12px 0; +} + +c-dashboard-add-button { + margin-top: 12px; +} + +lightning-button-icon { + background-color: white; + align-self: end; + margin-bottom: 12px; +} + +lightning-modal-footer lightning-button { + margin-left: 12px; +} + +.dragged { + border: 1px solid #032d60; + transition: 0.01s; + transform: translateX(-9999px); +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html new file mode 100644 index 0000000..4848b86 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.html @@ -0,0 +1,215 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js similarity index 65% rename from MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js rename to projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js index 88b7767..9c24eeb 100644 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js @@ -1,10 +1,11 @@ -import { api } from 'lwc'; -import LightningModal from 'lightning/modal'; -import AlertMessage from 'c/alertMessage'; -import getAllFields from '@salesforce/apex/DashboardSettingsService.getAllFields'; -import SIDE_EXAMPLE_SVG from '@salesforce/resourceUrl/side_example'; -import STACK_EXAMPLE_SVG from '@salesforce/resourceUrl/stack_example'; -import customLabels from './labels'; +/* eslint-disable @lwc/lwc/no-api-reassignments */ +import { api } from "lwc"; +import LightningModal from "lightning/modal"; +import AlertMessage from "c/alertMessage"; +import getAllFields from "@salesforce/apex/DashboardSettingsService.getAllFields"; +import SIDE_EXAMPLE_SVG from "@salesforce/resourceUrl/side_example"; +import STACK_EXAMPLE_SVG from "@salesforce/resourceUrl/stack_example"; +import customLabels from "./labels"; export default class EditCardModal extends LightningModal { @api modalTitle; @@ -16,19 +17,19 @@ export default class EditCardModal extends LightningModal { @api fieldsOptions; tempCard; EMPTY_SUB_FILTER = { - key: '', - field: '', - fieldDisplay: '', - fieldType: '', - operator: '', - operatorDisplay: '', - value: '', - unit: '', - unitDisplay: '', - quantity: '', - label: '', - icon: '', - color: '#747474', + key: "", + field: "", + fieldDisplay: "", + fieldType: "", + operator: "", + operatorDisplay: "", + value: "", + unit: "", + unitDisplay: "", + quantity: "", + label: "", + icon: "", + color: "#747474" }; side_svg_url = `${SIDE_EXAMPLE_SVG}#side_example`; @@ -62,13 +63,14 @@ export default class EditCardModal extends LightningModal { ...this.tempCard, object: { value: e.target.value, - label: e.target.options.find((opt) => opt.value === e.detail?.value)?.label, + label: e.target.options.find((opt) => opt.value === e.detail?.value) + ?.label }, filter: { ...this.tempCard.filter, - subFilters: [], + subFilters: [] }, - subFilters: [this.EMPTY_SUB_FILTER], + subFilters: [this.EMPTY_SUB_FILTER] }; this.refreshFieldsOptions(this.tempCard.object?.value); @@ -76,12 +78,19 @@ export default class EditCardModal extends LightningModal { get conditionOptions() { return [ - { label: this.LABELS.MobileDashboard_card_modal_details_filter_logic_and, value: 'AND' }, - { label: this.LABELS.MobileDashboard_card_modal_details_filter_logic_or, value: 'OR' }, { - label: this.LABELS.MobileDashboard_card_modal_details_filter_logic_custom, - value: 'CUSTOM', + label: this.LABELS.MobileDashboard_card_modal_details_filter_logic_and, + value: "AND" }, + { + label: this.LABELS.MobileDashboard_card_modal_details_filter_logic_or, + value: "OR" + }, + { + label: + this.LABELS.MobileDashboard_card_modal_details_filter_logic_custom, + value: "CUSTOM" + } ]; } @@ -109,13 +118,19 @@ export default class EditCardModal extends LightningModal { @api handleAddConditionClick = () => { let newCard = JSON.parse(JSON.stringify(this.tempCard)); - newCard.filter.subFilters.push({ ...this.EMPTY_SUB_FILTER, key: this.generateUniqueID() }); + newCard.filter.subFilters.push({ + ...this.EMPTY_SUB_FILTER, + key: this.generateUniqueID() + }); this.tempCard = { ...newCard }; }; @api handleAddSubFilterClick = () => { let newCard = JSON.parse(JSON.stringify(this.tempCard)); - newCard.subFilters.push({ ...this.EMPTY_SUB_FILTER, key: this.generateUniqueID() }); + newCard.subFilters.push({ + ...this.EMPTY_SUB_FILTER, + key: this.generateUniqueID() + }); this.tempCard = { ...newCard }; }; @@ -137,18 +152,20 @@ export default class EditCardModal extends LightningModal { let newCard = JSON.parse(JSON.stringify(this.tempCard)); newCard.subFilters.splice(index + 1, 0, { ...newCard.subFilters[index], - key: this.generateUniqueID(), + key: this.generateUniqueID() }); this.tempCard = { ...newCard }; }; @api deleteSubFilter = async (index) => { const toDelete = await AlertMessage.open({ - size: 'small', - modalTitle: this.LABELS.MobileDashboard_settings_delete_sub_filter_warning_title, - message: this.LABELS.MobileDashboard_settings_delete_sub_filter_warning_body, + size: "small", + modalTitle: + this.LABELS.MobileDashboard_settings_delete_sub_filter_warning_title, + message: + this.LABELS.MobileDashboard_settings_delete_sub_filter_warning_body, discardButtonText: this.LABELS.MobileDashboard_settings_cancel_button, - isDeleteMsg: true, + isDeleteMsg: true }); if (toDelete) { @@ -161,7 +178,10 @@ export default class EditCardModal extends LightningModal { updateMainSubFilter = (index, newVals) => { let newCard = JSON.parse(JSON.stringify(this.tempCard)); newCard.filter.subFilters = newCard.filter?.subFilters ?? []; - newCard.filter.subFilters[index] = { ...newCard.filter.subFilters[index], ...newVals }; + newCard.filter.subFilters[index] = { + ...newCard.filter.subFilters[index], + ...newVals + }; this.tempCard = { ...newCard }; }; @@ -171,7 +191,9 @@ export default class EditCardModal extends LightningModal { return; } const allFields = await getAllFields({ obj }); - this.fieldsOptions = allFields.sort((f1, f2) => (f1.label < f2.label ? -1 : 1)); + this.fieldsOptions = allFields.sort((f1, f2) => { + return f1.label < f2.label ? -1 : 1; + }); } get loading() { @@ -184,32 +206,35 @@ export default class EditCardModal extends LightningModal { get mainSubFilters() { let subFilters = this.tempCard?.filter?.subFilters ?? []; - subFilters = subFilters.map((s, i) => ({ ...s, displayText: this.getLogicDisplayText(i) })); + subFilters = subFilters.map((s, i) => ({ + ...s, + displayText: this.getLogicDisplayText(i) + })); return subFilters; } getLogicDisplayText(ind) { if (this.isCustomLogic) return ind + 1; - if (ind === 0) return ''; - else return this.conditionLogicText; + if (ind === 0) return ""; + return this.conditionLogicText; } get isCustomLogic() { - return this.tempCard.filter.conditionLogic === 'CUSTOM'; + return this.tempCard.filter.conditionLogic === "CUSTOM"; } get conditionLogicText() { - return this.tempCard.filter.conditionLogic === 'AND' + return this.tempCard.filter.conditionLogic === "AND" ? this.LABELS.MobileDashboard_card_modal_details_and_between_logic : this.LABELS.MobileDashboard_card_modal_details_or_between_logic; } get isLayoutSide() { - return this.tempCard.layout === 'SIDE'; + return this.tempCard.layout === "SIDE"; } get isLayoutStack() { - return this.tempCard.layout === 'STACK'; + return this.tempCard.layout === "STACK"; } get disableConditionLogic() { @@ -221,8 +246,9 @@ export default class EditCardModal extends LightningModal { } detectSubFilterDrag = async () => { - const filters = this.template.querySelectorAll('c-sub-filter-card'); + const filters = this.template.querySelectorAll("c-sub-filter-card"); if (filters.length !== this.tempCard.subFilters.length) { + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { this.detectSubFilterDrag(); }, 500); @@ -232,7 +258,7 @@ export default class EditCardModal extends LightningModal { filters.forEach((f) => { f.ondragstart = (e) => { dragged = e.target.index; - f.classList.add('dragged'); + f.classList.add("dragged"); }; f.ondragenter = (e) => { @@ -251,12 +277,13 @@ export default class EditCardModal extends LightningModal { for (let filter of filters) { filter.removeDragDivider(); } - f.classList.remove('dragged'); + f.classList.remove("dragged"); f.disableDrag(); }; f.ondragover = (e) => e.preventDefault(); + // eslint-disable-next-line no-unused-vars f.ondrop = (e) => { f.disableDrag(); if (dragged > -1 && dest > -1) { @@ -277,51 +304,56 @@ export default class EditCardModal extends LightningModal { checkValidation() { let isValid = true; - const tabset = this.template.querySelector('lightning-tabset'); + const tabset = this.template.querySelector("lightning-tabset"); // check title, object and custom logic (if shown) const inputs = []; - inputs.push(this.template.querySelector('.name-field-input')); - inputs.push(this.template.querySelector('.object-combobox')); + inputs.push(this.template.querySelector(".name-field-input")); + inputs.push(this.template.querySelector(".object-combobox")); - const customLogic = this.template.querySelector('.custom-logic-input'); - if (customLogic) inputs.push(this.template.querySelector('.custom-logic-input')); + const customLogic = this.template.querySelector(".custom-logic-input"); + if (customLogic) + inputs.push(this.template.querySelector(".custom-logic-input")); inputs.forEach((input) => { if (!input.validity.valid) { input.focus(); input.blur(); - input.classList.add('slds-has-error'); + input.classList.add("slds-has-error"); isValid = false; - tabset.activeTabValue = 'details-tab'; + tabset.activeTabValue = "details-tab"; } }); // check main basic filters - const basicFilters = this.template.querySelectorAll('c-basic-filter'); + const basicFilters = this.template.querySelectorAll("c-basic-filter"); basicFilters.forEach((b) => { if (!b.checkValidation()) { isValid = false; - tabset.activeTabValue = 'details-tab'; + tabset.activeTabValue = "details-tab"; } }); // check sub filters - const filters = this.template.querySelectorAll('c-sub-filter-card'); + const filters = this.template.querySelectorAll("c-sub-filter-card"); filters.forEach((sub) => { if (!sub.checkValidation()) { - if (isValid) tabset.activeTabValue = 'design-tab'; + if (isValid) tabset.activeTabValue = "design-tab"; isValid = false; } }); // need to check scenario where we haven't moved to the second tab (selector won't work because they're still hidden), // and there could be an empty place-holder sub-filter - if (JSON.stringify(this.subFilters) === JSON.stringify([this.EMPTY_SUB_FILTER])) { + if ( + JSON.stringify(this.subFilters) === + JSON.stringify([this.EMPTY_SUB_FILTER]) + ) { isValid = false; - tabset.activeTabValue = 'design-tab'; + tabset.activeTabValue = "design-tab"; + // eslint-disable-next-line @lwc/lwc/no-async-operation setTimeout(() => { - const filter = this.template.querySelector('c-sub-filter-card'); + const filter = this.template.querySelector("c-sub-filter-card"); filter.checkValidation(); }, 0); } diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/editCardModal.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js similarity index 51% rename from MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js rename to projects/MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js index af6e2cd..8e587a9 100644 --- a/MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/editCardModal/labels.js @@ -1,31 +1,31 @@ -import MobileDashboard_card_modal_details_tab_name from '@salesforce/label/c.MobileDashboard_card_modal_details_tab_name'; -import MobileDashboard_card_modal_details_name_field from '@salesforce/label/c.MobileDashboard_card_modal_details_name_field'; -import MobileDashboard_card_object_field from '@salesforce/label/c.MobileDashboard_card_object_field'; -import MobileDashboard_card_filter_title from '@salesforce/label/c.MobileDashboard_card_filter_title'; -import MobileDashboard_card_modal_details_filter_logic_field from '@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_field'; -import MobileDashboard_settings_select_placeholder from '@salesforce/label/c.MobileDashboard_settings_select_placeholder'; -import MobileDashboard_card_modal_details_filter_logic_and from '@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_and'; -import MobileDashboard_card_modal_details_filter_logic_or from '@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_or'; -import MobileDashboard_card_modal_details_filter_logic_custom from '@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_custom'; -import MobileDashboard_card_modal_details_custom_logic_field from '@salesforce/label/c.MobileDashboard_card_modal_details_custom_logic_field'; -import MobileDashboard_card_modal_details_add_condition_button from '@salesforce/label/c.MobileDashboard_card_modal_details_add_condition_button'; -import MobileDashboard_settings_save_button from '@salesforce/label/c.MobileDashboard_settings_save_button'; -import MobileDashboard_settings_cancel_button from '@salesforce/label/c.MobileDashboard_settings_cancel_button'; -import MobileDashboard_card_modal_design_tab_name from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_name'; -import MobileDashboard_card_modal_design_tab_layout_title from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_title'; -import MobileDashboard_card_modal_design_tab_layout_side_title from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_side_title'; -import MobileDashboard_card_modal_design_tab_layout_side_description from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_side_description'; -import MobileDashboard_card_modal_design_tab_layout_stack_title from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_stack_title'; -import MobileDashboard_card_modal_design_tab_layout_stack_description from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_stack_description'; -import MobileDashboard_card_modal_design_tab_card_data_title from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_card_data_title'; -import MobileDashboard_settings_delete_sub_filter_warning_title from '@salesforce/label/c.MobileDashboard_settings_delete_sub_filter_warning_title'; -import MobileDashboard_settings_delete_sub_filter_warning_body from '@salesforce/label/c.MobileDashboard_settings_delete_sub_filter_warning_body'; -import MobileDashboard_card_modal_design_tab_add_data_button from '@salesforce/label/c.MobileDashboard_card_modal_design_tab_add_data_button'; -import MobileDashboard_card_modal_details_filter_field_infobubble from '@salesforce/label/c.MobileDashboard_card_modal_details_filter_field_infobubble'; -import MobileDashboard_card_modal_details_remove_condition_button from '@salesforce/label/c.MobileDashboard_card_modal_details_remove_condition_button'; -import MobileDashboard_card_modal_details_custom_logic_field_infobubble from '@salesforce/label/c.MobileDashboard_card_modal_details_custom_logic_field_infobubble'; -import MobileDashboard_card_modal_details_and_between_logic from '@salesforce/label/c.MobileDashboard_card_modal_details_and_between_logic'; -import MobileDashboard_card_modal_details_or_between_logic from '@salesforce/label/c.MobileDashboard_card_modal_details_or_between_logic'; +import MobileDashboard_card_modal_details_tab_name from "@salesforce/label/c.MobileDashboard_card_modal_details_tab_name"; +import MobileDashboard_card_modal_details_name_field from "@salesforce/label/c.MobileDashboard_card_modal_details_name_field"; +import MobileDashboard_card_object_field from "@salesforce/label/c.MobileDashboard_card_object_field"; +import MobileDashboard_card_filter_title from "@salesforce/label/c.MobileDashboard_card_filter_title"; +import MobileDashboard_card_modal_details_filter_logic_field from "@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_field"; +import MobileDashboard_settings_select_placeholder from "@salesforce/label/c.MobileDashboard_settings_select_placeholder"; +import MobileDashboard_card_modal_details_filter_logic_and from "@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_and"; +import MobileDashboard_card_modal_details_filter_logic_or from "@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_or"; +import MobileDashboard_card_modal_details_filter_logic_custom from "@salesforce/label/c.MobileDashboard_card_modal_details_filter_logic_custom"; +import MobileDashboard_card_modal_details_custom_logic_field from "@salesforce/label/c.MobileDashboard_card_modal_details_custom_logic_field"; +import MobileDashboard_card_modal_details_add_condition_button from "@salesforce/label/c.MobileDashboard_card_modal_details_add_condition_button"; +import MobileDashboard_settings_save_button from "@salesforce/label/c.MobileDashboard_settings_save_button"; +import MobileDashboard_settings_cancel_button from "@salesforce/label/c.MobileDashboard_settings_cancel_button"; +import MobileDashboard_card_modal_design_tab_name from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_name"; +import MobileDashboard_card_modal_design_tab_layout_title from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_title"; +import MobileDashboard_card_modal_design_tab_layout_side_title from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_side_title"; +import MobileDashboard_card_modal_design_tab_layout_side_description from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_side_description"; +import MobileDashboard_card_modal_design_tab_layout_stack_title from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_stack_title"; +import MobileDashboard_card_modal_design_tab_layout_stack_description from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_layout_stack_description"; +import MobileDashboard_card_modal_design_tab_card_data_title from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_card_data_title"; +import MobileDashboard_settings_delete_sub_filter_warning_title from "@salesforce/label/c.MobileDashboard_settings_delete_sub_filter_warning_title"; +import MobileDashboard_settings_delete_sub_filter_warning_body from "@salesforce/label/c.MobileDashboard_settings_delete_sub_filter_warning_body"; +import MobileDashboard_card_modal_design_tab_add_data_button from "@salesforce/label/c.MobileDashboard_card_modal_design_tab_add_data_button"; +import MobileDashboard_card_modal_details_filter_field_infobubble from "@salesforce/label/c.MobileDashboard_card_modal_details_filter_field_infobubble"; +import MobileDashboard_card_modal_details_remove_condition_button from "@salesforce/label/c.MobileDashboard_card_modal_details_remove_condition_button"; +import MobileDashboard_card_modal_details_custom_logic_field_infobubble from "@salesforce/label/c.MobileDashboard_card_modal_details_custom_logic_field_infobubble"; +import MobileDashboard_card_modal_details_and_between_logic from "@salesforce/label/c.MobileDashboard_card_modal_details_and_between_logic"; +import MobileDashboard_card_modal_details_or_between_logic from "@salesforce/label/c.MobileDashboard_card_modal_details_or_between_logic"; const customLabels = { MobileDashboard_card_modal_details_tab_name, @@ -55,7 +55,7 @@ const customLabels = { MobileDashboard_card_modal_details_remove_condition_button, MobileDashboard_card_modal_details_custom_logic_field_infobubble, MobileDashboard_card_modal_details_and_between_logic, - MobileDashboard_card_modal_details_or_between_logic, + MobileDashboard_card_modal_details_or_between_logic }; export default customLabels; diff --git a/MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js similarity index 71% rename from MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js rename to projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js index 0dd4e7e..8d26fb4 100644 --- a/MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/__tests__/mainDashboard.test.js @@ -1,12 +1,12 @@ -import { createElement } from 'lwc'; -import MainDashboard from 'c/mainDashboard'; -import { graphql } from 'lightning/uiGraphQLApi'; +import { createElement } from "lwc"; +import MainDashboard from "c/mainDashboard"; +import { graphql } from "lightning/uiGraphQLApi"; let element; -describe('c-main-dashboard', () => { +describe("c-main-dashboard", () => { beforeEach(() => { - element = createElement('c-main-dashboard', { - is: MainDashboard, + element = createElement("c-main-dashboard", { + is: MainDashboard }); document.body.appendChild(element); @@ -18,69 +18,69 @@ describe('c-main-dashboard', () => { edges: [ { node: { - Id: 'a0oRO0000005xCYYAY', + Id: "a0oRO0000005xCYYAY", Object_Name__c: { - value: 'ServiceAppointment', + value: "ServiceAppointment" }, Title__c: { - value: 'My Upcoming Service Appointments', + value: "My Upcoming Service Appointments" }, Main_Filter__c: { value: - '[{"key":"hog03n","field":"SchedStartTime","fieldDisplay":"Scheduled Start","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"16","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]', + '[{"key":"hog03n","field":"SchedStartTime","fieldDisplay":"Scheduled Start","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"16","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]' }, Main_Filter_Logic__c: { - value: 'AND', + value: "AND" }, Custom_Logic__c: { - value: null, + value: null }, Layout__c: { - value: 'STACK', + value: "STACK" }, Sub_Filters__c: { value: - '[{"key":"hhrget","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Scheduled","unit":"","unitDisplay":"","quantity":"","label":"Scheduled","icon":"utility:clock","color":"#747474"},{"key":"le98t2","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Canceled","unit":"","unitDisplay":"","quantity":"","label":"Canceled","icon":"utility:warning","color":"#8C4B02"},{"key":"6ze7fr","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Completed","unit":"","unitDisplay":"","quantity":"","label":"Completed","icon":"utility:success","color":"#2E844A"}]', + '[{"key":"hhrget","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Scheduled","unit":"","unitDisplay":"","quantity":"","label":"Scheduled","icon":"utility:clock","color":"#747474"},{"key":"le98t2","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Canceled","unit":"","unitDisplay":"","quantity":"","label":"Canceled","icon":"utility:warning","color":"#8C4B02"},{"key":"6ze7fr","field":"Status","fieldDisplay":"Status","fieldType":"PICKLIST","operator":"eq","operatorDisplay":"=","value":"Completed","unit":"","unitDisplay":"","quantity":"","label":"Completed","icon":"utility:success","color":"#2E844A"}]' }, Order__c: { - value: 0, - }, - }, + value: 0 + } + } }, { node: { - Id: 'a0oRO0000005xHjYAI', + Id: "a0oRO0000005xHjYAI", Object_Name__c: { - value: 'Asset', + value: "Asset" }, Title__c: { - value: 'My Asset', + value: "My Asset" }, Main_Filter__c: { - value: '[]', + value: "[]" }, Main_Filter_Logic__c: { - value: 'OR', + value: "OR" }, Custom_Logic__c: { - value: null, + value: null }, Layout__c: { - value: 'SIDE', + value: "SIDE" }, Sub_Filters__c: { value: - '[{"key":"pzlqyw","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"ABC","unit":"","unitDisplay":"","quantity":"","label":"ABC","icon":"","color":"#747474","operatorDisplay":"="},{"key":"bmu42o","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"DEF","unit":"","unitDisplay":"","quantity":"","label":"DEF","icon":"","color":"#747474","operatorDisplay":"="},{"key":"se7sdp","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"like","value":"Asset","unit":"","unitDisplay":"","quantity":"","label":"None","icon":"","color":"#747474","operatorDisplay":"contains"}]', + '[{"key":"pzlqyw","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"ABC","unit":"","unitDisplay":"","quantity":"","label":"ABC","icon":"","color":"#747474","operatorDisplay":"="},{"key":"bmu42o","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"eq","value":"DEF","unit":"","unitDisplay":"","quantity":"","label":"DEF","icon":"","color":"#747474","operatorDisplay":"="},{"key":"se7sdp","field":"Name","fieldDisplay":"Asset Name","fieldType":"STRING","operator":"like","value":"Asset","unit":"","unitDisplay":"","quantity":"","label":"None","icon":"","color":"#747474","operatorDisplay":"contains"}]' }, Order__c: { - value: 1, - }, - }, - }, - ], - }, - }, - }, + value: 1 + } + } + } + ] + } + } + } }); }); @@ -90,8 +90,8 @@ describe('c-main-dashboard', () => { } }); - it('should have 2 summary components', () => { - const cards = element.shadowRoot.querySelectorAll('c-summary-component'); + it("should have 2 summary components", () => { + const cards = element.shadowRoot.querySelectorAll("c-summary-component"); expect(cards).toHaveLength(2); }); }); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css new file mode 100644 index 0000000..4aade33 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.css @@ -0,0 +1,8 @@ +.main-container { + background-color: var(--slds-g-color-neutral-base-90, #e5e5e5); + padding: 16px; + display: flex; + flex-direction: column; + overflow-y: scroll; + width: 100vw; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html new file mode 100644 index 0000000..9f9e9cb --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.html @@ -0,0 +1,16 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js similarity index 88% rename from MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js rename to projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js index fe82ec7..7e252a4 100644 --- a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js @@ -1,9 +1,9 @@ -import { LightningElement, wire, api } from 'lwc'; -import { gql, graphql, refreshGraphQL } from 'lightning/uiGraphQLApi'; +import { LightningElement, wire, api } from "lwc"; +import { gql, graphql, refreshGraphQL } from "lightning/uiGraphQLApi"; export default class MainDashboard extends LightningElement { dashboardSettings = []; - GET_DASHBOARD_SETTINGS_QRY = ''; + GET_DASHBOARD_SETTINGS_QRY = ""; queryResult; refreshed = false; @@ -15,13 +15,13 @@ export default class MainDashboard extends LightningElement { } @wire(graphql, { - query: '$GET_DASHBOARD_SETTINGS_QRY', + query: "$GET_DASHBOARD_SETTINGS_QRY" }) GetAllDashboardSettings(result) { this.queryResult = result; const { data, errors } = result; if (data) { - const allSettings = data?.uiapi?.query['Mobile_Dashboard_Setting__c']?.edges; + const allSettings = data?.uiapi?.query.Mobile_Dashboard_Setting__c?.edges; if (allSettings) this.populateDashboardSettings(allSettings); if (!this.refreshed) { this.refreshed = true; diff --git a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml index 63136e0..af98892 100644 --- a/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/mainDashboard/mainDashboard.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 true @@ -16,4 +16,4 @@ ScreenAction - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js new file mode 100644 index 0000000..1c86ac2 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/__tests__/subFilterCard.test.js @@ -0,0 +1,101 @@ +/* eslint-disable @lwc/lwc/prefer-custom-event */ +import { createElement } from "lwc"; +import SubFilterCard from "c/subFilterCard"; + +let element; +describe("c-sub-filter-card", () => { + beforeEach(() => { + element = createElement("c-sub-filter-card", { + is: SubFilterCard + }); + + element.index = 0; + element.objectValue = "Account"; + element.filter = { + key: "xtao8a", + field: "Status", + fieldDisplay: "Status", + fieldType: "PICKLIST", + operator: "eq", + value: "Completed", + label: "Completed", + icon: "utility: like", + color: "#3DBA63" + }; + element.fieldsOptions = [ + { label: "A", value: "a" }, + { label: "B", value: "b" } + ]; + element.layout = "SIDE"; + element.updateSubFilter = jest.fn(); + element.duplicateSubFilter = jest.fn(); + element.deleteSubFilter = jest.fn(); + + document.body.appendChild(element); + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("Label and color are correct", () => { + const inputs = element.shadowRoot.querySelectorAll("lightning-input"); + const label = inputs[0]; + const color = inputs[1]; + expect(label.value).toBe("Completed"); + expect(color.value).toBe("#3DBA63"); + }); + + it("should call duplicateSubFilter when duplicate clicked", async () => { + const action = element.shadowRoot.querySelectorAll( + "lightning-menu-item" + )[0]; + action.click(); + return Promise.resolve().then(() => { + expect(element.duplicateSubFilter).toHaveBeenCalled(); + }); + }); + + it("should call deleteSubFilter when delete clicked", async () => { + const action = element.shadowRoot.querySelectorAll( + "lightning-menu-item" + )[1]; + action.click(); + return Promise.resolve().then(() => { + expect(element.deleteSubFilter).toHaveBeenCalled(); + }); + }); + + it("should call updateSubFilter when change label", async () => { + const inputs = element.shadowRoot.querySelectorAll("lightning-input"); + const label = inputs[0]; + label.value = "a"; + label.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + expect(element.updateSubFilter).toHaveBeenCalled(); + }); + }); + + it("should call updateSubFilter when change icon", async () => { + const inputs = element.shadowRoot.querySelectorAll("lightning-input"); + const icon = inputs[1]; + icon.value = "utility:error"; + icon.dispatchEvent(new Event("change")); + return Promise.resolve().then(() => { + expect(element.updateSubFilter).toHaveBeenCalled(); + }); + }); + + it("return false from checkValidation when fields are valid", async () => { + const input = element.shadowRoot.querySelector(".label-input"); + input.validity = { valid: false }; + + const basic = element.shadowRoot.querySelector("c-basic-filter"); + basic.checkValidation = () => false; + + const isValid = element.checkValidation(); + expect(isValid).toBeFalsy(); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js new file mode 100644 index 0000000..3df02f2 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/labels.js @@ -0,0 +1,21 @@ +import MobileDashboard_settings_duplicate_button from "@salesforce/label/c.MobileDashboard_settings_duplicate_button"; +import MobileDashboard_settings_delete_button from "@salesforce/label/c.MobileDashboard_settings_delete_button"; +import MobileDashboard_sub_filter_label_field from "@salesforce/label/c.MobileDashboard_sub_filter_label_field"; +import MobileDashboard_sub_filter_color_field from "@salesforce/label/c.MobileDashboard_sub_filter_color_field"; +import MobileDashboard_sub_filter_color_field_infobubble from "@salesforce/label/c.MobileDashboard_sub_filter_color_field_infobubble"; +import MobileDashboard_preview_title from "@salesforce/label/c.MobileDashboard_preview_title"; +import MobileDashboard_preview_title_infobubble from "@salesforce/label/c.MobileDashboard_preview_title_infobubble"; +import MobileDashboard_sub_filter_options from "@salesforce/label/c.MobileDashboard_sub_filter_options"; + +const customLabels = { + MobileDashboard_settings_duplicate_button, + MobileDashboard_settings_delete_button, + MobileDashboard_sub_filter_label_field, + MobileDashboard_sub_filter_color_field, + MobileDashboard_sub_filter_color_field_infobubble, + MobileDashboard_preview_title, + MobileDashboard_preview_title_infobubble, + MobileDashboard_sub_filter_options +}; + +export default customLabels; diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css new file mode 100644 index 0000000..3c17738 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.css @@ -0,0 +1,88 @@ +.drag-divider { + margin: 6px 0; + height: 0; + width: 100%; + height: 2px; +} + +.drag-divider-active { + background-color: #1b96ff; +} + +h3 { + color: #444444; + font-weight: 700; + font-size: 13px; + line-height: 20px; +} + +.sub-filter { + display: flex; + flex-direction: row; + justify-content: space-between; + background-color: #f3f3f3; + border: 1px solid #c9c9c9; + border-radius: 4px; + padding: 12px; +} + +.grabber { + cursor: move; + margin-right: 20px; + display: flex; + align-items: center; + flex-shrink: 0; +} + +.row { + display: flex; + flex-direction: row; +} + +.menu { + flex-shrink: 0; +} + +lightning-button-menu { + background: white; +} + +.props-container { + width: calc(50% - 104px); + margin-right: 24px; + display: flex; + flex-direction: column; + justify-content: space-between; + flex: 1; +} + +lightning-input, +lightning-combobox, +c-dashboard-icons-picker { + margin-right: 16px; +} + +c-basic-filter { + flex: 1; +} + +.preview { + margin-right: 24px; + display: flex; + flex-direction: column; + justify-content: start; + flex: 2; +} + +.slds-form-element__label { + line-height: 22px; +} + +lightning-helptext { + margin-left: 8px; +} + +.props-list { + display: flex; + flex-direction: row; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html new file mode 100644 index 0000000..91c532e --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.html @@ -0,0 +1,92 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js similarity index 77% rename from MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js rename to projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js index da167e2..df12af5 100644 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js @@ -1,5 +1,5 @@ -import { LightningElement, api, wire } from 'lwc'; -import customLabels from './labels'; +import { LightningElement, api } from "lwc"; +import customLabels from "./labels"; export default class SubFilterCard extends LightningElement { @api index; @@ -21,39 +21,41 @@ export default class SubFilterCard extends LightningElement { } renderedCallback() { - this.dragDivider = this.template.querySelector('.drag-divider'); + this.dragDivider = this.template.querySelector(".drag-divider"); } + // eslint-disable-next-line no-unused-vars allowDrag = (e) => { this.canBeDragged = true; }; + // eslint-disable-next-line no-unused-vars @api disableDrag = (e) => { this.canBeDragged = false; }; @api removeDragDivider() { - this.dragDivider.classList.remove('drag-divider-active'); + this.dragDivider.classList.remove("drag-divider-active"); } @api addDragDivider() { - this.dragDivider.classList.add('drag-divider-active'); + this.dragDivider.classList.add("drag-divider-active"); } @api checkValidation() { let isValid = true; // check name - const input = this.template.querySelector('.label-input'); + const input = this.template.querySelector(".label-input"); if (!input.validity.valid) { input.focus(); input.blur(); - input.classList.add('slds-has-error'); + input.classList.add("slds-has-error"); isValid = false; } // check the basic filter - const basicFilter = this.template.querySelector('c-basic-filter'); + const basicFilter = this.template.querySelector("c-basic-filter"); if (!basicFilter.checkValidation()) { isValid = false; } diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterCard/subFilterCard.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js new file mode 100644 index 0000000..4e07d48 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/__tests__/subFilterSummaryComponent.test.js @@ -0,0 +1,47 @@ +import { createElement } from "lwc"; +import SubFilterSummaryComponent from "c/subFilterSummaryComponent"; + +let element; +describe("c-sub-filter-summary-component", () => { + beforeEach(() => { + element = createElement("c-sub-filter-summary-component", { + is: SubFilterSummaryComponent + }); + + element.counter = 5; + element.icon = "utility:like"; + element.label = "the label"; + element.color = "#123456"; + }); + + afterEach(() => { + while (document.body.firstChild) { + document.body.removeChild(document.body.firstChild); + } + }); + + it("should show correct info", () => { + document.body.appendChild(element); + + const counter = element.shadowRoot.querySelector(".sub-counter"); + const subLabel = element.shadowRoot.querySelector(".sub-label"); + expect(counter.textContent).toBe("5"); + expect(subLabel.textContent).toBe("the label"); + }); + + it("should have side class", () => { + element.layout = "SIDE"; + document.body.appendChild(element); + + const container = element.shadowRoot.querySelector("div"); + expect(container.classList).toContain("side"); + }); + + it("should have stack class", () => { + element.layout = "STACK"; + document.body.appendChild(element); + + const container = element.shadowRoot.querySelector("div"); + expect(container.classList).toContain("stack"); + }); +}); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css new file mode 100644 index 0000000..4c94819 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.css @@ -0,0 +1,49 @@ +.main-container { + background-color: white; + min-width: 95px; + padding: 8px; + border: 2px solid var(--slds-g-color-neutral-base-95, #f3f3f3); + border-radius: 12px; + display: flex; +} + +.placeholder { + height: 24px; +} + +.side { + flex-direction: column; + justify-content: center; + height: 66px; +} + +.stack { + flex-direction: row; + align-items: center; +} + +.sub-counter { + font-size: 20px; + line-height: 24px; +} + +.side .sub-counter { + margin-bottom: 4px; +} + +.stack .sub-counter { + margin-right: 16px; +} + +.sub-label { + display: flex; + flex-direction: row; + align-items: center; + font-weight: 700; + font-size: 12px; + line-height: 18px; +} + +.icon { + margin-right: 4px; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html new file mode 100644 index 0000000..ad7740e --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.html @@ -0,0 +1,24 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js similarity index 70% rename from MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js rename to projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js index a141285..72876a8 100644 --- a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class SubFilterSummaryComponent extends LightningElement { @api counter; @@ -8,12 +8,12 @@ export default class SubFilterSummaryComponent extends LightningElement { @api layout; renderedCallback() { - const text = this.template.querySelector('.sub-label'); + const text = this.template.querySelector(".sub-label"); if (text) text.style.color = this.color; - const icon = this.template.querySelector('.icon'); + const icon = this.template.querySelector(".icon"); if (icon) { icon.setAttribute( - 'style', + "style", `--lwc-colorTextIconDefault: ${this.color}; --sds-c-icon-color-foreground-default: ${this.color}` ); @@ -25,11 +25,11 @@ export default class SubFilterSummaryComponent extends LightningElement { } get mainContainerClass() { - return `main-container ${this.layout === 'SIDE' ? 'side' : 'stack'}`; + return `main-container ${this.layout === "SIDE" ? "side" : "stack"}`; } get counterDisplay() { - return this.counter.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + return this.counter.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } get displayPlus() { diff --git a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/subFilterSummaryComponent/subFilterSummaryComponent.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js similarity index 64% rename from MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js rename to projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js index c0a5b15..e0ec4df 100644 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/BuildGraphQL.js @@ -1,6 +1,6 @@ export class DQM { - static cpx(s = '') { - console.log(`%c${s ?? ''}`, 'background:#ffcc33;color:#000;'); + static cpx(s = "") { + console.log(`%c${s ?? ""}`, "background:#ffcc33;color:#000;"); } static get MaxNumOfTokens() { return 26; @@ -9,90 +9,94 @@ export class DQM { return 20; } static charx(offset = 0) { - return String.fromCharCode('A'.charCodeAt(0) + offset); + return String.fromCharCode("A".charCodeAt(0) + offset); } - static sanitizex(s = '') { - return (s ?? '').replaceAll('and', '&').replaceAll('or', '|').replaceAll(' ', '').toLowerCase(); + static sanitizex(s = "") { + return (s ?? "") + .replaceAll("and", "&") + .replaceAll("or", "|") + .replaceAll(" ", "") + .toLowerCase(); } static calcDateFromToday(numOfDays) { //retunrs yyyy-mm-dd try { - numOfDays = parseInt(numOfDays); + numOfDays = parseInt(numOfDays, 10); numOfDays = isNaN(numOfDays) ? 0 : numOfDays; - if (numOfDays === 'NaN') numOfDays = 0; + if (numOfDays === "NaN") numOfDays = 0; const dt = new Date(); dt.setDate(dt.getDate() + numOfDays); - let ret = dt.toISOString().slice(0, 'yyyy-mm-dd'.length); + let ret = dt.toISOString().slice(0, "yyyy-mm-dd".length); return ret; } catch (ex) { let dx = new Date(); dx.setDate(dx.getDate()); - return dx.toISOString().slice(0, 'yyyy-mm-dd'.length); + return dx.toISOString().slice(0, "yyyy-mm-dd".length); } } static isoDayStart(yyyy_mm_dd) { //2023-04-05T23:59:59.999Z - return yyyy_mm_dd + 'T00:00:00.000Z'; + return yyyy_mm_dd + "T00:00:00.000Z"; } static isoDayEnd(yyyy_mm_dd) { - return yyyy_mm_dd + 'T23:59:59.999Z'; + return yyyy_mm_dd + "T23:59:59.999Z"; } - static isValidToken(token = '') { + static isValidToken(token = "") { try { let tokenx = token.slice(1, token.length - 1); //each token has brackets around it but none inside it - let is_and = tokenx.includes('&'); - let is_or = tokenx.includes('|'); + let is_and = tokenx.includes("&"); + let is_or = tokenx.includes("|"); if (is_and && is_or) return false; if (!is_and && !is_or) return true; - let op = is_and ? '&' : '|'; + let op = is_and ? "&" : "|"; let arx = tokenx.split(op); - if (arx.pop() == '') return false; //happens if op is last char if tokenx or if tokenx is empty + if (arx.pop() === "") return false; //happens if op is last char if tokenx or if tokenx is empty return true; } catch (ex) { - DQM.cpx('isValidToken() ex: ' + ex.message); + DQM.cpx("isValidToken() ex: " + ex.message); return false; } } static valueFormatter(idx, value, field_type, is_like = false) { try { - if (typeof value == 'undefined' || typeof field_type == 'undefined') { + if (typeof value == "undefined" || typeof field_type == "undefined") { DQM.cpx(`valueFormatter(${idx}) - invalid input 01`); - return ''; + return ""; } - value = typeof value == 'string' ? value.trim() : value; + value = typeof value == "string" ? value.trim() : value; field_type = field_type.trim(); if (value === undefined || field_type === undefined) { DQM.cpx( `valueFormatter(${idx}) - invalid input 02 - value=[${value}] field_type=[${field_type}] ` ); - return; + return undefined; } field_type = field_type.toLowerCase(); let is_add_quotes = [ - 'string', - 'picklist', - 'combobox', - 'date', - 'datetime', - 'phone', - 'email', - 'url', - 'address', - 'text', + "string", + "picklist", + "combobox", + "date", + "datetime", + "phone", + "email", + "url", + "address", + "text" ].includes(field_type) || is_like; let valuex = is_like ? `%${value}%` : value; valuex = is_add_quotes ? `"${valuex}"` : valuex; - if (field_type == 'datetime') { + if (field_type === "datetime") { const isoString = new Date(value).toISOString(); valuex = `{value:"${isoString}"}`; - } else if (field_type == 'date') { + } else if (field_type === "date") { valuex = `{value:${valuex}}`; } return valuex; @@ -100,7 +104,7 @@ export class DQM { DQM.cpx( `valueFormatter(${idx}) ex: ${ex.message} value=[${value}] field_type=[${field_type}] ` ); - return ''; + return ""; } } @@ -115,15 +119,15 @@ export class DQM { [...tmp].forEach((token) => { if (obx.counter >= DQM.MaxNumOfTokens) { //the obx.dic is from A to Z. which should be more than enough. - obx.error_msg = 'Invalid expression.'; - obx.error_code = '101'; + obx.error_msg = "Invalid expression."; + obx.error_code = "101"; obx.is_done = true; return; } if (!DQM.isValidToken(token)) { - obx.error_msg = 'Invalid expression.'; - obx.error_code = '102'; + obx.error_msg = "Invalid expression."; + obx.error_code = "102"; obx.is_done = true; return; } @@ -140,42 +144,43 @@ export class DQM { obx.phrase = obx.phrase.replace(token, tag); }); } catch (ex) { - DQM.cpx('singleTokenParser() ex: ' + ex.message); + DQM.cpx("singleTokenParser() ex: " + ex.message); obx.error_msg = ex.message; - obx.error_code = '110'; + obx.error_code = "110"; obx.is_done = true; } } - static gqlConverter(s = '') { + static gqlConverter(s = "") { + //failure if ret.error_msg is not empty. success otherwise. + let ret = { qry: "", error_msg: "", error_code: "" }; try { - //failure if ret.error_msg is not empty. success otherwise. - let ret = { qry: '', error_msg: '', error_code: '' }; - let is_and = s.includes('&'); - let is_or = s.includes('|'); + let is_and = s.includes("&"); + let is_or = s.includes("|"); if (is_and && is_or) { - ret.error_msg = 'invalid expression.'; - ret.error_code = '201'; + ret.error_msg = "invalid expression."; + ret.error_code = "201"; return ret; } if (!is_and && !is_or) { ret.qry = s; return ret; } //nothing to do. no operators in the string. - let op = is_and ? '&' : '|'; - let list = s.replaceAll('&', ',').replaceAll('|', ','); + let op = is_and ? "&" : "|"; + let list = s.replaceAll("&", ",").replaceAll("|", ","); ret.qry = `{${op}:[${list}]}`; return ret; } catch (ex) { - DQM.cpx('gqlConverter() ex: ' + ex.message); + DQM.cpx("gqlConverter() ex: " + ex.message); ret.error_msg = ex.message; - ret.error_code = '202'; + ret.error_code = "202"; return ret; } } static assembleQuery(obx, ret, main_filter) { try { + // eslint-disable-next-line guard-for-in for (const propx in obx.dic) { let arx = obx.dic[propx].match(/[A-Z]/g); if (!arx) continue; @@ -185,27 +190,28 @@ export class DQM { } let finalx = obx.dic[DQM.charx(obx.counter - 1)]; //the last one + // eslint-disable-next-line no-useless-escape if (/^[1-9&|(){}\[\],:]*$/.test(finalx) !== true) { - ret.error_msg = 'Invalid expression.'; - ret.error_code = '301'; + ret.error_msg = "Invalid expression."; + ret.error_code = "301"; ret.is_success = false; return; } if (/\d{2}/.test(finalx)) { //there should not be 2 or more digits in a row. elements are 1,2,...9 at most - ret.error_msg = 'Invalid expression.'; - ret.error_code = '302 (Filter numbers must be from 1 to 9)'; + ret.error_msg = "Invalid expression."; + ret.error_code = "302 (Filter numbers must be from 1 to 9)"; ret.is_success = false; return; } - finalx = finalx.replaceAll('&', 'and').replaceAll('|', 'or'); + finalx = finalx.replaceAll("&", "and").replaceAll("|", "or"); - let all_digits_in_final_phrase = finalx.replace(/\D/g, ''); + let all_digits_in_final_phrase = finalx.replace(/\D/g, ""); let max_allowed_digit = main_filter.length; for (let i = max_allowed_digit + 1; i <= 9; i++) { if (all_digits_in_final_phrase.includes(i.toString())) { - ret.error_msg = 'Invalid expression.'; - ret.error_code = '303 (Filter numbers with no matching filter)'; + ret.error_msg = "Invalid expression."; + ret.error_code = "303 (Filter numbers with no matching filter)"; ret.is_success = false; return; } @@ -222,45 +228,49 @@ export class DQM { //let valuex = DQM.valueFormatter(filter?.value, filter?.fieldType, filter?.operator?.toLowerCase().trim() == 'like'); //let expx = `{${filter.field}:{${filter.operator}: ${valuex}}}`; - finalx = finalx.replaceAll(`<>`, DQM.expression_maker(filter)); + finalx = finalx.replaceAll( + `<>`, + DQM.expression_maker(filter) + ); } ret.final_phrase = finalx; ret.is_success = true; } catch (ex) { - DQM.cpx('assembleQuery() ex: ' + ex.message); + DQM.cpx("assembleQuery() ex: " + ex.message); ret.error_msg = ex.message; - ret.error_code = '309'; + ret.error_code = "309"; ret.is_success = false; } } - static initialPhraseValidation(phrase = '') { + static initialPhraseValidation(phrase = "") { try { let s = DQM.sanitizex(phrase); - if (!s || s.includes('&&') || s.includes('||') || s.includes('()')) return '031'; - let num_of_left_bracket = s.split('(').length - 1; - let num_of_right_bracket = s.split(')').length - 1; - if (num_of_left_bracket != num_of_right_bracket) return '032'; + if (!s || s.includes("&&") || s.includes("||") || s.includes("()")) + return "031"; + let num_of_left_bracket = s.split("(").length - 1; + let num_of_right_bracket = s.split(")").length - 1; + if (num_of_left_bracket !== num_of_right_bracket) return "032"; return true; } catch (ex) { - DQM.cpx('initialPhraseValidation() ex: ' + ex.message); - return '033'; + DQM.cpx("initialPhraseValidation() ex: " + ex.message); + return "033"; } } static gqlCustomPhraseMaker(phrasex, main_filter) { + let phrase = (phrasex ?? "").toLowerCase(); + let ret = { + original_phrase: phrase, + final_phrase: "", + is_success: false, + error_msg: "", + error_code: "" + }; try { - let phrase = (phrasex ?? '').toLowerCase(); - let ret = { - original_phrase: phrase, - final_phrase: '', - is_success: false, - error_msg: '', - error_code: '', - }; let valx = DQM.initialPhraseValidation(phrase); //return value === true if valid, error code otherwise if (valx !== true) { - ret.error_msg = 'Invalid custom expression'; + ret.error_msg = "Invalid custom expression"; ret.error_code = valx; return ret; } @@ -270,8 +280,8 @@ export class DQM { phrase: DQM.sanitizex(phrase), dic: {}, is_done: false, - error_msg: '', - error_code: '', + error_msg: "", + error_code: "" }; for (let i = 0; i < DQM.NumOfParsingIterations; i++) { @@ -281,18 +291,18 @@ export class DQM { } if (obx.error_msg) { - ret.error_msg = 'Custom: ' + obx.error_msg; - ret.error_code = '401'; + ret.error_msg = "Custom: " + obx.error_msg; + ret.error_code = "401"; return ret; } if (!obx.is_done) { - ret.error_msg = 'Custom: invalid expression.'; - ret.error_code = '402'; + ret.error_msg = "Custom: invalid expression."; + ret.error_code = "402"; return ret; } let latest_qry = DQM.gqlConverter(obx.phrase); if (latest_qry.error_msg) { - ret.error_msg = 'Custom: ' + latest_qry.error_msg; + ret.error_msg = "Custom: " + latest_qry.error_msg; ret.error_code = latest_qry.error_code; } else { obx.dic[DQM.charx(obx.counter++)] = latest_qry.qry; @@ -300,9 +310,9 @@ export class DQM { } return ret; } catch (ex) { - DQM.cpx('gqlCustomPhraseMaker() ex: ' + ex.message); + DQM.cpx("gqlCustomPhraseMaker() ex: " + ex.message); ret.error_msg = ex.message; - ret.error_code = '409'; + ret.error_code = "409"; return ret; } } @@ -315,7 +325,7 @@ export class DQM { static relativeDateFilterMaker_IsoStyle(operator, filter) { try { let valuex; - if (operator == 'today') { + if (operator === "today") { valuex = DQM.calcDateFromToday(0); let startx = DQM.isoDayStart(valuex); let endx = DQM.isoDayEnd(valuex); @@ -326,10 +336,10 @@ export class DQM { return ret; } - if (operator == 'last' || operator == 'next') { + if (operator === "last" || operator === "next") { valuex = DQM.calcDateFromToday(0); - if (operator == 'last') { + if (operator === "last") { //including today valuex = DQM.isoDayEnd(valuex); } else { @@ -337,19 +347,19 @@ export class DQM { valuex = DQM.isoDayStart(valuex); } - let opx = operator == 'last' ? 'lte' : 'gte'; + let opx = operator === "last" ? "lte" : "gte"; let f1 = `{${filter.field}:{${opx}:{value:"${valuex}"}}}`; - let dirx = operator == 'last' ? -1 : 1; + let dirx = operator === "last" ? -1 : 1; let num_of_days = dirx * filter.quantity * - (filter.unit == 'month' ? 30 : 1) * - (filter.unit == 'week' ? 7 : 1); + (filter.unit === "month" ? 30 : 1) * + (filter.unit === "week" ? 7 : 1); valuex = DQM.calcDateFromToday(num_of_days); - opx = operator == 'last' ? 'gte' : 'lte'; - if (operator == 'last') { + opx = operator === "last" ? "gte" : "lte"; + if (operator === "last") { //including today valuex = DQM.isoDayStart(valuex); } else { @@ -361,10 +371,10 @@ export class DQM { return `{and: [${f1}, ${f2}]}`; } - DQM.cpx('relativeDateFilterMaker_IsoStyle() - not supported yet'); + DQM.cpx("relativeDateFilterMaker_IsoStyle() - not supported yet"); return null; } catch (ex) { - DQM.cpx('relativeDateFilterMaker_IsoStyle() - ex: ' + ex.message); + DQM.cpx("relativeDateFilterMaker_IsoStyle() - ex: " + ex.message); return null; } } @@ -373,36 +383,36 @@ export class DQM { try { let valuex; - if (filter.fieldType.toLowerCase() == 'datetime') { + if (filter.fieldType.toLowerCase() === "datetime") { return DQM.relativeDateFilterMaker_IsoStyle(operator, filter); } - if (operator == 'today') { + if (operator === "today") { valuex = `"${DQM.calcDateFromToday(0)}"`; return `{${filter.field}:{eq:{value:${valuex}}}}`; } - if (operator == 'last' || operator == 'next') { + if (operator === "last" || operator === "next") { valuex = `"${DQM.calcDateFromToday(0)}"`; - let opx = operator == 'last' ? 'lte' : 'gte'; + let opx = operator === "last" ? "lte" : "gte"; let f1 = `{${filter.field}:{${opx}:{value:${valuex}}}}`; - let dirx = operator == 'last' ? -1 : 1; + let dirx = operator === "last" ? -1 : 1; let num_of_days = dirx * filter.quantity * - (filter.unit == 'month' ? 30 : 1) * - (filter.unit == 'week' ? 7 : 1); + (filter.unit === "month" ? 30 : 1) * + (filter.unit === "week" ? 7 : 1); valuex = `"${DQM.calcDateFromToday(num_of_days)}"`; - opx = operator == 'last' ? 'gte' : 'lte'; + opx = operator === "last" ? "gte" : "lte"; let f2 = `{${filter.field}:{${opx}:{value:${valuex}}}}`; return `{and: [${f1}, ${f2}]}`; } - DQM.cpx('relativeDateFilterMaker() - invalid input'); + DQM.cpx("relativeDateFilterMaker() - invalid input"); return null; //should not happen } catch (ex) { - DQM.cpx('relativeDateFilterMaker() - ex: ' + ex.message); + DQM.cpx("relativeDateFilterMaker() - ex: " + ex.message); return null; } } @@ -410,36 +420,45 @@ export class DQM { static mainFilterExpressionMaker(obj) { try { let omni_main_filter = `{Id: {ne: "000000000000000000"}}`; - let main_filter_logic = obj?.node?.Main_Filter_Logic__c?.value?.toLowerCase().trim() ?? ''; + let main_filter_logic = + obj?.node?.Main_Filter_Logic__c?.value?.toLowerCase().trim() ?? ""; let main_filter_array = JSON.parse(obj?.node?.Main_Filter__c?.value); if ( !main_filter_logic || !main_filter_array || !Array.isArray(main_filter_array) || main_filter_array.length < 1 || - !['and', 'or', 'custom'].includes(main_filter_logic) + !["and", "or", "custom"].includes(main_filter_logic) ) { return omni_main_filter; } - if (main_filter_logic == 'custom') { - let phrase = obj?.node?.Custom_Logic__c?.value ?? ''; + if (main_filter_logic === "custom") { + let phrase = obj?.node?.Custom_Logic__c?.value ?? ""; let oQry = DQM.gqlCustomPhraseMaker(phrase, main_filter_array); if (!oQry.is_success) { - DQM.cpx(`${oQry.error_msg} - custom phrase:[${phrase}] - Error ${oQry.error_code}`); + DQM.cpx( + `${oQry.error_msg} - custom phrase:[${phrase}] - Error ${oQry.error_code}` + ); return omni_main_filter; } return oQry.final_phrase; } - let filters = ''; + let filters = ""; + // eslint-disable-next-line consistent-return main_filter_array.forEach((filter) => { let operator = filter?.operator?.toLowerCase().trim(); - if (!operator) return ''; //should not happen - if (['today', 'last', 'next'].includes(operator)) { + if (!operator) return ""; //should not happen + if (["today", "last", "next"].includes(operator)) { filters += DQM.relativeDateFilterMaker(operator, filter); } else { - let valuex = DQM.valueFormatter(1, filter?.value, filter?.fieldType, operator == 'like'); + let valuex = DQM.valueFormatter( + 1, + filter?.value, + filter?.fieldType, + operator === "like" + ); filters += `{${filter.field}:{${operator}:${valuex}}},`; } }); @@ -447,21 +466,26 @@ export class DQM { return main_exp; } catch (ex) { DQM.cpx(`mainFilterExpressionMaker() ex: ${ex.message}`); - return ''; + return ""; } } static expression_maker(filter) { try { let filterx; - if (!filter?.field || !filter?.operator || !filter?.value) return ''; + if (!filter?.field || !filter?.operator || !filter?.value) return ""; let operator = filter?.operator?.toLowerCase().trim(); if (!operator) return []; //should not happen - if (['today', 'last', 'next'].includes(operator)) { + if (["today", "last", "next"].includes(operator)) { filterx = DQM.relativeDateFilterMaker(operator, filter); } else { - let valuex = DQM.valueFormatter(2, filter?.value, filter?.fieldType, operator == 'like'); + let valuex = DQM.valueFormatter( + 2, + filter?.value, + filter?.fieldType, + operator === "like" + ); filterx = `{${filter.field}: {${filter.operator}: ${valuex}}}`; } return filterx; @@ -475,6 +499,7 @@ export class DQM { try { let sub_filters_arr = JSON.parse(obj?.node?.Sub_Filters__c?.value); let sub_filter_expressions_array = []; + // eslint-disable-next-line no-unused-vars sub_filters_arr.forEach((filter, idx) => { sub_filter_expressions_array.push(DQM.expression_maker(filter)); }); @@ -485,32 +510,37 @@ export class DQM { } } - static subQueriesMaker(obj, main_filter_exp, sub_filter_expressions_array, is_mobile_qry) { + static subQueriesMaker( + obj, + main_filter_exp, + sub_filter_expressions_array, + is_mobile_qry + ) { try { let object_name = obj?.node?.Object_Name__c?.value; if (!object_name) { - DQM.cpx('subQueriesMaker() - invalid object name.'); - return ''; + DQM.cpx("subQueriesMaker() - invalid object name."); + return ""; } let sub_filters_arr = JSON.parse(obj?.node?.Sub_Filters__c?.value); - let sub_qrys = ''; - let mobilex = is_mobile_qry ? '@category(name: "recordQuery")' : ''; + let sub_qrys = ""; + let mobilex = is_mobile_qry ? '@category(name: "recordQuery")' : ""; sub_filters_arr.forEach((filter, idx) => { - let wherex = main_filter_exp?.trim() ? `${main_filter_exp}, ` : ''; + let wherex = main_filter_exp?.trim() ? `${main_filter_exp}, ` : ""; let qry = `counter_${idx}: ${object_name}(where: {and: [${wherex}${sub_filter_expressions_array[idx]}] }, first: 2000) ${mobilex} {edges{node{Id}}}`; sub_qrys += qry; }); return sub_qrys; } catch (ex) { DQM.cpx(`subQueriesMaker() ex: ${ex.message}`); - return ''; + return ""; } } static queryAssembler(object_name, sub_qrys, main_filter_exp, is_mobile_qry) { try { - let mobilex = is_mobile_qry ? '@category(name: "recordQuery")' : ''; - let wherex = main_filter_exp?.trim() ? `where: ${main_filter_exp}, ` : ''; + let mobilex = is_mobile_qry ? '@category(name: "recordQuery")' : ""; + let wherex = main_filter_exp?.trim() ? `where: ${main_filter_exp}, ` : ""; let main_qry = `counter_main: ${object_name}(${wherex}first: 2000) ${mobilex} {edges{node{Id}}}`; let qry = `query ${object_name}{uiapi {query { ${main_qry} @@ -519,15 +549,16 @@ export class DQM { return qry; } catch (ex) { DQM.cpx(`queryAssembler() ex: ${ex.message}`); - return ''; + return ""; } } static gqlQueryMaker(obj) { try { - if (!DQM.isValidDataObject(obj)) return ''; + if (!DQM.isValidDataObject(obj)) return ""; let main_filter_exp = DQM.mainFilterExpressionMaker(obj); - let sub_filter_expressions_array = DQM.subFilterExpressionsArrayMaker(obj); + let sub_filter_expressions_array = + DQM.subFilterExpressionsArrayMaker(obj); let sub_qrys = DQM.subQueriesMaker( obj, main_filter_exp, @@ -543,7 +574,7 @@ export class DQM { return final_qry; } catch (ex) { DQM.cpx(`gqlQueryMaker() ex: ${ex.message}`); - return ''; + return ""; } } } diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js rename to projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js index aa3dae1..f67561c 100644 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/__tests__/summaryComponent.test.js @@ -1,11 +1,11 @@ -import { createElement } from 'lwc'; -import SummaryComponent from 'c/summaryComponent'; +import { createElement } from "lwc"; +import SummaryComponent from "c/summaryComponent"; let element; -describe('c-summary-component', () => { +describe("c-summary-component", () => { beforeEach(() => { - element = createElement('c-summary-component', { - is: SummaryComponent, + element = createElement("c-summary-component", { + is: SummaryComponent }); }); @@ -15,125 +15,125 @@ describe('c-summary-component', () => { } }); - it('should show 2 sub-filter-sum-components', async () => { + it("should show 2 sub-filter-sum-components", async () => { element.settings = { subQueriesData: [ { index: 0, count: 1, subFilter: { - key: 'rwn1fa', - fieldDisplay: 'Time Sheet End Date', - value: '', - unitDisplay: 'days', - quantity: '14', - operatorDisplay: 'last', - }, + key: "rwn1fa", + fieldDisplay: "Time Sheet End Date", + value: "", + unitDisplay: "days", + quantity: "14", + operatorDisplay: "last" + } }, { index: 1, count: 1, subFilter: { - key: '131fdb', - fieldDisplay: 'Time Sheet Start Date', - value: '', - unitDisplay: 'weeks', - quantity: '1', - operatorDisplay: 'last', - }, - }, - ], + key: "131fdb", + fieldDisplay: "Time Sheet Start Date", + value: "", + unitDisplay: "weeks", + quantity: "1", + operatorDisplay: "last" + } + } + ] }; - element.demoMode = 'true'; + element.demoMode = "true"; document.body.appendChild(element); return Promise.resolve().then(() => { const subFilterSummaryComponents = element.shadowRoot.querySelectorAll( - 'c-sub-filter-summary-component' + "c-sub-filter-summary-component" ); expect(subFilterSummaryComponents).toHaveLength(2); }); }); - it('should show correct title', async () => { + it("should show correct title - 1", async () => { element.settings = { node: { - Id: 'a0oRO0000005xCKYAY', + Id: "a0oRO0000005xCKYAY", Object_Name__c: { - value: 'ResourceAbsence', + value: "ResourceAbsence" }, Title__c: { - value: 'My Absences', + value: "My Absences" }, Main_Filter__c: { value: - '[{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}, {"key":"ken23n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]', + '[{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}, {"key":"ken23n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}]' }, Main_Filter_Logic__c: { - value: 'CUSTOM', + value: "CUSTOM" }, Custom_Logic__c: { - value: '1 AND 2', + value: "1 AND 2" }, Layout__c: { - value: 'SIDE', + value: "SIDE" }, Sub_Filters__c: { value: - '[{"key":"7wtchc","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":true,"unit":"","unitDisplay":"","quantity":"","label":"Approved","icon":"utility:success","color":"#2E844A","operatorDisplay":"="},{"key":"e7fjv2","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":false,"unit":"","unitDisplay":"","quantity":"","label":"Not Approved","icon":"utility:error","color":"#B72020","operatorDisplay":"="}]', + '[{"key":"7wtchc","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":true,"unit":"","unitDisplay":"","quantity":"","label":"Approved","icon":"utility:success","color":"#2E844A","operatorDisplay":"="},{"key":"e7fjv2","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":false,"unit":"","unitDisplay":"","quantity":"","label":"Not Approved","icon":"utility:error","color":"#B72020","operatorDisplay":"="}]' }, Order__c: { - value: 0, - }, - }, + value: 0 + } + } }; - element.demoMode = 'false'; + element.demoMode = "false"; document.body.appendChild(element); return Promise.resolve().then(() => { - const title = element.shadowRoot.querySelector('.main-container>p'); - expect(title.textContent).toBe('My Absences (0)'); + const title = element.shadowRoot.querySelector(".main-container>p"); + expect(title.textContent).toBe("My Absences (0)"); }); }); - it('should show correct title', async () => { + it("should show correct title - 2", async () => { element.settings = { node: { - Id: 'a0oRO0000005xCKYAY', + Id: "a0oRO0000005xCKYAY", Object_Name__c: { - value: 'ResourceAbsence', + value: "ResourceAbsence" }, Title__c: { - value: 'The Absences', + value: "The Absences" }, Main_Filter__c: { value: - '[{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"today","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}, {"key":"ken23n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"eq","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"="},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"next","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"next"}]', + '[{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"today","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"}, {"key":"ken23n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATETIME","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"last","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"last"},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"eq","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"="},{"key":"ken22n","field":"Start","fieldDisplay":"Start Time","fieldType":"DATE","operator":"next","value":"","unit":"month","unitDisplay":"months","quantity":"12","label":"","icon":"","color":"#747474","operatorDisplay":"next"}]' }, Main_Filter_Logic__c: { - value: 'OR', + value: "OR" }, Custom_Logic__c: { - value: '', + value: "" }, Layout__c: { - value: 'SIDE', + value: "SIDE" }, Sub_Filters__c: { value: - '[{"key":"e7fjv2","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":false,"unit":"","unitDisplay":"","quantity":"","label":"Not Approved","icon":"utility:error","color":"#B72020","operatorDisplay":"="}]', + '[{"key":"e7fjv2","field":"FSL__Approved__c","fieldDisplay":"Approved","fieldType":"BOOLEAN","operator":"eq","value":false,"unit":"","unitDisplay":"","quantity":"","label":"Not Approved","icon":"utility:error","color":"#B72020","operatorDisplay":"="}]' }, Order__c: { - value: 0, - }, - }, + value: 0 + } + } }; - element.demoMode = 'false'; + element.demoMode = "false"; document.body.appendChild(element); return Promise.resolve().then(() => { - const title = element.shadowRoot.querySelector('.main-container>p'); - expect(title.textContent).toBe('The Absences (0)'); + const title = element.shadowRoot.querySelector(".main-container>p"); + expect(title.textContent).toBe("The Absences (0)"); }); }); }); diff --git a/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css new file mode 100644 index 0000000..b437899 --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.css @@ -0,0 +1,41 @@ +.main-container { + background-color: var(--slds-g-color-neutral-base-100, white); + margin-bottom: 16px; + border-radius: 12px; +} + +p { + font-size: 16px; + line-height: 22px; + font-weight: 600; + padding: 13px 12px 0px 12px; + color: var(--slds-g-color-neutral-base-10, #181818); +} + +.padding-non-empty-card { + padding-bottom: 8px; +} + +.sub-container { + display: flex; + padding: 0 12px 12px 4px; +} + +.sub-container-side { + flex-direction: row; + flex-wrap: wrap; +} + +.sub-container-stack { + flex-direction: column; +} + +c-sub-filter-summary-component { + flex: 1; + margin-left: 8px; + margin-top: 8px; +} + +.border { + border: 1px solid #c9c9c9; +} diff --git a/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html new file mode 100644 index 0000000..51c72df --- /dev/null +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.html @@ -0,0 +1,24 @@ + diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js rename to projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js index 5a1aa23..ad6d414 100644 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js @@ -1,6 +1,6 @@ -import { LightningElement, api, wire } from 'lwc'; -import { gql, graphql, refreshGraphQL } from 'lightning/uiGraphQLApi'; -import { DQM } from './BuildGraphQL'; +import { LightningElement, api, wire } from "lwc"; +import { gql, graphql, refreshGraphQL } from "lightning/uiGraphQLApi"; +import { DQM } from "./BuildGraphQL"; export default class SummaryComponent extends LightningElement { @api settings; @@ -8,7 +8,7 @@ export default class SummaryComponent extends LightningElement { recordsCount = 0; subQueriesData = []; - fullQuery = ''; + fullQuery = ""; queryResult; refreshed = false; @@ -28,7 +28,7 @@ export default class SummaryComponent extends LightningElement { } @wire(graphql, { - query: '$fullQuery', + query: "$fullQuery" }) GetDbResults(result) { this.queryResult = result; @@ -56,41 +56,47 @@ export default class SummaryComponent extends LightningElement { } setRecordsAndSubQueries(data) { - this.recordsCount = this.getResults(data, 'counter_main'); + this.recordsCount = this.getResults(data, "counter_main"); for (let [i, subFilter] of this.subFilters.entries()) { this.subQueriesData[i] = { count: this.getResults(data, `counter_${i}`), index: i, label: subFilter.label, icon: subFilter.icon, - color: subFilter.color, + color: subFilter.color }; } this.subQueriesData = [...this.subQueriesData]; } get subContainerClass() { - return `sub-container ${this.layout === 'SIDE' ? 'sub-container-side' : 'sub-container-stack'}`; + return `sub-container ${ + this.layout === "SIDE" ? "sub-container-side" : "sub-container-stack" + }`; } get subFilters() { - return JSON.parse(this.settings?.node?.Sub_Filters__c.value ?? '[]'); + return JSON.parse(this.settings?.node?.Sub_Filters__c.value ?? "[]"); } get title() { - return this.isDemoMode ? this.settings?.Title__c : this.settings?.node?.Title__c.value; + return this.isDemoMode + ? this.settings?.Title__c + : this.settings?.node?.Title__c.value; } get layout() { - return this.isDemoMode ? this.settings?.Layout__c : this.settings?.node?.Layout__c.value; + return this.isDemoMode + ? this.settings?.Layout__c + : this.settings?.node?.Layout__c.value; } get isDemoMode() { - return this.demoMode === 'true'; + return this.demoMode === "true"; } get recordsCountDisplay() { - return this.recordsCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','); + return this.recordsCount.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } get displayPlus() { @@ -98,15 +104,17 @@ export default class SummaryComponent extends LightningElement { } get mainContainerClass() { - return `main-container ${this.isDemoMode ? 'border' : ''}`; + return `main-container ${this.isDemoMode ? "border" : ""}`; } get isNonEmptyCard() { - return this.isDemoMode ? !!this.settings.subQueriesData.length : !!this.subFilters.length; + return this.isDemoMode + ? !!this.settings.subQueriesData.length + : !!this.subFilters.length; } get nonEmptyCardTitleClass() { - return this.isNonEmptyCard ? 'padding-non-empty-card' : ''; + return this.isNonEmptyCard ? "padding-non-empty-card" : ""; } @api async refreshGraphQL() { diff --git a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml similarity index 67% rename from MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml rename to projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml index eac275d..e013881 100644 --- a/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/lwc/summaryComponent/summaryComponent.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml index 3e1affd..f476bb2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml index 36e3c66..d191f3d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml index 5c4eb42..2d95bcf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml index 54b4e19..e44ae72 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml index 8961fa5..83c14f2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Mobile_Dashboard_Setting__c-bg.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Име на настройка на мобилно табло diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml index 248be0d..6b21ea8 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml index 8fff7e1..0729a81 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml index b1c146f..6104aad 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml index e245456..17bd857 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-bg/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml index 473efc3..b21c41e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml index aea4e0d..813843b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml index 790bd5b..503748b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml index c04976d..baf8618 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml similarity index 98% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml index f79ac49..38f5015 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Mobile_Dashboard_Setting__c-cs.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Název nastavení mobilní palubovky diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml index 3b421e2..b08681f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml index ab29c69..f125f7d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml index 680aaad..8bee1ac 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml index 30b5c63..a4fb739 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-cs/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml index 2a0f884..17153f5 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml index e9b62f7..d5fd116 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml index f3516f8..077d82c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml index b78003f..bd3fc6b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml similarity index 96% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml index 3b072ab..da344e1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Mobile_Dashboard_Setting__c-da.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Navn på indstilling for mobildashboard diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml index dbfb6af..360f5e0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml index 15512e2..8706512 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml index 0aa2d63..4a5fc31 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml index 7c8a9da..0bbe578 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml index 3b2c188..d4a33b9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml index 91b010a..c130f94 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml index 76fe186..0549010 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml index 275273c..b4554c6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml similarity index 97% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml index 665cae1..b9604a7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Mobile_Dashboard_Setting__c-de.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Name der Mobile-Dashboard-Einstellung diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml index 3b0593a..c88db97 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml index dc30077..a1dc11f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml index 8a34ab2..9859c00 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml index 7c8a9da..0bbe578 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-de/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml index 13c08eb..9f281f6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml index 8cb4906..2845e97 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml index e563c72..ef7ddd6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml index 5ba9176..6fc281e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml index 1c67540..072513c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Mobile_Dashboard_Setting__c-el.objectTranslation-meta.xml @@ -1,6 +1,7 @@ - + - Όνομα ρύθμισης πίνακα εργαλείων για κινητές συσκευές + Όνομα ρύθμισης πίνακα εργαλείων για κινητές συσκευές Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml index 8b152a2..5e9a678 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml index aaebaf8..93d4ea6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml index 1a01d82..cd4b437 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml index de2fab3..2c5d83c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-el/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml index 82ccfde..833d0fd 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml index d6f246b..296e76e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml index 69495e2..d24763d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml index 4b549f6..ea37995 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml index daf5223..b2227d0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Mobile_Dashboard_Setting__c-en_GB.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Mobile Dashboard Setting Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml index bba0aff..ada50ed 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml index 5c1473f..7cfbb32 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml index 802efcc..d56aacf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml index b113321..c7fd19b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-en_GB/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml index 0a07d08..8989d05 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml index 4555684..012f19c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml index dbd09aa..af29d49 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml index c912bce..47d5d47 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml index ccaa0e3..1ee157e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Mobile_Dashboard_Setting__c-es.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nombre de parámetro de panel móvil diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml index 8fb29e5..c8574e7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml index 3ccad75..8a11a17 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml index 9155658..02fd6c7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml index 8623e6f..4facd68 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml index 0a07d08..8989d05 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml index 4555684..012f19c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml index dbd09aa..af29d49 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml index c912bce..47d5d47 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml index 0738527..00b6a71 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Mobile_Dashboard_Setting__c-es_MX.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nombre de parámetro de tablero móvil diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml index 8fb29e5..c8574e7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml index 3ccad75..8a11a17 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml index 9155658..02fd6c7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml index 8623e6f..4facd68 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es_MX/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml index 6f686f0..f4e97bc 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml index 3324d2d..01eb07e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml index 55df5b1..f1d8c55 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml index d0cc7c3..7b4999c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml similarity index 99% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml index ec06d34..929902b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Mobile_Dashboard_Setting__c-fi.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Mobiilimittariston asetuksen nimi diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml index caf76de..7b8c9dd 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml index a751fef..e66fabb 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml index a55475e..8df4afa 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml index 3b856c9..70e1937 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fi/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml index 9027bde..9efebd6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml index d7adb74..d0720c9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml index 28627b2..2edbae0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml index 68a9f0d..7241767 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml index 068028f..9e2bfee 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Mobile_Dashboard_Setting__c-fr.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nom du paramètre du tableau de bord mobile diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml index 51abf4e..2369e3c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml index 2482d2d..04864b5 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml index b4b1d59..aae89e2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml index 26666f4..5145590 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-fr/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml index 9098687..5371549 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml index 69a6149..75d73d1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml index 27c9449..0333640 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml index 0ab037e..948b87b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml similarity index 98% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml index 2ba9517..514279a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Mobile_Dashboard_Setting__c-hr.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Naziv postavke nadzorne ploče za mobitele diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml index 65ea4d7..786130f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml index 2e3346d..e01b871 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml index c444b97..a494dac 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml index d8e43cd..51cec6d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hr/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml index 6d74607..f23c8d2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml index a7a5c6d..f079ff6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml index 42c2348..80d4eb4 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml index 625510a..4d336d9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml similarity index 99% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml index 52f542b..c17492d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Mobile_Dashboard_Setting__c-hu.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Mobilműszerfal-beállításnév diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml index 531bd12..a451463 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml index a3f299b..83a071e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml index 0eb3344..c272887 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml index e314ee1..ff8da05 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-hu/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml index e5e02e2..b6fc148 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml index 12309a7..04e67ea 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml index 9cc551c..7377ca2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml index 07536c0..6381ef0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml index b22a82b..e6255a7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Mobile_Dashboard_Setting__c-in.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nama Pengaturan Dasbor Ponsel diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml index 198b274..ab13fed 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml index 82fdd06..1de3108 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml index a093b96..a667322 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml index 94f5e29..6bf205b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-in/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml index ab89f5f..d574468 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml index 142aec3..d64a452 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml index 81ac45b..e9f3a1a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml index 9bc3076..d62d6e7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml index 5311c11..9aeaf8f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Mobile_Dashboard_Setting__c-it.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nome impostazione cruscotto digitale mobile diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml index ae92e8c..f78f799 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml index 750cc95..b1db08d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml index fd1e906..43933fc 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml index 7319cdf..04dd442 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-it/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml index 606162e..6da9caf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml index 30e202c..680c053 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml index 56b619b..293a97f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml index cfd7704..492f2fe 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml similarity index 96% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml index 9c69538..824765b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Mobile_Dashboard_Setting__c-iw.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + שם הגדרת לוח מחוונים בנייד diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml index 57a1752..b205ad3 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml index 193d85b..8d499a2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml index 83e21fa..4ee2a8d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml index a490476..77e8ae7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-iw/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml index bc31142..5943ea5 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml index 48c407c..7369ec5 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml index 10f591e..deb70f9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml index 0568c67..2b70d2b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml index a63a1a2..a27bdb4 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Mobile_Dashboard_Setting__c-ja.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + モバイルダッシュボードの設定名 diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml index 3cc5fe2..462fca7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml index 2b4bcda..b02571e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml index e5cddb4..75a5265 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml index 7ea2e33..eb5bc7c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ja/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml index 1f37bf6..e6b419e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml index b1726fa..15ce0c2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml index d10c201..6d17dae 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml index d232d46..3e6627b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml index f872784..5296e12 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Mobile_Dashboard_Setting__c-ko.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + 모바일 대시보드 설정 이름 diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml index b9b022e..cb3334a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml index f796f40..25435ba 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml index 0e94990..898ec32 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml index d044213..bcf4739 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ko/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml index d0a6a58..fcf5826 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml index 68ed646..d8146c3 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml index ede4fba..5fe258d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml index 52b84f0..7cf9fdf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml index 9b65781..339b132 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Mobile_Dashboard_Setting__c-nl_NL.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Naam van instelling voor mobiel dashboard diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml index 0773ae7..bb1cb88 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml index 8d8032b..ee5254a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml index 3978c32..7cfd3b9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml index 7c8a9da..0bbe578 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-nl_NL/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml index b466482..6eff408 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml index 0ce97db..bbb9928 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml index 5789a0b..2c35e68 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml index b78003f..bd3fc6b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml similarity index 97% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml index 410b4f0..9bd5e62 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Mobile_Dashboard_Setting__c-no.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Navn på kontrollpanelinnstilling for mobil diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml index dbfb6af..360f5e0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml index b0b5ca1..27c1cd7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml index e791f1c..79af6c0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml index 633c06b..b206c74 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-no/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml index ac80a85..2e58afe 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml index 0582f69..805b1f1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml index 418141f..7c60f6d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml index a5e601e..41434fc 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml index f6c46ef..2a9344e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Mobile_Dashboard_Setting__c-pl.objectTranslation-meta.xml @@ -1,6 +1,7 @@ - + - Nazwa ustawienia pulpitu dla urządzeń przenośnych + Nazwa ustawienia pulpitu dla urządzeń przenośnych Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml index 6d46d22..7033ef8 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml index 8967517..307373e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml index 9524eb3..9afdaee 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml index 6a156d8..7856a53 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pl/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml index 0a07d08..8989d05 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml index 8540271..e3e7adf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml index 73851a3..a25f6d1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml index c912bce..47d5d47 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml index ed6f0ed..c83d9f2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Mobile_Dashboard_Setting__c-pt_BR.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nome da configuração do painel do celular diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml index 32b75df..0e8d989 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml index 311f65b..9d490d9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml index 9155658..02fd6c7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml index 8623e6f..4facd68 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_BR/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml index 0a07d08..8989d05 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-es/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml index c96e9e8..f982c8f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml index a3af1ac..8893186 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml index c912bce..47d5d47 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml index 37d90ca..af4de28 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Mobile_Dashboard_Setting__c-pt_PT.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nome da definição do painel móvel diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml index 32b75df..0e8d989 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml index b642bee..6b1d199 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml index 9155658..02fd6c7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml index 8623e6f..4facd68 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-pt_PT/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml index 152cca1..546a74e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml index 8403caa..beb13e7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml index a25d0ca..de025ff 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml index ae98eec..63c87c4 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml similarity index 97% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml index 7e18563..8d9d159 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Mobile_Dashboard_Setting__c-ro.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Nume setare tablou de bord mobil diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml index e580e7b..3327197 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml index 750cc95..b1db08d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml index 80e1a15..0697cde 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml index b0396f5..7acb897 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ro/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml index ba530db..0255acf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml index 89b084c..0ab8220 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml index b33ca68..9972ab3 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml index 4349e1f..59e8aed 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml index f03c5f4..23488d7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Mobile_Dashboard_Setting__c-ru.objectTranslation-meta.xml @@ -1,6 +1,7 @@ - + - Название параметра мобильной панели мониторинга + Название параметра мобильной панели мониторинга Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml index 5f29e4d..d4c5b46 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml index 862c2ea..020fc00 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml index 1f977d9..228fd48 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml index 3414c49..5dd7cea 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-ru/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml index 23ca945..d570fd4 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml index e020773..3312c57 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml index c70f77a..d741deb 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml index 9039ab4..5279f4a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml index 6cf9399..cdfe1f9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Mobile_Dashboard_Setting__c-sk.objectTranslation-meta.xml @@ -1,6 +1,7 @@ - + - Názov nastavenia mobilného ovládacieho panela + Názov nastavenia mobilného ovládacieho panela Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml index b06fa10..2e6ba76 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml index da5765f..961f4e1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml index 13c5da8..230bd6a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml index f0526ef..c2fa702 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sk/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml index e5144b6..66884d9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml index ef2965c..ba6483c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml index 59b39f1..318d434 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml index f1e8c81..ac0955c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml index 3b7abb7..6fee7e6 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Mobile_Dashboard_Setting__c-sl.objectTranslation-meta.xml @@ -1,6 +1,7 @@ - + - Ime nastavitve nadzorne plošče za mobilne naprave + Ime nastavitve nadzorne plošče za mobilne naprave Name diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml index 5dbcf24..8c4068d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml index a08a164..c9ae0f7 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml index b7f5ed6..769dcc4 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml index d8e43cd..51cec6d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sl/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml index f58d609..b3a84c0 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml index dab6748..8353ba9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml index 4dcbe7d..2b2def8 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml index f60fa10..9b600da 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml similarity index 97% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml index 4fa17cd..40e2b24 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Mobile_Dashboard_Setting__c-sv.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Inställningsnamn för mobil instrumentpanel diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml index a898b13..bb48412 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml index 5c1473f..7cfbb32 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml index 4889545..dbecf25 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml index 7c8a9da..0bbe578 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-da/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-sv/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml similarity index 83% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml index 595194a..93d4fa9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml index fb37bfe..97a26ca 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml index 42ff3ca..a46ab9a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml index c13e1c9..4b93952 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml index 12aeddf..ee39683 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Mobile_Dashboard_Setting__c-th.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + ชื่อการตั้งค่าแดชบอร์ด Mobile diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml index 37a5427..dfb6536 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml index 9d002bd..cc24381 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml index 0380746..925bb52 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml index c5b6884..f5b60cf 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-th/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml index f411bb8..598331c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml index 641d356..c0ba880 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml index afc02de..8339c18 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml index 69d4dee..a30f438 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml similarity index 99% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml index f20c199..7ed9b89 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Mobile_Dashboard_Setting__c-tr.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Mobil Panel Ayar Adı diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml index c55b28d..8d4b3f1 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml similarity index 78% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml index 71dc228..90d9ea2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml index 38c786a..6e9af1f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml index 436866b..ddc71b2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-tr/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml similarity index 82% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml index 7770461..3edd0fb 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml index cc37731..41726c9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml index 08ea013..0a6325d 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml index 6726c72..cbcd396 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml similarity index 98% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml index a9f93ae..654ff14 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Mobile_Dashboard_Setting__c-uk.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Назва параметра мобільної приладної дошки diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml index 737bb6d..28dba39 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml index fca0a8f..ccd6345 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml index ddbcdf8..f9d756a 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml index 3414c49..5dd7cea 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-uk/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml index 99a6121..9157ac5 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml index 9e82aa3..8e2d785 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml index a32eeb5..0304577 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml index 07b34d7..bde6848 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml index ccee562..cef3ec8 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Mobile_Dashboard_Setting__c-vi.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + Tên Cài Đặt Bảng Điều Khiển Di Động diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml similarity index 81% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml index 9df71f5..eb67573 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml index cffc7b3..0c19a3f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml index 25371e4..d9cdccb 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml index 845c708..0e5a7c9 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-vi/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml index 9735e76..4d5f49b 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml index 22a48a0..81fc912 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml index a7e9667..d7ff0c8 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml index 2b250e6..273cc8f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml index d8aed48..7d6799c 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Mobile_Dashboard_Setting__c-zh_CN.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + 移动仪表板设置名称 diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml index aae3bd3..fcbcb60 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml index 35a7641..53f8c86 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml index bf36f79..3ecc45f 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml index a948a92..2839e17 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_CN/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml index 85bcdf5..8475d72 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Custom_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml index 04755fa..80634ba 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Layout__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Layout__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml index 2e327e0..a7a07b2 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter_Logic__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml index cd09627..9bddf49 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Main_Filter__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml index f51212d..f58ddae 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Mobile_Dashboard_Setting__c-zh_TW.objectTranslation-meta.xml @@ -1,4 +1,4 @@ - + 行動顯示面板設定名稱 diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml index 8146f68..b51b607 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Object_Name__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml index 2b4bcda..b02571e 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Order__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Order__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml similarity index 80% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml index 0ee50ea..0f737f3 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Sub_Filters__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c diff --git a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml similarity index 79% rename from MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml rename to projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml index c8fd102..cc8c359 100644 --- a/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objectTranslations/Mobile_Dashboard_Setting__c-zh_TW/Title__c.fieldTranslation-meta.xml @@ -1,4 +1,4 @@ - + Title__c diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml similarity index 98% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml index fd1959b..15a6298 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/Mobile_Dashboard_Setting__c.object-meta.xml @@ -1,4 +1,4 @@ - + Accept @@ -159,7 +159,7 @@ Text Mobile Dashboard Settings - + ReadWrite Public diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml index 2240923..2ac42af 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Custom_Logic__c.field-meta.xml @@ -1,4 +1,4 @@ - + Custom_Logic__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml similarity index 94% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml index 9888917..c3d22ee 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Layout__c.field-meta.xml @@ -1,4 +1,4 @@ - + Layout__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml similarity index 95% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml index 9132bf7..08fb2de 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter_Logic__c.field-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter_Logic__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml index ec2aa37..cc045e7 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Main_Filter__c.field-meta.xml @@ -1,4 +1,4 @@ - + Main_Filter__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml index fc0ec04..48e954d 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Object_Name__c.field-meta.xml @@ -1,4 +1,4 @@ - + Object_Name__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml index fd947bc..035f31a 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Order__c.field-meta.xml @@ -1,4 +1,4 @@ - + Order__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml index 0a07d53..4a0c174 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Sub_Filters__c.field-meta.xml @@ -1,4 +1,4 @@ - + Sub_Filters__c false diff --git a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml rename to projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml index 9b5dd0e..ed02956 100644 --- a/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/objects/Mobile_Dashboard_Setting__c/fields/Title__c.field-meta.xml @@ -1,4 +1,4 @@ - + Title__c false diff --git a/MobileDashboard/force-app/main/default/staticresources/side_example.resource-meta.xml b/projects/MobileDashboard/force-app/main/default/staticresources/side_example.resource-meta.xml similarity index 100% rename from MobileDashboard/force-app/main/default/staticresources/side_example.resource-meta.xml rename to projects/MobileDashboard/force-app/main/default/staticresources/side_example.resource-meta.xml diff --git a/MobileDashboard/force-app/main/default/staticresources/side_example.svg b/projects/MobileDashboard/force-app/main/default/staticresources/side_example.svg similarity index 100% rename from MobileDashboard/force-app/main/default/staticresources/side_example.svg rename to projects/MobileDashboard/force-app/main/default/staticresources/side_example.svg diff --git a/MobileDashboard/force-app/main/default/staticresources/stack_example.resource-meta.xml b/projects/MobileDashboard/force-app/main/default/staticresources/stack_example.resource-meta.xml similarity index 100% rename from MobileDashboard/force-app/main/default/staticresources/stack_example.resource-meta.xml rename to projects/MobileDashboard/force-app/main/default/staticresources/stack_example.resource-meta.xml diff --git a/MobileDashboard/force-app/main/default/staticresources/stack_example.svg b/projects/MobileDashboard/force-app/main/default/staticresources/stack_example.svg similarity index 100% rename from MobileDashboard/force-app/main/default/staticresources/stack_example.svg rename to projects/MobileDashboard/force-app/main/default/staticresources/stack_example.svg diff --git a/MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml b/projects/MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml similarity index 86% rename from MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml rename to projects/MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml index ae91cb4..0ec411b 100644 --- a/MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/tabs/Mobile_Dashboard_Settings.tab-meta.xml @@ -1,4 +1,4 @@ - + dashboardSettingsMain diff --git a/MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml index 5a1c6a4..c98e8cf 100644 --- a/MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/bg.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -382,7 +390,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -390,7 +399,8 @@ MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml index 5b8f7c0..46e3657 100644 --- a/MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/cs.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -382,15 +390,18 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +417,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/da.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/da.translation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/translations/da.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/da.translation-meta.xml index ed2a7c6..9fa807a 100644 --- a/MobileDashboard/force-app/main/default/translations/da.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/da.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +141,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +150,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description @@ -170,7 +176,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -406,7 +413,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/de.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/de.translation-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/translations/de.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/de.translation-meta.xml index 9ff40eb..48a9309 100644 --- a/MobileDashboard/force-app/main/default/translations/de.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/de.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,23 +383,28 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +420,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/el.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/el.translation-meta.xml similarity index 83% rename from MobileDashboard/force-app/main/default/translations/el.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/el.translation-meta.xml index 0060227..3341e67 100644 --- a/MobileDashboard/force-app/main/default/translations/el.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/el.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -366,7 +375,8 @@ MobileDashboard_settings_delete_card_warning_body - + MobileDashboard_settings_delete_sub_filter_warning_title @@ -374,23 +384,28 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +421,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml index 2e111f6..d161f9c 100644 --- a/MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/en_GB.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +141,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,8 +150,10 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -406,7 +413,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/es.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/es.translation-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/translations/es.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/es.translation-meta.xml index 83c9c83..d2682f3 100644 --- a/MobileDashboard/force-app/main/default/translations/es.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/es.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,23 +383,28 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +420,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml index c9b3682..a572596 100644 --- a/MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/es_MX.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,23 +383,28 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +420,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml index 9fec00e..415ef8d 100644 --- a/MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/fi.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -382,7 +391,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml index a8ddbfa..693759a 100644 --- a/MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/fr.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -378,19 +387,23 @@ MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +419,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml index 3596621..adc46ee 100644 --- a/MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/hr.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -382,7 +390,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -390,7 +399,8 @@ MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml index eda4af5..cc0452c 100644 --- a/MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/hu.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -406,7 +415,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/in.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/in.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/in.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/in.translation-meta.xml index 0e6c455..d700c6e 100644 --- a/MobileDashboard/force-app/main/default/translations/in.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/in.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,7 +383,8 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card @@ -382,7 +392,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +417,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/it.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/it.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/it.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/it.translation-meta.xml index 82eaa30..1489f22 100644 --- a/MobileDashboard/force-app/main/default/translations/it.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/it.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -366,7 +375,8 @@ MobileDashboard_settings_delete_card_warning_body - + MobileDashboard_settings_delete_sub_filter_warning_title @@ -374,7 +384,8 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card @@ -406,7 +417,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml similarity index 93% rename from MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml index 1f2900f..8838b57 100644 --- a/MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/iw.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -121,8 +122,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +140,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +149,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description @@ -406,7 +411,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml index 8553e3d..dceed4a 100644 --- a/MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/ja.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +141,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,8 +150,10 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -378,7 +385,8 @@ MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card @@ -386,11 +394,13 @@ MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml index f921c1c..3b3042a 100644 --- a/MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/ko.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -121,8 +122,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +140,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,8 +149,10 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -382,7 +388,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +413,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml index 32d91f6..c126d80 100644 --- a/MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/nl_NL.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -378,19 +387,23 @@ MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +419,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/no.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/no.translation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/translations/no.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/no.translation-meta.xml index c57cfef..7fa0552 100644 --- a/MobileDashboard/force-app/main/default/translations/no.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/no.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +141,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +150,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description @@ -170,7 +176,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -406,7 +413,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml index 8fe3aeb..ae47d2f 100644 --- a/MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/pl.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -382,7 +391,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -390,7 +400,8 @@ MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +417,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml index 5a206c0..1953207 100644 --- a/MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/pt_BR.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -378,19 +387,23 @@ MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +419,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml index 077aafa..66917cb 100644 --- a/MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/pt_PT.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -378,19 +387,23 @@ MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +419,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml similarity index 88% rename from MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml index 0add50d..9b4bd24 100644 --- a/MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/ro.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,23 +383,28 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card - + MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +420,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml index 1f80861..901d17f 100644 --- a/MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/ru.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -406,7 +414,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml similarity index 91% rename from MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml index 255086a..86fc94d 100644 --- a/MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/sk.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -374,7 +383,8 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml index e97019c..83bab47 100644 --- a/MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/sl.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -374,7 +382,8 @@ MobileDashboard_settings_delete_sub_filter_warning_body - + MobileDashboard_settings_error_add_card @@ -382,15 +391,18 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card - + MobileDashboard_settings_error_duplicate_card - + MobileDashboard_card_object_field @@ -406,7 +418,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml index acdd510..dff0682 100644 --- a/MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/sv.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -406,7 +414,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/th.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/th.translation-meta.xml similarity index 90% rename from MobileDashboard/force-app/main/default/translations/th.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/th.translation-meta.xml index 0ac5dcd..24bb9f9 100644 --- a/MobileDashboard/force-app/main/default/translations/th.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/th.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -121,8 +122,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +140,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +149,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description @@ -382,7 +387,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +412,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml similarity index 92% rename from MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml index c0b4927..2767f9e 100644 --- a/MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/tr.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +141,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +150,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description @@ -382,7 +388,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +413,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml index e7ba666..ff69683 100644 --- a/MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/uk.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -406,7 +415,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml similarity index 89% rename from MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml index b2c93cc..fdba850 100644 --- a/MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/vi.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -86,7 +87,8 @@ MobileDashboard_card_modal_details_filter_field_infobubble - + MobileDashboard_card_modal_details_filter_logic_and @@ -121,8 +123,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,16 +141,20 @@ - MobileDashboard_card_modal_design_tab_layout_side_description - + MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_stack_title - MobileDashboard_card_modal_design_tab_layout_stack_description - + MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_card_data_title @@ -170,7 +178,8 @@ MobileDashboard_sub_filter_color_field_infobubble - + MobileDashboard_sub_filter_options @@ -382,7 +391,8 @@ MobileDashboard_settings_error_save_card - + MobileDashboard_settings_error_delete_card @@ -406,7 +416,8 @@ MobileDashboard_preview_title_infobubble - + MobileDashboard_settings_duplicate_button diff --git a/MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml similarity index 95% rename from MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml index 655433f..7ede5aa 100644 --- a/MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/zh_CN.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -121,8 +122,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +140,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +149,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description diff --git a/MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml b/projects/MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml similarity index 95% rename from MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml rename to projects/MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml index 6241d2f..7404504 100644 --- a/MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml +++ b/projects/MobileDashboard/force-app/main/default/translations/zh_TW.translation-meta.xml @@ -1,4 +1,4 @@ - + MobileDashboard_settings_header @@ -10,7 +10,8 @@ MobileDashboard_settings_description - + MobileDashboard_settings_add_card_button @@ -121,8 +122,10 @@ - MobileDashboard_card_modal_details_custom_logic_field_infobubble - + MobileDashboard_card_modal_details_custom_logic_field_infobubble + MobileDashboard_card_modal_design_tab_name @@ -137,7 +140,8 @@ - MobileDashboard_card_modal_design_tab_layout_side_description + MobileDashboard_card_modal_design_tab_layout_side_description @@ -145,7 +149,8 @@ - MobileDashboard_card_modal_design_tab_layout_stack_description + MobileDashboard_card_modal_design_tab_layout_stack_description diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modal.js b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modal.js similarity index 64% rename from MobileDashboard/force-app/test/jest-mocks/lightning/modal.js rename to projects/MobileDashboard/force-app/test/jest-mocks/lightning/modal.js index ee04736..a2eabbe 100644 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modal.js +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modal.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class LightningModal extends LightningElement { @api close; diff --git a/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.html @@ -0,0 +1 @@ + diff --git a/FindNearby/force-app/test/jest-mocks/lightning/modalBody.js b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js similarity index 60% rename from FindNearby/force-app/test/jest-mocks/lightning/modalBody.js rename to projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js index 2ef978f..b820da7 100644 --- a/FindNearby/force-app/test/jest-mocks/lightning/modalBody.js +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalBody.js @@ -1,3 +1,3 @@ -import { LightningElement } from 'lwc'; +import { LightningElement } from "lwc"; export default class ModalBody extends LightningElement {} diff --git a/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.html @@ -0,0 +1 @@ + diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js similarity index 60% rename from MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js rename to projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js index c4a4708..31663a7 100644 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalFooter.js @@ -1,3 +1,3 @@ -import { LightningElement } from 'lwc'; +import { LightningElement } from "lwc"; export default class ModalFooter extends LightningElement {} diff --git a/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html new file mode 100644 index 0000000..572af9d --- /dev/null +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.html @@ -0,0 +1 @@ + diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js similarity index 63% rename from MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js rename to projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js index 2268506..4616b71 100644 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/modalHeader.js @@ -1,4 +1,4 @@ -import { LightningElement, api } from 'lwc'; +import { LightningElement, api } from "lwc"; export default class ModalHeader extends LightningElement { @api label; diff --git a/MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js similarity index 89% rename from MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js rename to projects/MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js index 7d115f3..eb4e350 100644 --- a/MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js +++ b/projects/MobileDashboard/force-app/test/jest-mocks/lightning/uiGraphQLApi.js @@ -4,7 +4,7 @@ * SPDX-License-Identifier: MIT * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT */ -import { createTestWireAdapter } from '@salesforce/wire-service-jest-util'; +import { createTestWireAdapter } from "@salesforce/wire-service-jest-util"; export class graphql extends createTestWireAdapter() { static emit(value, filterFn) { diff --git a/projects/MobileDashboard/jest.config.js b/projects/MobileDashboard/jest.config.js new file mode 100644 index 0000000..0a5775d --- /dev/null +++ b/projects/MobileDashboard/jest.config.js @@ -0,0 +1,17 @@ +const { jestConfig } = require("@salesforce/sfdx-lwc-jest/config"); + +module.exports = { + ...jestConfig, + modulePathIgnorePatterns: ["/.localdevserver"], + moduleNameMapper: { + "^lightning/modal$": "/force-app/test/jest-mocks/lightning/modal", + "^lightning/modalBody$": + "/force-app/test/jest-mocks/lightning/modalBody", + "^lightning/modalFooter$": + "/force-app/test/jest-mocks/lightning/modalFooter", + "^lightning/modalHeader$": + "/force-app/test/jest-mocks/lightning/modalHeader", + "^lightning/uiGraphQLApi$": + "/force-app/test/jest-mocks/lightning/uiGraphQLApi" + } +}; diff --git a/NameAndSignatureCapture/package.json b/projects/MobileDashboard/package.json similarity index 58% rename from NameAndSignatureCapture/package.json rename to projects/MobileDashboard/package.json index c8b953b..73d5bb2 100644 --- a/NameAndSignatureCapture/package.json +++ b/projects/MobileDashboard/package.json @@ -1,8 +1,8 @@ { - "name": "salesforce-app", + "name": "mobile-dashboard", "private": true, "version": "1.0.0", - "description": "Salesforce App", + "description": "Mobile Dashboard", "scripts": { "lint": "eslint **/lwc/**", "test": "npm run test:unit", @@ -14,16 +14,16 @@ "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" }, "devDependencies": { - "@lwc/eslint-plugin-lwc": "^1.1.2", - "@prettier/plugin-xml": "^2.0.1", - "@salesforce/eslint-config-lwc": "^3.2.3", - "@salesforce/eslint-plugin-aura": "^2.0.0", + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", "@salesforce/eslint-plugin-lightning": "^1.0.0", - "@salesforce/sfdx-lwc-jest": "^1.3.0", - "eslint": "^8.11.0", - "eslint-plugin-import": "^2.25.4", - "eslint-plugin-jest": "^26.1.2", - "prettier": "^2.6.0", - "prettier-plugin-apex": "^1.10.0" + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" } } diff --git a/projects/MobileDashboard/sfdx-project.json b/projects/MobileDashboard/sfdx-project.json new file mode 100644 index 0000000..3eb319f --- /dev/null +++ b/projects/MobileDashboard/sfdx-project.json @@ -0,0 +1,21 @@ +{ + "packageDirectories": [ + { + "path": "force-app", + "package": "Mobile Dashboard for Field Service Mobile", + "versionName": "Summer '24", + "versionNumber": "244.0.0.NEXT", + "default": true, + "versionDescription": "" + } + ], + "name": "Mobile Dashboard for Field Service Mobile", + "namespace": "", + "sfdcLoginUrl": "https://login.salesforce.com/", + "sourceApiVersion": "55.0", + "packageAliases": { + "Mobile Dashboard for Field Service Mobile": "0HoB00000008PtKKAU", + "Mobile Dashboard for Field Service Mobile@1.0.0-2": "04tB0000000h4nQIAQ", + "Mobile Dashboard for Field Service Mobile@1.1.0-1": "04tB0000000h4wAIAQ" + } +} diff --git a/ServiceDocumentSamples/.eslintignore b/projects/NameAndSignatureCapture/.eslintignore similarity index 100% rename from ServiceDocumentSamples/.eslintignore rename to projects/NameAndSignatureCapture/.eslintignore diff --git a/NameAndSignatureCapture/.forceignore b/projects/NameAndSignatureCapture/.forceignore similarity index 100% rename from NameAndSignatureCapture/.forceignore rename to projects/NameAndSignatureCapture/.forceignore diff --git a/NameAndSignatureCapture/.gitignore b/projects/NameAndSignatureCapture/.gitignore similarity index 100% rename from NameAndSignatureCapture/.gitignore rename to projects/NameAndSignatureCapture/.gitignore diff --git a/projects/NameAndSignatureCapture/.prettierignore b/projects/NameAndSignatureCapture/.prettierignore new file mode 100755 index 0000000..26253eb --- /dev/null +++ b/projects/NameAndSignatureCapture/.prettierignore @@ -0,0 +1,12 @@ +# List files or directories below to ignore them when running prettier +# More information: https://prettier.io/docs/en/ignore.html +# + +**/staticresources/** +.localdevserver +.sfdx +.vscode + +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/projects/NameAndSignatureCapture/.prettierrc b/projects/NameAndSignatureCapture/.prettierrc new file mode 100755 index 0000000..03da7ba --- /dev/null +++ b/projects/NameAndSignatureCapture/.prettierrc @@ -0,0 +1,14 @@ +{ + "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], + "overrides": [ + { + "files": "**/lwc/**/*.html", + "options": { "parser": "lwc" } + }, + { + "files": "*.{cmp,page,component}", + "options": { "parser": "html" } + } + ] +} diff --git a/NameAndSignatureCapture/README.md b/projects/NameAndSignatureCapture/README.md similarity index 100% rename from NameAndSignatureCapture/README.md rename to projects/NameAndSignatureCapture/README.md diff --git a/NameAndSignatureCapture/config/project-scratch-def.json b/projects/NameAndSignatureCapture/config/project-scratch-def.json similarity index 100% rename from NameAndSignatureCapture/config/project-scratch-def.json rename to projects/NameAndSignatureCapture/config/project-scratch-def.json diff --git a/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json b/projects/NameAndSignatureCapture/force-app/main/default/lwc/.eslintrc.json similarity index 59% rename from RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/.eslintrc.json index d679b1d..a82e76d 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json +++ b/projects/NameAndSignatureCapture/force-app/main/default/lwc/.eslintrc.json @@ -1,10 +1,13 @@ { - "extends": ["@salesforce/eslint-config-lwc/recommended", "prettier"], + "extends": ["@salesforce/eslint-config-lwc/recommended"], "overrides": [ { "files": ["*.test.js"], "rules": { "@lwc/lwc/no-unexpected-wire-adapter-usages": "off" + }, + "env": { + "node": true } } ] diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.css b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.css similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.css rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.css diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.html b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.html similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.html rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.html diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js-meta.xml b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js-meta.xml similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js-meta.xml rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signatureDemo/signatureDemo.js-meta.xml diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.css b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.css similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.css rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.css diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.html b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.html similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.html rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.html diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js diff --git a/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js-meta.xml b/projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js-meta.xml similarity index 100% rename from NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js-meta.xml rename to projects/NameAndSignatureCapture/force-app/main/default/lwc/signaturePad/signaturePad.js-meta.xml diff --git a/RescheduleAppointments/jest.config.js b/projects/NameAndSignatureCapture/jest.config.js similarity index 100% rename from RescheduleAppointments/jest.config.js rename to projects/NameAndSignatureCapture/jest.config.js diff --git a/projects/NameAndSignatureCapture/package.json b/projects/NameAndSignatureCapture/package.json new file mode 100644 index 0000000..71d142d --- /dev/null +++ b/projects/NameAndSignatureCapture/package.json @@ -0,0 +1,24 @@ +{ + "name": "name-and-signature-capture", + "private": true, + "version": "1.0.0", + "description": "Name and Signature Capture", + "scripts": { + "lint": "eslint **/lwc/**", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/NameAndSignatureCapture/sfdx-project.json b/projects/NameAndSignatureCapture/sfdx-project.json similarity index 100% rename from NameAndSignatureCapture/sfdx-project.json rename to projects/NameAndSignatureCapture/sfdx-project.json diff --git a/projects/RescheduleAppointments/.eslintignore b/projects/RescheduleAppointments/.eslintignore new file mode 100644 index 0000000..5f7b681 --- /dev/null +++ b/projects/RescheduleAppointments/.eslintignore @@ -0,0 +1,16 @@ +**/lwc/**/*.css +**/lwc/**/*.html +**/lwc/**/*.json +**/lwc/**/*.svg +**/lwc/**/*.xml +**/aura/**/*.auradoc +**/aura/**/*.cmp +**/aura/**/*.css +**/aura/**/*.design +**/aura/**/*.evt +**/aura/**/*.json +**/aura/**/*.svg +**/aura/**/*.tokens +**/aura/**/*.xml +**/aura/**/*.app +.sfdx diff --git a/RescheduleAppointments/.forceignore b/projects/RescheduleAppointments/.forceignore similarity index 100% rename from RescheduleAppointments/.forceignore rename to projects/RescheduleAppointments/.forceignore diff --git a/RescheduleAppointments/.gitignore b/projects/RescheduleAppointments/.gitignore similarity index 100% rename from RescheduleAppointments/.gitignore rename to projects/RescheduleAppointments/.gitignore diff --git a/projects/RescheduleAppointments/.prettierignore b/projects/RescheduleAppointments/.prettierignore new file mode 100755 index 0000000..26253eb --- /dev/null +++ b/projects/RescheduleAppointments/.prettierignore @@ -0,0 +1,12 @@ +# List files or directories below to ignore them when running prettier +# More information: https://prettier.io/docs/en/ignore.html +# + +**/staticresources/** +.localdevserver +.sfdx +.vscode + +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/projects/RescheduleAppointments/.prettierrc b/projects/RescheduleAppointments/.prettierrc new file mode 100755 index 0000000..03da7ba --- /dev/null +++ b/projects/RescheduleAppointments/.prettierrc @@ -0,0 +1,14 @@ +{ + "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], + "overrides": [ + { + "files": "**/lwc/**/*.html", + "options": { "parser": "lwc" } + }, + { + "files": "*.{cmp,page,component}", + "options": { "parser": "html" } + } + ] +} diff --git a/RescheduleAppointments/README.md b/projects/RescheduleAppointments/README.md similarity index 100% rename from RescheduleAppointments/README.md rename to projects/RescheduleAppointments/README.md diff --git a/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls b/projects/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls similarity index 100% rename from RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls rename to projects/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls diff --git a/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml b/projects/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml similarity index 77% rename from RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml index d75b058..482559c 100644 --- a/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/classes/AppointmentController.cls-meta.xml @@ -1,4 +1,4 @@ - + 51.0 Active diff --git a/RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml b/projects/RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml similarity index 81% rename from RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml index d73a74c..1033998 100644 --- a/RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/customLabels/customLabels.labels-meta.xml @@ -1,4 +1,4 @@ - + @@ -227,7 +227,8 @@ en_US true RescheduleAppoinment - Reschedule Appointment landing page title + Reschedule Appointment landing page title Reschedule Appoinyment @@ -235,7 +236,8 @@ en_US true RescheduleAppoinment - Reschedule Appoinyment compact info title + Reschedule Appoinyment compact info title Current Appointment @@ -247,35 +249,43 @@ Reschedule Appointment? - Reschedule_Appointment_accept_new_appointment_button + Reschedule_Appointment_accept_new_appointment_button en_US true RescheduleAppoinment - Accept new Appointment - button text + Accept new Appointment - button text Reschedule - Reschedule_Appointment_toastMessage_appointment_reschedule + Reschedule_Appointment_toastMessage_appointment_reschedule en_US true RescheduleAppoinment - Toast message when appointment gets rescheduled + Toast message when appointment gets rescheduled Appointment was rescheduled. - Reschedule_Appointment_same_appointment_selected_warning + Reschedule_Appointment_same_appointment_selected_warning en_US true RescheduleAppoinment - Reschedule appointment - Same slot selected warning + Reschedule appointment - Same slot selected warning Slot already booked. Please select another slot. - Reschedule_Appointment_toastMessage_reschedule_appointment_fail_message + Reschedule_Appointment_toastMessage_reschedule_appointment_fail_message en_US true RescheduleAppoinment - Toast message reschedule appointment fails to get update + Toast message reschedule appointment fails to get update We couldn’t reschedule the appointment. Try again later. @@ -283,11 +293,13 @@ en_US true RescheduleAppoinment - confirmation page failure message when booking fails + confirmation page failure message when booking fails It’s not you, it’s us. Please start over. - Reschedule_Appointment_no_available_appointments_msg + Reschedule_Appointment_no_available_appointments_msg en_US true RescheduleAppoinment @@ -299,7 +311,8 @@ en_US true RescheduleAppoinment - Show today text followed by date in time slot header + Show today text followed by date in time slot header Today @@ -311,27 +324,33 @@ Appointment was canceled. - Reschedule_Appointment_toastMessage_cancel_appointment_fail_message + Reschedule_Appointment_toastMessage_cancel_appointment_fail_message en_US true RescheduleAppoinment - Toast message cancel appointment fails to get update + Toast message cancel appointment fails to get update We couldn’t cancel the appointment. Try again later. - Reschedule_Appointment_toastMessage_appointment_confirmed + Reschedule_Appointment_toastMessage_appointment_confirmed en_US true RescheduleAppoinment - Toast message when appointment gets confirmed + Toast message when appointment gets confirmed Appointment was confirmed. - Reschedule_Appointment_toastMessage_confirm_appointment_fail_message + Reschedule_Appointment_toastMessage_confirm_appointment_fail_message en_US true RescheduleAppoinment - Toast message confirm appointment fails to get update + Toast message confirm appointment fails to get update We couldn’t confirm the appointment. Try again later. @@ -351,7 +370,8 @@ Next - Reschedule_Appointment_select_an_available_appointment_time + Reschedule_Appointment_select_an_available_appointment_time en_US true RescheduleAppoinment @@ -359,7 +379,8 @@ Select an available appointment time - Reschedule_Appointment_select_new_date_to_reschedule + Reschedule_Appointment_select_new_date_to_reschedule en_US true RescheduleAppoinment @@ -375,7 +396,8 @@ CURRENT APPOINTMENT - Reschedule_Appointment_confirmation_service_requested + Reschedule_Appointment_confirmation_service_requested en_US true RescheduleAppoinment @@ -391,7 +413,8 @@ Assigned to You ({0}) - Reschedule_Appointment_assigned_to_any_available_worker + Reschedule_Appointment_assigned_to_any_available_worker en_US true RescheduleAppoinment @@ -415,35 +438,43 @@ Recommended Appointments - Reschedule_Appointment_cant_select_Mobile_Worker_excluded + Reschedule_Appointment_cant_select_Mobile_Worker_excluded en_US true RescheduleAppoinment - Title for assign to mobile worker radio resource is excluded - You can’t select a mobile worker for this appointment. Ask your admin for help. + Title for assign to mobile worker radio resource is excluded + You can’t select a mobile worker for this appointment. Ask your admin for help. Reschedule_Appointment_Mobile_Worker_radio_title en_US true RescheduleAppoinment - Title for assign to mobile worker radio + Title for assign to mobile worker radio Mobile Worker - Reschedule_Appointment_Mobile_Worker_radio_assignToMe_lable + Reschedule_Appointment_Mobile_Worker_radio_assignToMe_lable en_US true RescheduleAppoinment - Label mobile worker radio assign to me option with tech name + Label mobile worker radio assign to me option with tech name You - Reschedule_Appointment_Mobile_Worker_radio_assignToAnyAvailable_lable + Reschedule_Appointment_Mobile_Worker_radio_assignToAnyAvailable_lable en_US true RescheduleAppoinment - Label mobile worker radio assign to any available technitian + Label mobile worker radio assign to any available technitian Any available worker @@ -459,31 +490,38 @@ en_US true RescheduleAppoinment - Label for show results button on full page calendar + Label for show results button on full page calendar OK - Reschedule_Appointment_empty_state_select_any_available_worker + Reschedule_Appointment_empty_state_select_any_available_worker en_US true RescheduleAppoinment - If no appointments available and the MW can select any available worker - Change the worker or date and try again. If you still can’t find any appointments, contact your admin for help. + If no appointments available and the MW can select any available worker + Change the worker or date and try again. If you still can’t find any appointments, contact your admin for help. Reschedule_Appointment_empty_state_change_the_dates en_US true RescheduleAppoinment - If no appointments available and the MW can't select any available worker - Change the date and try again. If you can’t find any appointments, contact your admin for help. + If no appointments available and the MW can't select any available worker + Change the date and try again. If you can’t find any appointments, contact your admin for help. Reschedule_Appointment_view_more_button en_US true RescheduleAppoinment - Label for view more appointments button + Label for view more appointments button View More @@ -491,7 +529,8 @@ en_US true RescheduleAppoinment - Reschedule Appointment Bottom sheet success + Reschedule Appointment Bottom sheet success The appointment was rescheduled. @@ -499,7 +538,8 @@ en_US true RescheduleAppoinment - Title for Reschedule Appointment Bottom sheet failure + Title for Reschedule Appointment Bottom sheet failure We couldn’t reschedule the appointment. @@ -507,8 +547,9 @@ en_US true RescheduleAppoinment - Content Reschedule Appointment Bottom sheet failure + Content Reschedule Appointment Bottom sheet failure Select a different time slot, or try again later. - \ No newline at end of file + diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json b/projects/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json new file mode 100644 index 0000000..a82e76d --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/.eslintrc.json @@ -0,0 +1,14 @@ +{ + "extends": ["@salesforce/eslint-config-lwc/recommended"], + "overrides": [ + { + "files": ["*.test.js"], + "rules": { + "@lwc/lwc/no-unexpected-wire-adapter-usages": "off" + }, + "env": { + "node": true + } + } + ] +} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css new file mode 100644 index 0000000..9381f1b --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.css @@ -0,0 +1,190 @@ +.calendar-nav-header { + margin-top: 10px; + padding-top: 12px; + padding-bottom: 12px; + align-items: center; +} +.selectedDay { + border-radius: 50%; + color: #ffff; + height: 32px; + width: 32px; + background-color: #0d7fa8 !important; +} +.unselectedDay { + color: rgb(43, 40, 38); + height: 32px; + width: 32px; +} +.blockDate { + color: rgb(201, 199, 197); + height: 32px; + width: 32px; +} +.currentDay { + color: rgba(1, 1, 1, 1); + border-radius: 50%; + height: 32px; + width: 32px; + border: 1px solid rgba(1, 1, 1, 1) !important; +} +.currentDayBlocked { + color: rgb(201, 199, 197); + border-radius: 50%; + height: 32px; + width: 32px; + border: 1px solid rgba(159, 170, 181, 0.5) !important; + background-color: #eeeeee !important; +} +.btn { + border: none; + cursor: pointer; + display: inline-block; + border: none; + background-color: inherit; + padding: 0px; + margin-top: 6px; + height: 32px; + width: 32px; +} +.monthButton { + height: 24px; + font-size: 18px; + font-weight: 500; + letter-spacing: 0.38px; + line-height: 24px; + display: flex; + align-items: center; + --slds-c-button-text-color: #0d7fa8; +} +.full-calendar-month-button { + height: 21px; + font-size: 18px; + font-weight: 500; + line-height: 21px; + display: flex; + align-items: center; + margin: 16px; +} +tr { + text-align: center; +} +td { + text-align: center; + box-sizing: initial; + color: rgb(0, 112, 210); + height: 44px; + font-size: 16px; + font-weight: normal; + letter-spacing: -0.38px; +} +th { + text-align: center; + box-sizing: initial; + color: rgb(112, 110, 107); + font-size: 13px; + font-weight: normal; + letter-spacing: -0.08px; + line-height: 18px; + width: 44px; +} +.table { + font-size: medium; + vertical-align: middle; +} +*:focus { + outline: none; +} +.rightButton { + margin-left: 0px; + margin-right: 0px; + padding-left: 0px; + padding-right: 0px; + position: relative; + color: rgb(106, 106, 106); +} +.leftButton { + margin-left: 0px; + margin-right: 8px; + padding-left: 0px; + padding-right: 0px; + position: relative; + color: rgb(106, 106, 106); +} +.slds-popover { + z-index: 9000; +} + +.modal { + position: fixed; + top: auto; + bottom: 0px; + left: 0px; + height: 99%; + overflow-y: auto; +} +.breakLine { + margin: 0; + margin: 0 -16px 5px -16px; + padding-bottom: 16px; +} +.full-calendar-close-btn { + cursor: pointer; +} +.select-a-date-title { + font-weight: 500; + font-size: 18px; + line-height: 21px; +} +.modal-footer { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding: 16px; + gap: 16px; + height: 80px; + border-radius: 0px; + flex: none; + order: 3; + align-self: stretch; + flex-grow: 0; + border-top: 1px solid rgba(159, 170, 181, 0.5); + position: fixed; + bottom: 0; + left: 0; + right: 0; + background-color: white; + z-index: 100; + padding-bottom: 24px; +} +.confirmBtn { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 50px; + font-size: 16px; + border-radius: 12px; + background-color: #0d7fa8; + font-weight: 500; +} +.dialogContainer { + padding-bottom: 80px; + height: 99vh; +} +@media screen and (orientation: landscape) { + .slds-modal__container { + height: 130vh !important; + } +} + +.changecolor { + --lwc-colorTextIconDefault: #0d7fa8; + fill: #0d7fa8; + --sds-c-icon-color-foreground-default: #0d7fa8; +} + +.scrollableweek { + overflow-y: auto; +} diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html new file mode 100644 index 0000000..e3033cd --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.html @@ -0,0 +1,321 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCalendar/mobileAppointmentBookingCalendar.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/__tests__/mobileAppointmentBookingCompactAppointmentInfo.test.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css new file mode 100644 index 0000000..d553821 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.css @@ -0,0 +1,50 @@ +.container { + background-color: white; + padding: 16px; +} +.title { + font-size: 18px; + line-height: 21px; + font-weight: 500; + color: rgb(0, 0, 0); + margin-bottom: 13px; +} + +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px 16px -16px; +} + +.info { + font-size: 16px; + line-height: 22px; + color: rgba(68, 68, 68, 1); + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; +} + +.info-emph { + font-size: 16px; + line-height: 22px; + font-weight: 500; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.info-date { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.secondary-title { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: #444444; +} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.html diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingCompactAppointmentInfo/mobileAppointmentBookingCompactAppointmentInfo.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css new file mode 100644 index 0000000..c2c7452 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.css @@ -0,0 +1,20 @@ +.page-header { + display: flex; +} +.landing-container { + background-color: rgba(238, 238, 238, 1); +} + +.landing-section { + margin-bottom: 10px; +} + +.test { + background-color: blue; + height: 300px; +} + +.spinner-container { + height: 100vh; + background-color: rgba(255, 255, 255, 0.7); +} diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.html diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js similarity index 99% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js index b274306..8a35bd3 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js @@ -79,7 +79,7 @@ export default class MobileAppointmentBookingLanding extends LightningElement { inFlowMode = false; newAppointmentDate; newAppointmentTime; - maxValidCalendarDate; + _maxValidCalendarDate; _minValidCalendarDate; @api nonAvailableDateArray = []; @api noOfDaysBeforeAfterWeek = 2; @@ -226,7 +226,6 @@ export default class MobileAppointmentBookingLanding extends LightningElement { serviceTerritoryTimeZone; currentSAstatus; - OriginalArrivalEndDate; OriginalArrivalStartDate = null; OriginalArrivalEndDate = null; dateArrayForQuery = []; diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml similarity index 85% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml index de71578..3b3867f 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingLanding/mobileAppointmentBookingLanding.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 false @@ -10,4 +10,4 @@ ScreenAction - \ No newline at end of file + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css new file mode 100644 index 0000000..b44b791 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.css @@ -0,0 +1,170 @@ +.main-container { + padding: 16px; +} + +.modal-container { + width: 100%; + min-height: 320px; + background: white; + border-top-left-radius: 8px; + border-top-right-radius: 8px; +} + +.spinner-container { + position: inherit; +} + +.confirmBtn { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 50px; + font-size: 16px; + border-radius: 12px; + background-color: #0d7fa8; + font-weight: 500; +} + +.confirmBtn:active { + opacity: 25%; +} + +.confirmBtn:hover { + opacity: 25%; +} + +.confirmBtn:focus { + opacity: 25%; +} + +.acceptNewAptTitle { + font-weight: 500; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + text-align: center; + flex-direction: column; +} +.acceptNewAptClose { + margin-top: 2px; + cursor: pointer; +} +.modal { + position: fixed; + top: auto; + bottom: 0px; + left: 0px; +} + +svg[class*="slds-button__icon_left"] { + padding-bottom: 2px !important; +} + +.modal-footer { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 16px; + gap: 16px; + border-radius: 0px; + flex: none; + order: 3; + align-self: stretch; + flex-grow: 0; + height: 80px; +} + +.modal-title-container { + border-bottom: 1px solid rgba(159, 170, 181, 0.5); + box-sizing: border-box; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 0px; + isolation: isolate; + height: 48px; + padding: 16px; +} + +.info { + font-size: 16px; + line-height: 22px; + color: rgba(68, 68, 68, 1); + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; + margin: 16px; +} + +.info-emph { + font-size: 16px; + line-height: 22px; + font-weight: 500; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.info-date { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.secondary-title { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: #444444; +} + +.scheduling-results-container { + display: flex; + flex-direction: column; + align-items: center; + padding: 43px 0; +} + +.scheduling-results-title { + margin-top: 16px; + font-size: 16px; + line-height: 22px; + font-weight: 500; +} + +.scheduling-results-info { + font-size: 16px; + line-height: 22px; + color: rgba(0, 0, 0, 1); +} + +.schedule-results-header-icon-container { + display: flex; + justify-content: center; + margin-bottom: 16px; +} + +.schedule-results-header-icon-title { + margin-left: 8px; + font-size: 16px; + line-height: 22px; + font-weight: 500; +} + +.hide { + visibility: hidden; +} + +.top-space { + margin-top: 16px; +} + +.button:active { + opacity: 25%; +} diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html new file mode 100644 index 0000000..3390d53 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.html @@ -0,0 +1,148 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml similarity index 67% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml index f8c5cb4..9b08a91 100644 --- a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingRescheduleAppointment/mobileAppointmentBookingRescheduleAppointment.js-meta.xml @@ -1,5 +1,5 @@ - + 56.0 false - \ No newline at end of file + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js similarity index 83% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js index ccc821a..1a8cf5b 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js @@ -11,7 +11,7 @@ describe("c-mobile-appointment-booking-resource-assignment", () => { it("Displays the correct message when user is excluded", () => { const EXPECTED_EXCLUDED_MSG = - "c.Appointment_ReBooking_cant_select_Mobile_Worker_excluded"; + "c.Reschedule_Appointment_cant_select_Mobile_Worker_excluded"; // Create initial element const element = createElement( "c-mobile-appointment-booking-resource-assignment", @@ -20,7 +20,6 @@ describe("c-mobile-appointment-booking-resource-assignment", () => { } ); - element.showExcludedMsg = true; element.isExcluded = true; element.showMobileWorkerChoice = true; @@ -45,18 +44,17 @@ describe("c-mobile-appointment-booking-resource-assignment", () => { } ); - element.showExcludedMsg = false; element.isExcluded = false; element.showMobileWorkerChoice = true; document.body.appendChild(element); return Promise.resolve().then(() => { - const excludedMsgElement = element.shadowRoot.querySelector( - '[data-id="resource-assignment-radio"]' + const resourceAssignment = element.shadowRoot.querySelector( + "lightning-radio-group" ); - expect(excludedMsgElement.value).toBe(EXPECTED_VALUE); + expect(resourceAssignment.value).toBe(EXPECTED_VALUE); }); }); }); diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css new file mode 100644 index 0000000..f9f72c1 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.css @@ -0,0 +1,24 @@ +.container { + background-color: white; + margin: 10px 0; + padding: 13px 16px 0 16px; +} +.title { + font-size: 18px; + line-height: 21px; + font-weight: 500; + color: rgb(0, 0, 0); + margin-bottom: 13px; +} + +.mobile-worker-content { + padding-top: 16px; + font-size: 16px; + line-height: 22px; +} + +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px; +} diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html new file mode 100644 index 0000000..b434f0f --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.html @@ -0,0 +1,24 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/mobileAppointmentBookingResourceAssignment.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css new file mode 100644 index 0000000..f24ab44 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.css @@ -0,0 +1,197 @@ +.headline { + color: rgb(0, 0, 0); + font-size: 28px; + letter-spacing: 0.36px; + margin-bottom: 24px; + font-family: var(--lwc-fontFamily); +} +.divHeadline { + color: rgb(106, 106, 106); + font-size: 14px; + letter-spacing: 0.1px; + font-family: var(--lwc-fontFamily); +} +.headlineDate { + font-size: 16px; + font-weight: 400; + line-height: 22px; + color: #000000; + flex: none; + order: 1; + flex-grow: 0; +} +.divInfo { + margin: 16px; + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; +} +h2 { + color: rgb(0, 0, 0); + font-size: 16px; +} + +p { + color: rgb(106, 106, 106); + font-size: 14px; + letter-spacing: 0.18px; +} +.backButton { + margin-bottom: 7px; + margin-left: 0px; + font-size: 16px; +} +.confirmBtnLayout { + position: fixed; + left: 1%; + bottom: 0%; + width: 100%; + background-color: rgb(250, 246, 246); + padding-top: 5px; + padding-left: 5px; + padding-right: 10px; +} +.confirmBtn { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 50px; + font-size: 16px; + border-radius: 12px; + background-color: #0d7fa8; + font-weight: 500; +} +.calendarView { + position: -webkit-sticky; + position: sticky; + top: 0; + background-color: white; + z-index: 100; + padding: 0 16px; +} +.acceptNewAptTitle { + font-weight: 500; + font-size: 18px; + line-height: 21px; + display: flex; + align-items: center; + text-align: center; + flex-direction: column; +} +.acceptNewAptClose { + --lwc-colorTextIconDefault: #0d7fa8; + margin-top: 2px; + --sds-c-icon-color-foreground-default: #0d7fa8; +} +.modal { + position: fixed; + top: auto; + bottom: 0px; + left: 0px; +} +.WorkTypeName { + height: 19px; + color: rgb(0, 0, 0); + font-size: 16px; + font-weight: normal; + letter-spacing: 0.21px; +} +.spinnerHolder { + position: relative; + display: inline-block; + width: 80px; + height: 80px; + text-align: center; +} +.slds-spinner { + position: fixed; +} +.slds-spinner_container { + position: fixed; +} + +svg[class*="slds-button__icon_left"] { + padding-bottom: 2px !important; +} + +.modal-footer { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding: 0 16px 16px 16px; + gap: 16px; + height: 80px; + border-radius: 0px; + flex: none; + order: 3; + align-self: stretch; + flex-grow: 0; +} +.secondary-info { + font-weight: 400; + font-size: 16px; + line-height: 22px; + color: #444444; + flex: none; + order: 2; + flex-grow: 0; + margin-top: 8px; +} +.modal-title-container { + border-bottom: 1px solid rgba(159, 170, 181, 0.5); + box-sizing: border-box; + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + padding: 0px; + isolation: isolate; + height: 48px; + padding: 16px; +} +.head-line-work-type-name { + font-weight: 500; + font-size: 18px; + line-height: 21px; + color: #000000; + flex: none; + order: 0; + flex-grow: 0; + margin-bottom: 8px; +} + +.info { + font-size: 16px; + line-height: 22px; + color: rgba(68, 68, 68, 1); + border: 1px solid rgba(159, 170, 181, 0.5); + border-radius: 12px; + padding: 16px; + margin: 16px; +} + +.info-emph { + font-size: 16px; + line-height: 22px; + font-weight: 500; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.info-date { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: rgba(0, 0, 0, 1); +} + +.appointment-number { + font-size: 16px; + line-height: 22px; + font-weight: 400; + margin-bottom: 4px; + color: #444444; +} diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html new file mode 100644 index 0000000..5b4e9fa --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.html @@ -0,0 +1,50 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSchedulingContainer/mobileAppointmentBookingSchedulingContainer.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html new file mode 100644 index 0000000..056fe5d --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.html @@ -0,0 +1,17 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml similarity index 93% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml index da5dc77..59e36be 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/mobileAppointmentBookingSettingsContainer.js-meta.xml @@ -1,4 +1,4 @@ - + 55.0 true diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/overrideCSS.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/overrideCSS.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/overrideCSS.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSettingsContainer/overrideCSS.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/labels.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css new file mode 100644 index 0000000..e370449 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.css @@ -0,0 +1,113 @@ +.header { + color: rgb(0, 0, 0); + font-size: 16px; + font-weight: 500; + letter-spacing: -0.38px; + margin-top: 24px; + margin-bottom: 8px; +} +.timeslotButton { + width: 100%; + left: 50%; + -ms-transform: translate(-50%, 0%); + transform: translate(-50%, 0%); + height: 48px; + font-size: 16px; + border-radius: 12px; + border-color: #0d7fa8; + font-weight: 500; + color: #0d7fa8; + line-height: 22px; + display: flex; + align-items: center; + text-align: center; + margin: 8px 0; +} + +.timeslotButton:active { + opacity: 25%; +} +.timeslotButton:hover { + opacity: 25%; +} +.timeslotButton:focus { + opacity: 25%; +} + +.time-slot-btn-wrapper { + box-sizing: border-box; + display: flex; + flex-direction: column; + align-items: center; + padding-top: 8px; + gap: 16px; +} +.noSlotLabel { + height: 18px; + color: #706e6b; + font-size: 15px; + font-weight: normal; + letter-spacing: -0.36px; +} +.headerBold { + color: rgb(0, 0, 0); + font-size: 16px; + font-weight: 700; + letter-spacing: -0.38px; +} +.slots-container { + background-color: white; + padding: 0 16px 16px 16px; +} +.page-title { + color: rgb(0, 0, 0); + font-size: 18px; + font-weight: 500; + letter-spacing: -0.38px; + margin-top: 10px; + margin-bottom: 4px; + padding-top: 10px; + padding-bottom: 10px; +} + +.separator { + height: 1px; + background-color: rgba(159, 170, 181, 0.5); + margin: 0 -16px; +} + +.section { + background-color: rgba(238, 238, 238, 1); + height: 10px; + margin: 16px -16px 0 -16px; +} + +.active-slot { + opacity: 25%; +} + +.grey-action-icon { + margin-bottom: 16px; + --sds-c-icon-color-background: #eeeeee; +} + +.empty-slots-container { + background-color: white; + display: flex; + flex-direction: column; + align-items: center; + padding: 40px 16px; + margin-top: 10px; +} + +.empty-slos-title { + font-size: 16px; + line-height: 22px; + font-weight: 500; +} +.empty-slos-body { + font-size: 16px; + line-height: 22px; + margin-top: 16px; + text-align: center; +} diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html new file mode 100644 index 0000000..2a50e19 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.html @@ -0,0 +1,106 @@ + diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingSlotsContainer/mobileAppointmentBookingSlotsContainer.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants similarity index 100% rename from FollowUpAppointment/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constants diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/constantsLabels.js diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js similarity index 100% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/formatHelpers.js diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js new file mode 100644 index 0000000..bbaa709 --- /dev/null +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js @@ -0,0 +1 @@ +export * from "./formatHelpers"; diff --git a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml similarity index 67% rename from RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml rename to projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml index eac275d..e013881 100644 --- a/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingUtils/mobileAppointmentBookingUtils.js-meta.xml @@ -1,5 +1,5 @@ - + 55.0 false - \ No newline at end of file + diff --git a/ServiceDocumentSamples/jest.config.js b/projects/RescheduleAppointments/jest.config.js similarity index 100% rename from ServiceDocumentSamples/jest.config.js rename to projects/RescheduleAppointments/jest.config.js diff --git a/projects/RescheduleAppointments/package.json b/projects/RescheduleAppointments/package.json new file mode 100644 index 0000000..e921824 --- /dev/null +++ b/projects/RescheduleAppointments/package.json @@ -0,0 +1,29 @@ +{ + "name": "reschdule-appointments", + "private": true, + "version": "1.0.0", + "description": "Reschedule Appointments", + "scripts": { + "lint": "eslint **/lwc/**", + "test": "npm run test:unit", + "test:unit": "sfdx-lwc-jest", + "test:unit:watch": "sfdx-lwc-jest --watch", + "test:unit:debug": "sfdx-lwc-jest --debug", + "test:unit:coverage": "sfdx-lwc-jest --coverage", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/RescheduleAppointments/sfdx-project.json b/projects/RescheduleAppointments/sfdx-project.json similarity index 100% rename from RescheduleAppointments/sfdx-project.json rename to projects/RescheduleAppointments/sfdx-project.json diff --git a/projects/ServiceDocumentSamples/.eslintignore b/projects/ServiceDocumentSamples/.eslintignore new file mode 100644 index 0000000..5f7b681 --- /dev/null +++ b/projects/ServiceDocumentSamples/.eslintignore @@ -0,0 +1,16 @@ +**/lwc/**/*.css +**/lwc/**/*.html +**/lwc/**/*.json +**/lwc/**/*.svg +**/lwc/**/*.xml +**/aura/**/*.auradoc +**/aura/**/*.cmp +**/aura/**/*.css +**/aura/**/*.design +**/aura/**/*.evt +**/aura/**/*.json +**/aura/**/*.svg +**/aura/**/*.tokens +**/aura/**/*.xml +**/aura/**/*.app +.sfdx diff --git a/ServiceDocumentSamples/.forceignore b/projects/ServiceDocumentSamples/.forceignore similarity index 100% rename from ServiceDocumentSamples/.forceignore rename to projects/ServiceDocumentSamples/.forceignore diff --git a/ServiceDocumentSamples/.gitignore b/projects/ServiceDocumentSamples/.gitignore similarity index 100% rename from ServiceDocumentSamples/.gitignore rename to projects/ServiceDocumentSamples/.gitignore diff --git a/projects/ServiceDocumentSamples/.prettierignore b/projects/ServiceDocumentSamples/.prettierignore new file mode 100755 index 0000000..26253eb --- /dev/null +++ b/projects/ServiceDocumentSamples/.prettierignore @@ -0,0 +1,12 @@ +# List files or directories below to ignore them when running prettier +# More information: https://prettier.io/docs/en/ignore.html +# + +**/staticresources/** +.localdevserver +.sfdx +.vscode + +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/projects/ServiceDocumentSamples/.prettierrc b/projects/ServiceDocumentSamples/.prettierrc new file mode 100755 index 0000000..03da7ba --- /dev/null +++ b/projects/ServiceDocumentSamples/.prettierrc @@ -0,0 +1,14 @@ +{ + "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], + "overrides": [ + { + "files": "**/lwc/**/*.html", + "options": { "parser": "lwc" } + }, + { + "files": "*.{cmp,page,component}", + "options": { "parser": "html" } + } + ] +} diff --git a/ServiceDocumentSamples/README.md b/projects/ServiceDocumentSamples/README.md similarity index 100% rename from ServiceDocumentSamples/README.md rename to projects/ServiceDocumentSamples/README.md diff --git a/ServiceDocumentSamples/config/project-scratch-def.json b/projects/ServiceDocumentSamples/config/project-scratch-def.json similarity index 100% rename from ServiceDocumentSamples/config/project-scratch-def.json rename to projects/ServiceDocumentSamples/config/project-scratch-def.json diff --git a/HelloWorld/force-app/main/default/aura/.eslintrc.json b/projects/ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json similarity index 100% rename from HelloWorld/force-app/main/default/aura/.eslintrc.json rename to projects/ServiceDocumentSamples/force-app/main/default/aura/.eslintrc.json diff --git a/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls b/projects/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls rename to projects/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls diff --git a/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls-meta.xml b/projects/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls-meta.xml similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls-meta.xml rename to projects/ServiceDocumentSamples/force-app/main/default/classes/FireCreateServiceDocumentInvocableAction.cls-meta.xml diff --git a/projects/ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json b/projects/ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json new file mode 100644 index 0000000..a82e76d --- /dev/null +++ b/projects/ServiceDocumentSamples/force-app/main/default/lwc/.eslintrc.json @@ -0,0 +1,14 @@ +{ + "extends": ["@salesforce/eslint-config-lwc/recommended"], + "overrides": [ + { + "files": ["*.test.js"], + "rules": { + "@lwc/lwc/no-unexpected-wire-adapter-usages": "off" + }, + "env": { + "node": true + } + } + ] +} diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.html b/projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.html similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.html rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.html diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js b/projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js-meta.xml b/projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js-meta.xml similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js-meta.xml rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/mediumHeaderText/mediumHeaderText.js-meta.xml diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.html b/projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.html similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.html rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.html diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js b/projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js diff --git a/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js-meta.xml b/projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js-meta.xml similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js-meta.xml rename to projects/ServiceDocumentSamples/force-app/main/default/lwc/staticImage/staticImage.js-meta.xml diff --git a/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger b/projects/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger rename to projects/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger diff --git a/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger-meta.xml b/projects/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger-meta.xml similarity index 100% rename from ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger-meta.xml rename to projects/ServiceDocumentSamples/force-app/main/default/triggers/ServiceDocumentCreation.trigger-meta.xml diff --git a/projects/ServiceDocumentSamples/jest.config.js b/projects/ServiceDocumentSamples/jest.config.js new file mode 100644 index 0000000..410b3d5 --- /dev/null +++ b/projects/ServiceDocumentSamples/jest.config.js @@ -0,0 +1,6 @@ +const { jestConfig } = require("@salesforce/sfdx-lwc-jest/config"); + +module.exports = { + ...jestConfig, + modulePathIgnorePatterns: ["/.localdevserver"] +}; diff --git a/projects/ServiceDocumentSamples/package.json b/projects/ServiceDocumentSamples/package.json new file mode 100644 index 0000000..100b5fd --- /dev/null +++ b/projects/ServiceDocumentSamples/package.json @@ -0,0 +1,24 @@ +{ + "name": "service-document-sample", + "private": true, + "version": "1.0.0", + "description": "Service Document Sample", + "scripts": { + "lint": "eslint **/lwc/**", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,js,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1" + } +} diff --git a/ServiceDocumentSamples/sfdx-project.json b/projects/ServiceDocumentSamples/sfdx-project.json similarity index 100% rename from ServiceDocumentSamples/sfdx-project.json rename to projects/ServiceDocumentSamples/sfdx-project.json diff --git a/UploadAndAnnotateImages/.eslintignore b/projects/UploadAndAnnotateImages/.eslintignore similarity index 100% rename from UploadAndAnnotateImages/.eslintignore rename to projects/UploadAndAnnotateImages/.eslintignore diff --git a/UploadAndAnnotateImages/.forceignore b/projects/UploadAndAnnotateImages/.forceignore similarity index 100% rename from UploadAndAnnotateImages/.forceignore rename to projects/UploadAndAnnotateImages/.forceignore diff --git a/UploadAndAnnotateImages/.gitignore b/projects/UploadAndAnnotateImages/.gitignore similarity index 100% rename from UploadAndAnnotateImages/.gitignore rename to projects/UploadAndAnnotateImages/.gitignore diff --git a/projects/UploadAndAnnotateImages/.prettierignore b/projects/UploadAndAnnotateImages/.prettierignore new file mode 100755 index 0000000..26253eb --- /dev/null +++ b/projects/UploadAndAnnotateImages/.prettierignore @@ -0,0 +1,12 @@ +# List files or directories below to ignore them when running prettier +# More information: https://prettier.io/docs/en/ignore.html +# + +**/staticresources/** +.localdevserver +.sfdx +.vscode + +coverage/ + +**/*.js-meta.xml \ No newline at end of file diff --git a/projects/UploadAndAnnotateImages/.prettierrc b/projects/UploadAndAnnotateImages/.prettierrc new file mode 100755 index 0000000..03da7ba --- /dev/null +++ b/projects/UploadAndAnnotateImages/.prettierrc @@ -0,0 +1,14 @@ +{ + "trailingComma": "none", + "plugins": ["@prettier/plugin-xml", "prettier-plugin-apex"], + "overrides": [ + { + "files": "**/lwc/**/*.html", + "options": { "parser": "lwc" } + }, + { + "files": "*.{cmp,page,component}", + "options": { "parser": "html" } + } + ] +} diff --git a/UploadAndAnnotateImages/README.md b/projects/UploadAndAnnotateImages/README.md similarity index 100% rename from UploadAndAnnotateImages/README.md rename to projects/UploadAndAnnotateImages/README.md diff --git a/UploadAndAnnotateImages/config/project-scratch-def.json b/projects/UploadAndAnnotateImages/config/project-scratch-def.json similarity index 100% rename from UploadAndAnnotateImages/config/project-scratch-def.json rename to projects/UploadAndAnnotateImages/config/project-scratch-def.json diff --git a/projects/UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json new file mode 100644 index 0000000..a82e76d --- /dev/null +++ b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/.eslintrc.json @@ -0,0 +1,14 @@ +{ + "extends": ["@salesforce/eslint-config-lwc/recommended"], + "overrides": [ + { + "files": ["*.test.js"], + "rules": { + "@lwc/lwc/no-unexpected-wire-adapter-usages": "off" + }, + "env": { + "node": true + } + } + ] +} diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/__tests__/colorsPicker.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/__tests__/colorsPicker.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/__tests__/colorsPicker.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/__tests__/colorsPicker.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/colorsPicker/colorsPicker.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/__tests__/darkInput.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/__tests__/darkInput.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/__tests__/darkInput.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/__tests__/darkInput.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/darkInput/darkInput.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/__tests__/imageAnnotate.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/__tests__/imageAnnotate.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/__tests__/imageAnnotate.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/__tests__/imageAnnotate.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageAnnotate/imageAnnotate.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/__tests__/imageCapture.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/__tests__/imageCapture.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/__tests__/imageCapture.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/__tests__/imageCapture.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCapture/imageCapture.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/__tests__/imageCropper.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/__tests__/imageCropper.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/__tests__/imageCropper.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/__tests__/imageCropper.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageCropper/imageCropper.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/__tests__/imageInfoEditor.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/__tests__/imageInfoEditor.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/__tests__/imageInfoEditor.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/__tests__/imageInfoEditor.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoEditor/imageInfoEditor.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/__tests__/imageInfoViewer.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/__tests__/imageInfoViewer.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/__tests__/imageInfoViewer.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/__tests__/imageInfoViewer.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageInfoViewer/imageInfoViewer.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/__tests__/imagePainter.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/__tests__/imagePainter.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/__tests__/imagePainter.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/__tests__/imagePainter.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imagePainter/imagePainter.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/__tests__/imageSelector.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/__tests__/imageSelector.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/__tests__/imageSelector.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/__tests__/imageSelector.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageSelector/imageSelector.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/__tests__/imageTextEditor.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/__tests__/imageTextEditor.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/__tests__/imageTextEditor.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/__tests__/imageTextEditor.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/imageTextEditor/imageTextEditor.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/__tests__/infoEditorPrompt.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/__tests__/infoEditorPrompt.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/__tests__/infoEditorPrompt.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/__tests__/infoEditorPrompt.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/infoEditorPrompt/infoEditorPrompt.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/__tests__/loadingSpinner.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/__tests__/loadingSpinner.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/__tests__/loadingSpinner.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/__tests__/loadingSpinner.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/loadingSpinner/loadingSpinner.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/__tests__/toastMessage.test.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/__tests__/toastMessage.test.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/__tests__/toastMessage.test.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/__tests__/toastMessage.test.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.css b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.css similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.css rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.css diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.html b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.html similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.html rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.html diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/toastMessage/toastMessage.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/cropper.esm.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/cropper.esm.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/cropper.esm.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/cropper.esm.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js diff --git a/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js-meta.xml b/projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js-meta.xml similarity index 100% rename from UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js-meta.xml rename to projects/UploadAndAnnotateImages/force-app/main/default/lwc/utilsImageCapture/utilsImageCapture.js-meta.xml diff --git a/UploadAndAnnotateImages/force-app/test/jest-mocks/mediaUtils/mediaUtils.js b/projects/UploadAndAnnotateImages/force-app/test/jest-mocks/mediaUtils/mediaUtils.js similarity index 100% rename from UploadAndAnnotateImages/force-app/test/jest-mocks/mediaUtils/mediaUtils.js rename to projects/UploadAndAnnotateImages/force-app/test/jest-mocks/mediaUtils/mediaUtils.js diff --git a/UploadAndAnnotateImages/jest.config.js b/projects/UploadAndAnnotateImages/jest.config.js similarity index 100% rename from UploadAndAnnotateImages/jest.config.js rename to projects/UploadAndAnnotateImages/jest.config.js diff --git a/projects/UploadAndAnnotateImages/package.json b/projects/UploadAndAnnotateImages/package.json new file mode 100644 index 0000000..b18867e --- /dev/null +++ b/projects/UploadAndAnnotateImages/package.json @@ -0,0 +1,30 @@ +{ + "name": "upload-and-annotate-images", + "private": true, + "version": "1.0.0", + "description": "Upload and Annotate Images", + "scripts": { + "lint": "eslint **/lwc/**", + "test": "npm run test:unit", + "test:unit": "sfdx-lwc-jest", + "test:unit:watch": "sfdx-lwc-jest --watch", + "test:unit:debug": "sfdx-lwc-jest --debug", + "test:unit:coverage": "sfdx-lwc-jest --coverage", + "prettier": "prettier --write \"**/*.{cls,cmp,component,css,html,json,md,page,trigger,xml,yaml,yml}\"", + "prettier:verify": "prettier --list-different \"**/*.{cls,cmp,component,css,html,json,md,page,trigger,xml,yaml,yml}\"" + }, + "devDependencies": { + "@lwc/eslint-plugin-lwc": "^1.7.0", + "@prettier/plugin-xml": "^3.2.2", + "@salesforce/eslint-config-lwc": "^3.5.2", + "@salesforce/eslint-plugin-aura": "^2.1.0", + "@salesforce/eslint-plugin-lightning": "^1.0.0", + "@salesforce/sfdx-lwc-jest": "^3.1.0", + "eslint": "^8.55.0", + "eslint-plugin-import": "^2.29.0", + "eslint-plugin-jest": "^27.6.0", + "prettier": "^3.1.1", + "prettier-plugin-apex": "^2.0.1", + "jest-canvas-mock": "^2.5.2" + } +} diff --git a/UploadAndAnnotateImages/sfdx-project.json b/projects/UploadAndAnnotateImages/sfdx-project.json similarity index 100% rename from UploadAndAnnotateImages/sfdx-project.json rename to projects/UploadAndAnnotateImages/sfdx-project.json diff --git a/yarn.lock b/yarn.lock index f392ede..2a42ba1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,486 +2,7334 @@ # yarn lockfile v1 -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -ansi-escapes@^4.3.0: - version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - type-fest "^0.21.3" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" -ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -ansi-styles@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== +"@babel/core@7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== dependencies: - color-convert "^2.0.1" + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" + integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.6" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +"@babel/core@~7.22.8": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.20.tgz#e3d0eed84c049e2a2ae0a64d27b6a37edec385b7" + integrity sha512-Y6jd1ahLubuYweD/zJH+vvOY141v4f9igNQAQ+MBgq9JlHS2iTsZKn1aMsb3vGccZsXI16VzTBw52Xx0DWmtnA== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.22.15" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.22.20" + "@babel/helpers" "^7.22.15" + "@babel/parser" "^7.22.16" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.22.20" + "@babel/types" "^7.22.19" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +"@babel/eslint-parser@~7.22.7": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" + integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== dependencies: - fill-range "^7.0.1" + "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" + eslint-visitor-keys "^2.1.0" + semver "^6.3.1" -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== +"@babel/generator@7.21.4": + version "7.21.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.4.tgz#64a94b7448989f421f919d5239ef553b37bb26bc" + integrity sha512-NieM3pVIYW2SwGzKoqfPrQsf4xGs9M9AIG3ThppsSRmO+m7eQhmI6amajKMUeIO37wFfsvnvcxQFx6x6iqxDnA== + dependencies: + "@babel/types" "^7.21.4" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" -cli-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" - integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== +"@babel/generator@^7.22.15", "@babel/generator@^7.23.3", "@babel/generator@^7.23.6", "@babel/generator@^7.7.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - restore-cursor "^3.1.0" + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" -cli-truncate@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" - integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== dependencies: - slice-ansi "^3.0.0" - string-width "^4.2.0" + "@babel/types" "^7.22.5" -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-3.1.0.tgz#3f23ab12535e3d73e839bb43e73c9de487db1389" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" + "@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" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.6.tgz#b04d915ce92ce363666f816a884cdcfc9be04953" + integrity sha512-cBXU1vZni/CpGF29iTu4YRbOZt3Wat6zCoMDxRF1MayiEc4URxOj31tT65HUM0CRpMowA3HCJaAOVOUnMf96cw== dependencies: - color-name "~1.1.4" + "@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.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -colorette@^2.0.19: - version "2.0.19" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" - integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -commander@^9.4.1: - version "9.5.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" - integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" + "@babel/types" "^7.23.0" -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +"@babel/helper-module-imports@7.22.15", "@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - ms "2.1.2" + "@babel/types" "^7.22.15" -eastasianwidth@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" - integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +"@babel/helper-module-transforms@^7.22.20", "@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@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" -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== + dependencies: + "@babel/types" "^7.22.5" -emoji-regex@^9.2.2: - version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" - integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -execa@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20" - integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA== +"@babel/helper-remap-async-to-generator@^7.18.9", "@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^3.0.1" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - to-regex-range "^5.0.1" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" -get-stream@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" -human-signals@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" - integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ== +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== + dependencies: + "@babel/types" "^7.22.5" -husky@^8.0.2: - version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== +"@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== + dependencies: + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +"@babel/helpers@^7.22.15", "@babel/helpers@^7.23.2", "@babel/helpers@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.6.tgz#d03af2ee5fb34691eec0cda90f5ecbb4d4da145a" + integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== + dependencies: + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.6" + "@babel/types" "^7.23.6" -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" -lilconfig@2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" - integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.22.16", "@babel/parser@^7.23.3", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== -lint-staged@^13.1.0: - version "13.1.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.0.tgz#d4c61aec939e789e489fa51987ec5207b50fd37e" - integrity sha512-pn/sR8IrcF/T0vpWLilih8jmVouMlxqXxKuAojmbiGX5n/gDnz+abdPptlj0vYnbfE0SQNl3CY/HwtM0+yfOVQ== +"@babel/plugin-proposal-async-generator-functions@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" + integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA== dependencies: - cli-truncate "^3.1.0" - colorette "^2.0.19" - commander "^9.4.1" - debug "^4.3.4" - execa "^6.1.0" - lilconfig "2.0.6" - listr2 "^5.0.5" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-inspect "^1.12.2" - pidtree "^0.6.0" - string-argv "^0.3.1" - yaml "^2.1.3" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/helper-remap-async-to-generator" "^7.18.9" + "@babel/plugin-syntax-async-generators" "^7.8.4" -listr2@^5.0.5: - version "5.0.6" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.6.tgz#3c61153383869ffaad08a8908d63edfde481dff8" - integrity sha512-u60KxKBy1BR2uLJNTWNptzWQ1ob/gjMzIJPZffAENzpZqbMZ/5PrXXOomDcevIS/+IB7s1mmCEtSlT2qHWMqag== +"@babel/plugin-proposal-class-properties@7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== dependencies: - cli-truncate "^2.1.0" - colorette "^2.0.19" - log-update "^4.0.0" - p-map "^4.0.0" - rfdc "^1.3.0" - rxjs "^7.5.7" - through "^2.3.8" - wrap-ansi "^7.0.0" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -log-update@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" - integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== dependencies: - ansi-escapes "^4.3.0" - cli-cursor "^3.1.0" - slice-ansi "^4.0.0" - wrap-ansi "^6.2.0" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +"@babel/plugin-proposal-object-rest-spread@7.20.7": + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" -micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: - braces "^3.0.2" - picomatch "^2.3.1" + "@babel/helper-plugin-utils" "^7.8.0" -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +"@babel/plugin-syntax-decorators@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz#a1d351d6c25bfdcf2e16f99b039101bc0ffcb0ca" + integrity sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: - path-key "^4.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -object-inspect@^1.12.2: - version "1.12.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -onetime@^5.1.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== +"@babel/plugin-syntax-jsx@^7.23.3", "@babel/plugin-syntax-jsx@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz#8f2e4f8a9b5f9aa16067e142c1ac9cd9f810f473" + integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== dependencies: - mimic-fn "^2.1.0" + "@babel/helper-plugin-utils" "^7.22.5" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== +"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: - mimic-fn "^4.0.0" + "@babel/helper-plugin-utils" "^7.10.4" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: - aggregate-error "^3.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +"@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -pidtree@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" - integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" -prettier@^2.8.2: - version "2.8.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.2.tgz#c4ea1b5b454d7c4b59966db2e06ed7eec5dfd160" - integrity sha512-BtRV9BcncDyI2tsuS19zzhzoxD8Dh8LiCx7j7tHzrkz8GFXAexeWFdi22mjE1d16dftH2qNaytVxqiRTGlMfpw== +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" -restore-cursor@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" - integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== +"@babel/plugin-syntax-typescript@^7.23.3", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz#24f460c85dbbc983cd2b9c4994178bcc01df958f" + integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + "@babel/helper-plugin-utils" "^7.22.5" -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== +"@babel/plugin-transform-async-to-generator@7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" -rxjs@^7.5.7: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - tslib "^2.1.0" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== +"@babel/plugin-transform-parameters@^7.20.7": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: - shebang-regex "^3.0.0" + "@babel/helper-plugin-utils" "^7.22.5" -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +"@babel/plugin-transform-typescript@^7.23.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz#aa36a94e5da8d94339ae3a4e22d40ed287feb34c" + integrity sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-typescript" "^7.23.3" -signal-exit@^3.0.2, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +"@babel/preset-typescript@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz#14534b34ed5b6d435aa05f1ae1c5e7adcc01d913" + integrity sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.22.15" + "@babel/plugin-syntax-jsx" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-typescript" "^7.23.3" -slice-ansi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" - integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== +"@babel/template@^7.22.15", "@babel/template@^7.3.3": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== +"@babel/traverse@^7.22.20", "@babel/traverse@^7.23.3", "@babel/traverse@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.6.tgz#b53526a2367a0dd6edc423637f3d2d0f2521abc5" + integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@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.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" + globals "^11.1.0" -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.4", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3", "@babel/types@^7.23.6", "@babel/types@^7.3.3": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" -string-argv@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" - integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -string-width@^4.1.0, string-width@^4.2.0: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" + eslint-visitor-keys "^3.3.0" -string-width@^5.0.0: - version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + 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" -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== +"@eslint/js@8.55.0": + version "8.55.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" + integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== + +"@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== dependencies: - ansi-regex "^5.0.1" + "@hapi/hoek" "^9.0.0" -strip-ansi@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.0.1.tgz#61740a08ce36b61e50e65653f07060d000975fb2" - integrity sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.13" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: - ansi-regex "^6.0.1" + "@humanwhocodes/object-schema" "^2.0.1" + debug "^4.1.1" + minimatch "^3.0.5" -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -through@^2.3.8: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== +"@humanwhocodes/object-schema@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +"@hutson/parse-repository-url@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz#98c23c950a3d9b6c8f0daed06da6c3af06981340" + integrity sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q== + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: - is-number "^7.0.0" + 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" -tslib@^2.1.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" - integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" +"@jest/console@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc" + integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + +"@jest/core@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f" + integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== + dependencies: + "@jest/console" "^29.7.0" + "@jest/reporters" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^29.7.0" + jest-config "^29.7.0" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-resolve-dependencies "^29.7.0" + jest-runner "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + jest-watcher "^29.7.0" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7" + integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== + dependencies: + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + +"@jest/expect-utils@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6" + integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== + dependencies: + jest-get-type "^29.6.3" + +"@jest/expect@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2" + integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== + dependencies: + expect "^29.7.0" + jest-snapshot "^29.7.0" + +"@jest/fake-timers@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565" + integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== + dependencies: + "@jest/types" "^29.6.3" + "@sinonjs/fake-timers" "^10.0.2" + "@types/node" "*" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +"@jest/globals@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d" + integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/types" "^29.6.3" + jest-mock "^29.7.0" + +"@jest/reporters@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7" + integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^6.0.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + jest-worker "^29.7.0" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + +"@jest/source-map@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4" + integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== + dependencies: + "@jridgewell/trace-mapping" "^0.3.18" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c" + integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== + dependencies: + "@jest/console" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce" + integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== + dependencies: + "@jest/test-result" "^29.7.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + slash "^3.0.0" + +"@jest/transform@^29.7.0": + version "29.7.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c" + integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.6.3" + "@jridgewell/trace-mapping" "^0.3.18" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^2.0.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.2" + +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +"@lerna/create@8.0.0": + version "8.0.0" + resolved "https://registry.yarnpkg.com/@lerna/create/-/create-8.0.0.tgz#fc12ac308d27b6b16304e0b2d11b8efaa93d524f" + integrity sha512-mCeEhjFDRwPY7J4uxCjqdzPwPFBUGlkdlQjBidaX5XaoQcxR2hAAvgHZKfVGkUUEZKfyPcWwKzen4KydNB2G7A== + dependencies: + "@npmcli/run-script" "6.0.2" + "@nx/devkit" ">=17.1.2 < 18" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.1" + columnify "1.6.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "0.7.0" + execa "5.0.0" + fs-extra "^11.1.1" + get-stream "6.0.0" + git-url-parse "13.1.0" + glob-parent "5.1.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + ini "^1.3.8" + init-package-json "5.0.0" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + js-yaml "4.1.0" + libnpmpublish "7.3.0" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "8.1.1" + npm-packlist "5.1.1" + npm-registry-fetch "^14.0.5" + npmlog "^6.0.2" + nx ">=17.1.2 < 18" + p-map "4.0.0" + p-map-series "2.1.0" + p-queue "6.6.2" + p-reduce "^2.1.0" + pacote "^15.2.0" + pify "5.0.0" + read-cmd-shim "4.0.0" + read-package-json "6.0.4" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.4" + signal-exit "3.0.7" + slash "^3.0.0" + ssri "^9.0.1" + strong-log-transformer "2.1.0" + tar "6.1.11" + temp-dir "1.0.0" + upath "2.0.1" + uuid "^9.0.0" + validate-npm-package-license "^3.0.4" + validate-npm-package-name "5.0.0" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +"@locker/babel-plugin-transform-unforgeables@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@locker/babel-plugin-transform-unforgeables/-/babel-plugin-transform-unforgeables-0.20.0.tgz#d4c5a280ce0abe1c77ccd8c356e48ecf7b836fa1" + integrity sha512-7bz3Zw/y+3n0zISjOwhVXF7j1DmEqFBVFup5Y27E3VyCOVNu6EVH4WWyYV2gjGPfhN7CkljIOZuk5ouiujIcrw== + dependencies: + "@babel/generator" "7.21.4" + match-json "1.3.5" + +"@lwc/babel-plugin-component@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/babel-plugin-component/-/babel-plugin-component-5.0.2.tgz#00ab21203a95213f4656792e3b8d98ed009c61f1" + integrity sha512-DOUfMeW12Dd1IV/gES/YhdoQOisFHKHVkqxX2E+RxrKvxNOYwWnD5NMJb3sjJWZumD6SmpQKMY9Sq6bkvlGESg== + dependencies: + "@babel/helper-module-imports" "7.22.15" + "@lwc/errors" "5.0.2" + "@lwc/shared" "5.0.2" + line-column "~1.0.2" + +"@lwc/compiler@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/compiler/-/compiler-5.0.2.tgz#95242a79454836d773a5920597f498bb8ba14e89" + integrity sha512-RFsyT66AQYztBf67UNjB3kkwRUxatkfWke/gGAw0JkTFqPsaDs7lWxlzzphKSQxAbHni1zJSMAR+IIOYr8cKFA== + dependencies: + "@babel/core" "7.23.3" + "@babel/plugin-proposal-async-generator-functions" "7.20.7" + "@babel/plugin-proposal-class-properties" "7.18.6" + "@babel/plugin-proposal-object-rest-spread" "7.20.7" + "@babel/plugin-transform-async-to-generator" "7.23.3" + "@locker/babel-plugin-transform-unforgeables" "0.20.0" + "@lwc/babel-plugin-component" "5.0.2" + "@lwc/errors" "5.0.2" + "@lwc/shared" "5.0.2" + "@lwc/style-compiler" "5.0.2" + "@lwc/template-compiler" "5.0.2" + +"@lwc/engine-dom@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/engine-dom/-/engine-dom-5.0.2.tgz#800064ce56f6f19566dc550489085a572a4a4389" + integrity sha512-FDUEblWdpiuKYZyTm13+zjd2ZivxwuEdUlmoQ4wrsN72lTRaYnmiXG1/pBIjd/bFEtkipYnogdZ1xVEUezP+9Q== + +"@lwc/engine-server@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/engine-server/-/engine-server-5.0.2.tgz#d2b86f2e6c2e1cb45ce98ca5dfbbe63eb2fd4c8a" + integrity sha512-nwin+kLrBbCJinqH+Hr+QU1QrzxemjyWrGXlZkvzFI7NV70mXx6F836WIlE0s/qwV8npO/aJxYsQoanNDK3eXQ== + +"@lwc/errors@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/errors/-/errors-5.0.2.tgz#9496ec4c4f2f2ab8718b3b6e293614c373df1b6d" + integrity sha512-qkwI9Fq9RzB7toBBeIHZ0tyyu4e+GUubzN/jmajEu091cq7gaOAj2hzV+oREX+H/yLUnd0VIYx3lDABCW8aP9w== + +"@lwc/eslint-plugin-lwc@^1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@lwc/eslint-plugin-lwc/-/eslint-plugin-lwc-1.7.0.tgz#2d440800dede6fe12acb3f486dce95e34dd55b9d" + integrity sha512-nmyoIFAbUFR5lUEvmHdEqgIqbHquUHjiLBKmrGzocFOu8PKI4jMgZdjI53Wrcn2ddLwBUwLZyEdkcvms3ni00A== + dependencies: + globals "^13.23.0" + minimatch "^9.0.3" + +"@lwc/jest-preset@14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@lwc/jest-preset/-/jest-preset-14.2.1.tgz#87c9be39e9075fac9d32b6adb3ff6c200271b0b9" + integrity sha512-dr8NtY0tcjAQUn9rYzOBxwQ8d9xYESURqSvtejT8PyHjCtybjjvuECrSLeWx8cPTSBTWnM6/oYM9FpGoo7AFHA== + dependencies: + "@lwc/jest-resolver" "14.2.1" + "@lwc/jest-serializer" "14.2.1" + "@lwc/jest-transformer" "14.2.1" + +"@lwc/jest-resolver@14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@lwc/jest-resolver/-/jest-resolver-14.2.1.tgz#af8c9eb102dd007cc2a785576e7b4890cbb8bf75" + integrity sha512-+IP0PQlfAaqugkDJlpEqTmVwo5g46UOIYL4AsS1GZZU1rRwebAZD2Th+3Kn4hNZ+8eiuXZ8o4dyLLXdY68IUow== + dependencies: + "@lwc/jest-shared" "14.2.1" + +"@lwc/jest-serializer@14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@lwc/jest-serializer/-/jest-serializer-14.2.1.tgz#9ebf2fd0bc921eae29e1d7ecff832abbcfc4c565" + integrity sha512-xvcVkGJB/2phPR/qbzyVVus3Jy4SzEzPv9FNeNVfGwDyLZaaRMehkVQGrJOtyRje5KNLRpzUi530sd+HRl+tug== + dependencies: + "@lwc/jest-shared" "14.2.1" + pretty-format "^29.7.0" + +"@lwc/jest-shared@14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@lwc/jest-shared/-/jest-shared-14.2.1.tgz#60fd3906523c083034c3b2671fc14776a9a3080e" + integrity sha512-WICqZWciIMeV7O463mYF+b86ZzPaNTZZTUTFnBzoYPmkl1c7BS+HkB4YaIbXSLt0xKn1PdZ5tTBAxkQJIC4T8A== + +"@lwc/jest-transformer@14.2.1": + version "14.2.1" + resolved "https://registry.yarnpkg.com/@lwc/jest-transformer/-/jest-transformer-14.2.1.tgz#679f63613ce8bc3767939d6a08130efb7f81eeac" + integrity sha512-K4+WciM113GIiNQO0kVjG32F2j0JOs08M4WzJGKHwewVentXg2Q5F6sjC9OD0MCIKYSSHryYHxnSKbYav8uqng== + dependencies: + "@babel/core" "^7.23.3" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-decorators" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/preset-typescript" "^7.23.3" + "@lwc/jest-shared" "14.2.1" + babel-preset-jest "^29.6.3" + magic-string "^0.30.5" + semver "^7.5.4" + +"@lwc/module-resolver@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/module-resolver/-/module-resolver-5.0.2.tgz#96bba5f1a7d39dc7c16f301fe9c0d0fd649e7f54" + integrity sha512-+jtOQUJYM2idtx69C1iS85ivbu9SHzItrPvHgOS0gju7JqcGoQwEuY4HVG2uLadL3p2JVnzOhl83lZrPPlY5eA== + dependencies: + resolve "~1.22.6" + +"@lwc/shared@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/shared/-/shared-5.0.2.tgz#48ba1268db90e01da5773a323c67359637cc8eeb" + integrity sha512-iEa/QNV2xVlI5/7xRnRz1+k/WLxNX1/jxvab+h0U+Nd9MIBkmwFlkxPgE6EUh5S2PkqEUYdveN+pk3gj1bZQcg== + +"@lwc/style-compiler@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/style-compiler/-/style-compiler-5.0.2.tgz#6e4f915ed6e3d1ab877d7467b25ed752f76e15b1" + integrity sha512-wA0cg635YIErMmT2ublnh79RVlU9lEzWbT/KSsdfHVMucCjzumt0gG1li4aPXmj3NVgUlz1+3TAnxnCUy2CoGg== + dependencies: + "@lwc/shared" "5.0.2" + postcss "~8.4.31" + postcss-selector-parser "~6.0.13" + postcss-value-parser "~4.2.0" + string.prototype.matchall "^4.0.10" + +"@lwc/synthetic-shadow@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/synthetic-shadow/-/synthetic-shadow-5.0.2.tgz#7031d826d41f15594fcfa9519258463525364db6" + integrity sha512-hcjmcBvGC3ibWm79KBF8genoQlg2KOstI6Xk2BzOh5/9x6nnwdgFbaOoLr+xwPwE/vSA1Hd8g8T+Dd4ZeBFYEQ== + +"@lwc/template-compiler@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/template-compiler/-/template-compiler-5.0.2.tgz#5a58ee27f38ae492d3ac96362db68b56f4556fbe" + integrity sha512-pVK6CwvzDDAh7DDi2NcN2r8JYxeSUwUGhRtYfls0moATw/hLm5guTdskRQ/BCJgDqiKAtuu0oA9ZQe8/bAx+bg== + dependencies: + "@lwc/errors" "5.0.2" + "@lwc/shared" "5.0.2" + acorn "~8.10.0" + astring "~1.8.6" + estree-walker "~2.0.2" + he "~1.2.0" + +"@lwc/wire-service@5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@lwc/wire-service/-/wire-service-5.0.2.tgz#0f1e4d240e3802361a536d9b376137c3728a33df" + integrity sha512-9+K986zsl4aH7r60TgTMKVmEew6ZAOsMPL6NeTh36KJGjHly+TbekldMKnjNnHuM2ImbL+Fiq+DNJ4nrvrf6hg== + +"@mdn/browser-compat-data@^5.2.34", "@mdn/browser-compat-data@^5.3.13": + version "5.4.5" + resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-5.4.5.tgz#9ac6b967ef372098a802dd8efa4766cf25c525d9" + integrity sha512-n3/+wko8WFd/fbiPCOuBB6HfKL6hTcygFEZ/MpmvpMRbgDSdlNMopDFGjsoTYqCbzTVTX9TL/StXco4yx2v58Q== + +"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": + version "5.1.1-v1" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" + integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg== + dependencies: + eslint-scope "5.1.1" + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/fs@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/fs@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + dependencies: + semver "^7.3.5" + +"@npmcli/git@^4.0.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" + integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== + dependencies: + "@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" + +"@npmcli/installed-package-contents@^2.0.1": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== + dependencies: + npm-bundled "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +"@npmcli/move-file@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/node-gyp@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== + +"@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2" + integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== + dependencies: + which "^3.0.0" + +"@npmcli/run-script@6.0.2", "@npmcli/run-script@^6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885" + integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== + dependencies: + "@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" + +"@nrwl/devkit@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-17.2.0.tgz#5dff00feb31f12f1d5c4f0fff41d35094b0c5914" + integrity sha512-FqyZbFGNwS51pKTF+d2sB4xym1yD/OYRKC4Sz3ku7mjk8yAWlJeT1JHT5gz56wrXiFKvATN/qEAXg7wlx3M1NA== + dependencies: + "@nx/devkit" "17.2.0" + +"@nrwl/tao@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-17.2.0.tgz#f652de5adc6f51e60649ad3156ded2a54074d622" + integrity sha512-pBs9CaOgzRS4tPEcSeYmktQ1g1VC2C+kzt7X2xlowPx6VRP5eyUKtZUeKztib/Pw2G3RNRxA8E3IZYYcjSb8Vg== + dependencies: + nx "17.2.0" + tslib "^2.3.0" + +"@nx/devkit@17.2.0", "@nx/devkit@>=17.1.2 < 18": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-17.2.0.tgz#2d9095a74778dd98ceecfd74b55af5d17187b7e2" + integrity sha512-9cgVDicIf2rdlMfWLq48RIBCzpHNgLJhuUtHCyvogr1ePZfG3YGA2NPHHW/QtRAm5kT8x5dWLtf68nlrAkcP/A== + dependencies: + "@nrwl/devkit" "17.2.0" + ejs "^3.1.7" + enquirer "~2.3.6" + ignore "^5.0.4" + semver "7.5.3" + tmp "~0.2.1" + tslib "^2.3.0" + +"@nx/nx-darwin-arm64@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.2.0.tgz#cc679e238a073497e3beff24075d89f97f0b257d" + integrity sha512-c26zrvevAOaoTAGz1+Spdet0seG82VYfgAfuVR1gn2tjVgvFw31RB/YMak2bJ1xFx7sFxZ2NOInRkn9y31lUWA== + +"@nx/nx-darwin-x64@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-17.2.0.tgz#8353086b4b7bcd65f4550ce8128a0888e20a7cc9" + integrity sha512-hXYfMtqytcQqXGmWejx79VDkgTs4MTOfI9x4TMpdO2QsJwyDHr2q36bR8ob297hVwfiQoG7SkWvXiKNtPB4XCw== + +"@nx/nx-freebsd-x64@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.2.0.tgz#391d4a7731ed05a094773809c42212bace374f06" + integrity sha512-PcbYzEhInEz8RNN23F0mYZoEXz9JL4XVqwcYfGWkcBEQ8GGwRmv776lfxg+7zDM1QlTwdsiSjQJQ7DRM/BwuTg== + +"@nx/nx-linux-arm-gnueabihf@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.2.0.tgz#0fc02ffdf1fa0d411d1203f4f860477470c876c8" + integrity sha512-oHn7n7NWUy0h5DR0GDxog46pT4fE99DVuyTyIrUybasvsKOQhszg97AHzziwLT6V/jGVoND+aRx+yWoX+T2Gfw== + +"@nx/nx-linux-arm64-gnu@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.2.0.tgz#91ff2d6286c492c370b2fcb892ca7a11a0bd998d" + integrity sha512-tc2HgxkD32nJ5dcWeMPJbveoHgKoc6aZWdNl4pDH8Xy36e+QozoY+7iKk6Li31EFtXBlbW1RVhtltNYpHgBJXg== + +"@nx/nx-linux-arm64-musl@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.2.0.tgz#9954fa95166d1f47318ef050169f4721674dcdf1" + integrity sha512-mfPvungAW9mQpKIcz9G8MwqTK3fm9L0ACghreh8wGVG934UtiCMSjkOOsoH+w5Hm4qsZiOjsRCY0B3JFKnw9Tw== + +"@nx/nx-linux-x64-gnu@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.2.0.tgz#342298419962dd516b3e7e8c50a95fdcff7a9359" + integrity sha512-0wQXugfleOzMMQVugAH/Jd3wzfOBeY1Jk4Tt6xAUVNZLOkYi1PYR/TjLvXcQ4BH388PF3VZYAZVRC8kbh4aDOg== + +"@nx/nx-linux-x64-musl@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.2.0.tgz#c2de93eb047e9e0f226e01f4a0a60d85131f4ce6" + integrity sha512-KB/Ny2Q0244G4QToKPmVwbTtItB+hRlNXz7NzXrW56gwINk1NbvS9QLZrRJOUyyOpd3gMlGQ5zt/+77pPraYDg== + +"@nx/nx-win32-arm64-msvc@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.2.0.tgz#f5dd03df7e5029b1f34f66332d7ea0a7e17501c8" + integrity sha512-3nxYLUQpYi5AtJCFFoXkn3QvAZHeBwKzyJ5nnD/oWv6EaZH74BfWqAzAq55E7bodlJGBEQxy86aC4epo41jNag== + +"@nx/nx-win32-x64-msvc@17.2.0": + version "17.2.0" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.2.0.tgz#42c8fb4fa751158ae66e1306cbe9bfd15df02b83" + integrity sha512-+rKsQrDvw/NZan8pMHRjlW9sJB27dvFG6+GvJlmNeutsClb813IKCD2tN9BbcxW7Cw5Ol+a2uKC76l2SZTnO3g== + +"@octokit/auth-token@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-3.0.4.tgz#70e941ba742bdd2b49bdb7393e821dea8520a3db" + integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== + +"@octokit/core@^4.2.1": + version "4.2.4" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.2.4.tgz#d8769ec2b43ff37cc3ea89ec4681a20ba58ef907" + integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== + dependencies: + "@octokit/auth-token" "^3.0.0" + "@octokit/graphql" "^5.0.0" + "@octokit/request" "^6.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^7.0.0": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.6.tgz#791f65d3937555141fb6c08f91d618a7d645f1e2" + integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== + dependencies: + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^5.0.0": + version "5.0.6" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.6.tgz#9eac411ac4353ccc5d3fca7d76736e6888c5d248" + integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== + dependencies: + "@octokit/request" "^6.0.0" + "@octokit/types" "^9.0.0" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^18.0.0": + version "18.1.1" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-18.1.1.tgz#09bdfdabfd8e16d16324326da5148010d765f009" + integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== + +"@octokit/plugin-enterprise-rest@6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" + integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== + +"@octokit/plugin-paginate-rest@^6.1.2": + version "6.1.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz#f86456a7a1fe9e58fec6385a85cf1b34072341f8" + integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== + dependencies: + "@octokit/tsconfig" "^1.0.2" + "@octokit/types" "^9.2.3" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^7.1.2": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz#37a84b171a6cb6658816c82c4082ac3512021797" + integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== + dependencies: + "@octokit/types" "^10.0.0" + +"@octokit/request-error@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.3.tgz#ef3dd08b8e964e53e55d471acfe00baa892b9c69" + integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== + dependencies: + "@octokit/types" "^9.0.0" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^6.0.0": + version "6.2.8" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.8.tgz#aaf480b32ab2b210e9dadd8271d187c93171d8eb" + integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== + dependencies: + "@octokit/endpoint" "^7.0.0" + "@octokit/request-error" "^3.0.0" + "@octokit/types" "^9.0.0" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@19.0.11": + version "19.0.11" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.11.tgz#2ae01634fed4bd1fca5b642767205ed3fd36177c" + integrity sha512-m2a9VhaP5/tUw8FwfnW2ICXlXpLPIqxtg3XcAiGMLj/Xhw3RSBfZ8le/466ktO1Gcjr8oXudGnHhxV1TXJgFxw== + dependencies: + "@octokit/core" "^4.2.1" + "@octokit/plugin-paginate-rest" "^6.1.2" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^7.1.2" + +"@octokit/tsconfig@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@octokit/tsconfig/-/tsconfig-1.0.2.tgz#59b024d6f3c0ed82f00d08ead5b3750469125af7" + integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== + +"@octokit/types@^10.0.0": + version "10.0.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-10.0.0.tgz#7ee19c464ea4ada306c43f1a45d444000f419a4a" + integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": + version "9.3.2" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-9.3.2.tgz#3f5f89903b69f6a2d196d78ec35f888c0013cac5" + integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== + dependencies: + "@octokit/openapi-types" "^18.0.0" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@prettier/plugin-xml@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@prettier/plugin-xml/-/plugin-xml-3.2.2.tgz#ccc53d39b333aef140433b62449ea9f74d8e2eb6" + integrity sha512-SoE70SQF1AKIvK7LVK80JcdAe6wrDcbodFFjcoqb1FkOqV0G0oSlgAFDwoRXPqkUE5p/YF2nGsnUbnfm6471sw== + dependencies: + "@xml-tools/parser" "^1.0.11" + +"@salesforce/eslint-config-lwc@^3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@salesforce/eslint-config-lwc/-/eslint-config-lwc-3.5.2.tgz#45ae1596a35395cfec7c49736b9c52f8b9aa2b82" + integrity sha512-TqD5pF/OwjNNrms5nn9f6bf630T7WzXuH0RYF1ybsFOYsGQ2vFxD/F5fUNAjdQgLTR0hXK303j8yIw2fwTiOIQ== + dependencies: + "@babel/core" "~7.22.8" + "@babel/eslint-parser" "~7.22.7" + eslint-restricted-globals "~0.2.0" + semver "^7.5.3" + +"@salesforce/eslint-plugin-aura@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@salesforce/eslint-plugin-aura/-/eslint-plugin-aura-2.1.0.tgz#11c65d6190ecfffbc27e06b2d686026784c0b5c5" + integrity sha512-7HfwSBKTHQZQboLoEhkBY7bYR9wTaT+G5jHXGlq8y31hEnNhJXRZ+RERDEwDm1jYa2SV9lE8nMNr0/8EKIGjlQ== + dependencies: + eslint-plugin-compat "^4.0.2" + +"@salesforce/eslint-plugin-lightning@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@salesforce/eslint-plugin-lightning/-/eslint-plugin-lightning-1.0.0.tgz#9ecf80527d83394960ef3c358c790cdfde44f578" + integrity sha512-zk0PKXAcHKHepAG2EOSWlkOTxQM0Aw1CT6+MUxJcM42fCDwH/yPPpGkG3CWtRfmVViODGOwU9ywU2wlkAYcvUQ== + +"@salesforce/sfdx-lwc-jest@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@salesforce/sfdx-lwc-jest/-/sfdx-lwc-jest-3.1.0.tgz#f6c883b53d7e028dc3556947dc21c9d42648077d" + integrity sha512-+de3WPArr3M8gbzAa+qKjCpANZ/iAGPmDIH1oMfu5SMR76x2Oep5pSJXpKYdots77w2T9qK9Fk/9cTE9xacdWg== + dependencies: + "@lwc/compiler" "5.0.2" + "@lwc/engine-dom" "5.0.2" + "@lwc/engine-server" "5.0.2" + "@lwc/jest-preset" "14.2.1" + "@lwc/jest-resolver" "14.2.1" + "@lwc/jest-serializer" "14.2.1" + "@lwc/jest-transformer" "14.2.1" + "@lwc/module-resolver" "5.0.2" + "@lwc/synthetic-shadow" "5.0.2" + "@lwc/wire-service" "5.0.2" + "@salesforce/wire-service-jest-util" "4.1.4" + fast-glob "^3.3.2" + jest "29.7.0" + jest-environment-jsdom "29.7.0" + yargs "~17.7.2" + +"@salesforce/wire-service-jest-util@4.1.4": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@salesforce/wire-service-jest-util/-/wire-service-jest-util-4.1.4.tgz#cbfaace19eac9040b24f35e8afa36f4865d4c010" + integrity sha512-jVDvR+vazxSfN7qYCubUSg43DRCgLrOjMtQvJhXrVo25mKzLv9MfONWUej5xzq1fB4i5dSdSmcJwMG260QUgdw== + dependencies: + "@types/jest" "^29.5.8" + "@typescript-eslint/eslint-plugin" "^6.11.0" + "@typescript-eslint/parser" "^6.11.0" + +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + +"@sigstore/bundle@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== + dependencies: + "@sigstore/protobuf-specs" "^0.2.0" + +"@sigstore/protobuf-specs@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== + +"@sigstore/sign@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" + integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + make-fetch-happen "^11.0.1" + +"@sigstore/tuf@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160" + integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== + dependencies: + "@sigstore/protobuf-specs" "^0.2.0" + tuf-js "^1.1.7" + +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== + +"@sinonjs/commons@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" + integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^10.0.2": + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== + dependencies: + "@sinonjs/commons" "^3.0.0" + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@tufjs/canonical-json@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31" + integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ== + +"@tufjs/models@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef" + integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A== + dependencies: + "@tufjs/canonical-json" "1.0.0" + minimatch "^9.0.0" + +"@types/babel__core@^7.1.14": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017" + integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.7" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.7.tgz#a7aebf15c7bc0eb9abd638bdb5c0b8700399c9d0" + integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.4" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f" + integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.20.4" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.4.tgz#ec2c06fed6549df8bc0eb4615b683749a4a92e1b" + integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== + dependencies: + "@babel/types" "^7.20.7" + +"@types/graceful-fs@^4.1.3": + version "4.1.9" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4" + integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== + dependencies: + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== + +"@types/istanbul-lib-report@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^29.5.8": + version "29.5.11" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.11.tgz#0c13aa0da7d0929f078ab080ae5d4ced80fa2f2c" + integrity sha512-S2mHmYIVe13vrm6q4kN6fLYYAka15ALQki/vgDC3mIukEOx8WJlv0kQPM+d4w8Gp6u0uSdKND04IlTXBv0rwnQ== + dependencies: + expect "^29.0.0" + pretty-format "^29.0.0" + +"@types/jsdom@^20.0.0": + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" + integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== + dependencies: + "@types/node" "*" + "@types/tough-cookie" "*" + parse5 "^7.0.0" + +"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/minimist@^1.2.0": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== + +"@types/node@*": + version "20.10.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" + integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== + dependencies: + undici-types "~5.26.4" + +"@types/normalize-package-data@^2.4.0": + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== + +"@types/semver@^7.3.12", "@types/semver@^7.5.0": + version "7.5.6" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== + +"@types/stack-utils@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.3.tgz#6209321eb2c1712a7e7466422b8cb1fc0d9dd5d8" + integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + +"@types/yargs-parser@*": + version "21.0.3" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" + integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== + +"@types/yargs@^17.0.8": + version "17.0.32" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.32.tgz#030774723a2f7faafebf645f4e5a48371dca6229" + integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== + dependencies: + "@types/yargs-parser" "*" + +"@typescript-eslint/eslint-plugin@^6.11.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b" + integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw== + dependencies: + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/type-utils" "6.14.0" + "@typescript-eslint/utils" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" + debug "^4.3.4" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/parser@^6.11.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212" + integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA== + dependencies: + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" + integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + +"@typescript-eslint/scope-manager@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" + integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== + dependencies: + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" + +"@typescript-eslint/type-utils@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af" + integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw== + dependencies: + "@typescript-eslint/typescript-estree" "6.14.0" + "@typescript-eslint/utils" "6.14.0" + debug "^4.3.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/types@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" + integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== + +"@typescript-eslint/types@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" + integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== + +"@typescript-eslint/typescript-estree@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b" + integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== + dependencies: + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/visitor-keys" "5.62.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.3.7" + tsutils "^3.21.0" + +"@typescript-eslint/typescript-estree@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" + integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== + dependencies: + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/visitor-keys" "6.14.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/utils@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" + integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.14.0" + "@typescript-eslint/types" "6.14.0" + "@typescript-eslint/typescript-estree" "6.14.0" + semver "^7.5.4" + +"@typescript-eslint/utils@^5.10.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" + integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@types/json-schema" "^7.0.9" + "@types/semver" "^7.3.12" + "@typescript-eslint/scope-manager" "5.62.0" + "@typescript-eslint/types" "5.62.0" + "@typescript-eslint/typescript-estree" "5.62.0" + eslint-scope "^5.1.1" + semver "^7.3.7" + +"@typescript-eslint/visitor-keys@5.62.0": + version "5.62.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" + integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== + dependencies: + "@typescript-eslint/types" "5.62.0" + eslint-visitor-keys "^3.3.0" + +"@typescript-eslint/visitor-keys@6.14.0": + version "6.14.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" + integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== + dependencies: + "@typescript-eslint/types" "6.14.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@xml-tools/parser@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@xml-tools/parser/-/parser-1.0.11.tgz#a118a14099ea5c3c537e4781fad2fc195b57f8ff" + integrity sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA== + dependencies: + chevrotain "7.1.1" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@yarnpkg/parsers@3.0.0-rc.46": + version "3.0.0-rc.46" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.46.tgz#03f8363111efc0ea670e53b0282cd3ef62de4e01" + integrity sha512-aiATs7pSutzda/rq8fnuPwTglyVwjM22bNnK2ZgjrpAjQHSSl3lztd2f9evst1W/qnC58DRz7T7QndUDumAR4Q== + dependencies: + js-yaml "^3.10.0" + tslib "^2.4.0" + +"@zkochan/js-yaml@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz#975f0b306e705e28b8068a07737fa46d3fc04826" + integrity sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg== + dependencies: + argparse "^2.0.1" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +abab@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" + integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== + +abbrev@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== + dependencies: + acorn "^8.1.0" + acorn-walk "^8.0.2" + +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn-walk@^8.0.2: + version "8.3.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" + integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + +acorn@^8.1.0, acorn@^8.8.1, acorn@^8.9.0: + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== + +acorn@~8.10.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== + dependencies: + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + 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" + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-regex@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +ansi-styles@^6.1.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + +anymatch@^3.0.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-ify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== + +array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +ast-metadata-inferer@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/ast-metadata-inferer/-/ast-metadata-inferer-0.8.0.tgz#0f94c3425e310d8da45823ab2161142e3f134343" + integrity sha512-jOMKcHht9LxYIEQu+RVd22vtgrPaVCtDRQ/16IGmurdzxvYbDd5ynxjnyrzLnieG96eTcAyaoj/wN/4/1FyyeA== + dependencies: + "@mdn/browser-compat-data" "^5.2.34" + +astring@~1.8.6: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + +async@^3.2.3: + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axios@^1.5.1, axios@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.2.tgz#de67d42c755b571d3e698df1b6504cde9b0ee9f2" + integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +babel-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5" + integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== + dependencies: + "@jest/transform" "^29.7.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.6.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626" + integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c" + integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== + dependencies: + babel-plugin-jest-hoist "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== + +bl@^4.0.3, bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.21.10, browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + +builtins@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== + dependencies: + semver "^7.0.0" + +byte-size@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/byte-size/-/byte-size-8.1.1.tgz#3424608c62d59de5bfda05d31e0313c6174842ae" + integrity sha512-tUkzZWK0M/qdoLEqikxBWe4kumyuwjl3HO6zHTr4yEI23EojPtLYXdG1+AQY7MN0cGyNDvEaJ8wiYQm6P2bPxg== + +cacache@^16.1.0: + version "16.1.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== + dependencies: + "@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" + +cacache@^17.0.0: + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== + dependencies: + "@npmcli/fs" "^3.1.0" + fs-minipass "^3.0.0" + glob "^10.2.2" + lru-cache "^7.7.1" + minipass "^7.0.3" + 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" + +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001524, caniuse-lite@^1.0.30001565: + version "1.0.30001568" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz#53fa9297273c9a977a560663f48cbea1767518b7" + integrity sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A== + +chalk@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chevrotain@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/chevrotain/-/chevrotain-7.1.1.tgz#5122814eafd1585a9601f9180a7be9c42d5699c6" + integrity sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw== + dependencies: + regexp-to-ast "0.5.0" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^3.2.0, ci-info@^3.6.1: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + +cjs-module-lexer@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" + integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-cursor@3.1.0, cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-spinners@^2.5.0: + version "2.9.2" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" + integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +clone-deep@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +cmd-shim@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.1.tgz#a65878080548e1dca760b3aea1e21ed05194da9d" + integrity sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q== + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.1.4, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +columnify@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== + dependencies: + strip-ansi "^6.0.1" + wcwidth "^1.0.0" + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +compare-func@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== + dependencies: + array-ify "^1.0.0" + dot-prop "^5.1.0" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + +console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +conventional-changelog-angular@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz#5eec8edbff15aa9b1680a8dcfbd53e2d7eb2ba7a" + integrity sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ== + dependencies: + compare-func "^2.0.0" + +conventional-changelog-core@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-5.0.1.tgz#3c331b155d5b9850f47b4760aeddfc983a92ad49" + integrity sha512-Rvi5pH+LvgsqGwZPZ3Cq/tz4ty7mjijhr3qR4m9IBXNbxGGYgTVVO+duXzz9aArmHxFtwZ+LRkrNIMDQzgoY4A== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^6.0.0" + conventional-commits-parser "^4.0.0" + dateformat "^3.0.3" + get-pkg-repo "^4.2.1" + git-raw-commits "^3.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^5.0.0" + normalize-package-data "^3.0.3" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + +conventional-changelog-preset-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-3.0.0.tgz#14975ef759d22515d6eabae6396c2ae721d4c105" + integrity sha512-qy9XbdSLmVnwnvzEisjxdDiLA4OmV3o8db+Zdg4WiFw14fP3B6XNz98X0swPPpkTd/pc1K7+adKgEDM1JCUMiA== + +conventional-changelog-writer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-6.0.1.tgz#d8d3bb5e1f6230caed969dcc762b1c368a8f7b01" + integrity sha512-359t9aHorPw+U+nHzUXHS5ZnPBOizRxfQsWT5ZDHBfvfxQOAik+yfuhKXG66CN5LEWPpMNnIMHUTCKeYNprvHQ== + dependencies: + conventional-commits-filter "^3.0.0" + dateformat "^3.0.3" + handlebars "^4.7.7" + json-stringify-safe "^5.0.1" + meow "^8.1.2" + semver "^7.0.0" + split "^1.0.1" + +conventional-commits-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-3.0.0.tgz#bf1113266151dd64c49cd269e3eb7d71d7015ee2" + integrity sha512-1ymej8b5LouPx9Ox0Dw/qAO2dVdfpRFq28e5Y0jJEU8ZrLdy0vOSkkIInwmxErFGhg6SALro60ZrwYFVTUDo4Q== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.1" + +conventional-commits-parser@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== + dependencies: + JSONStream "^1.3.5" + is-text-path "^1.0.1" + meow "^8.1.2" + split2 "^3.2.2" + +conventional-recommended-bump@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-7.0.1.tgz#ec01f6c7f5d0e2491c2d89488b0d757393392424" + integrity sha512-Ft79FF4SlOFvX4PkwFDRnaNiIVX7YbmqGU0RwccUaiGvgp3S0a8ipR2/Qxk31vclDNM+GSdJOVs2KrsUCjblVA== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^3.0.0" + conventional-commits-filter "^3.0.0" + conventional-commits-parser "^4.0.0" + git-raw-commits "^3.0.0" + git-semver-tags "^5.0.0" + meow "^8.1.2" + +convert-source-map@^1.7.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== + +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmiconfig@^8.2.0: + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== + dependencies: + import-fresh "^3.3.0" + js-yaml "^4.1.0" + parse-json "^5.2.0" + path-type "^4.0.0" + +create-jest@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320" + integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-config "^29.7.0" + jest-util "^29.7.0" + prompts "^2.0.1" + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssfontparser@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/cssfontparser/-/cssfontparser-1.2.1.tgz#f4022fc8f9700c68029d542084afbaf425a3f3e3" + integrity sha512-6tun4LoZnj7VN6YeegOVb67KBX/7JJsqvj+pv3ZA7F878/eN33AbGa5b/S/wXxS/tcp8nc40xRUrsPlxIyNUPg== + +cssom@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" + integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw== + +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== + +cssstyle@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" + integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== + dependencies: + cssom "~0.3.6" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +data-urls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" + integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ== + dependencies: + abab "^2.0.6" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + +dateformat@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +dedent@0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +defaults@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== + dependencies: + clone "^1.0.2" + +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +deprecation@^2.0.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +detect-indent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-5.0.0.tgz#3871cc0a6a002e8c3e5b3cf7f336264675f06b9d" + integrity sha512-rlpvsxUtM0PQvy9iZe640/IWwWYyBsTApREbA1pHOpmOUIl9MkP/U4z7vTtg4Oaojvqhxt7sdufnT0EzGaR31g== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +diff-sequences@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" + integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +domexception@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673" + integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw== + dependencies: + webidl-conversions "^7.0.0" + +dot-prop@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== + dependencies: + is-obj "^2.0.0" + +dotenv-expand@~10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-10.0.0.tgz#12605d00fb0af6d0a592e6558585784032e4ef37" + integrity sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A== + +dotenv@~16.3.1: + version "16.3.1" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" + integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== + +duplexer@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + +eastasianwidth@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== + +ejs@^3.1.7: + version "3.1.9" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== + dependencies: + jake "^10.8.5" + +electron-to-chromium@^1.4.601: + version "1.4.610" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz#e17b22203f4aa2e1ed77759c720546d95a51186f" + integrity sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg== + +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + +encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +envinfo@7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" + integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.13" + +es-set-tostringtag@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escodegen@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== + dependencies: + esprima "^4.0.1" + estraverse "^5.2.0" + esutils "^2.0.2" + optionalDependencies: + source-map "~0.6.1" + +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-compat@^4.0.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-compat/-/eslint-plugin-compat-4.2.0.tgz#eeaf80daa1afe495c88a47e9281295acae45c0aa" + integrity sha512-RDKSYD0maWy5r7zb5cWQS+uSPc26mgOzdORJ8hxILmWM7S/Ncwky7BcAtXVY5iRbKjBdHsWU8Yg7hfoZjtkv7w== + dependencies: + "@mdn/browser-compat-data" "^5.3.13" + ast-metadata-inferer "^0.8.0" + browserslist "^4.21.10" + caniuse-lite "^1.0.30001524" + find-up "^5.0.0" + lodash.memoize "^4.1.2" + semver "^7.5.4" + +eslint-plugin-import@^2.29.0: + version "2.29.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz#8133232e4329ee344f2f612885ac3073b0b7e155" + integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== + 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.14.2" + +eslint-plugin-jest@^27.6.0: + version "27.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz#e5c0cf735b3c8cad0ef9db5b565b2fc99f5e55ed" + integrity sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng== + dependencies: + "@typescript-eslint/utils" "^5.10.0" + +eslint-restricted-globals@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/eslint-restricted-globals/-/eslint-restricted-globals-0.2.0.tgz#7729f326af97bec7a7e56d9f7d9c064b79285c50" + integrity sha512-kwYJALm5KS2QW3Mc1PgObO4V+pTR6RQtRT65L1GQILlEnAhabUQqGAX7/qUjoQR4KZJKehWpBtyDEiDecwmY9A== + +eslint-scope@5.1.1, eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.55.0: + version "8.55.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" + integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.55.0" + "@humanwhocodes/config-array" "^0.11.13" + "@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" + 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" + 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" + 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.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estree-walker@~2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +execa@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.0.0.tgz#4029b0007998a841fbd1032e5f4de86a3c1e3376" + integrity sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ== + 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" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^29.0.0, expect@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" + integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== + dependencies: + "@jest/expect-utils" "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + +fb-watchman@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== + dependencies: + bser "2.1.1" + +figures@3.2.0, figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ== + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + +follow-redirects@^1.15.0: + version "1.15.3" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" + integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +foreground-child@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^4.0.1" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + +fs-extra@^11.1.0, fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs-minipass@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== + dependencies: + minipass "^7.0.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-pkg-repo@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz#75973e1c8050c73f48190c52047c4cee3acbf385" + integrity sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA== + dependencies: + "@hutson/parse-repository-url" "^3.0.0" + hosted-git-info "^4.0.0" + through2 "^2.0.0" + yargs "^16.2.0" + +get-port@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" + integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== + +get-stream@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" + integrity sha512-A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +git-raw-commits@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-3.0.0.tgz#5432f053a9744f67e8db03dbc48add81252cfdeb" + integrity sha512-b5OHmZ3vAgGrDn/X0kS+9qCfNKWe4K/jFnhwzVWWg0/k5eLa3060tZShrRg8Dja5kPc+YjS0Gc6y7cRr44Lpjw== + dependencies: + dargs "^7.0.0" + meow "^8.1.2" + split2 "^3.2.2" + +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw== + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-5.0.1.tgz#db748aa0e43d313bf38dcd68624d8443234e1c15" + integrity sha512-hIvOeZwRbQ+7YEUmCkHqo8FOLQZCEn18yevLHADlFPZY02KJGsu5FZt9YW/lybfK2uhWFI7Qg/07LekJiTv7iA== + dependencies: + meow "^8.1.2" + semver "^7.0.0" + +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== + dependencies: + git-up "^7.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ== + dependencies: + ini "^1.3.2" + +glob-parent@5.1.2, glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob@7.1.4: + version "7.1.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + 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@^10.2.2: + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.5" + minimatch "^9.0.1" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.1: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +glob@^9.2.0: + version "9.3.5" + resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.5.tgz#ca2ed8ca452781a3009685607fdf025a899dfe21" + integrity sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q== + dependencies: + fs.realpath "^1.0.0" + minimatch "^8.0.2" + minipass "^4.2.4" + path-scurry "^1.6.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^13.19.0, globals@^13.23.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@11.1.0, globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@4.2.11, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@2.0.1, has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + +he@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" + integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^4.0.0, hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +hosted-git-info@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== + dependencies: + lru-cache "^7.5.1" + +html-encoding-sniffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9" + integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA== + dependencies: + whatwg-encoding "^2.0.0" + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +husky@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + +iconv-lite@0.6.3, iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776" + integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw== + dependencies: + minimatch "^5.0.1" + +ignore-walk@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.4.tgz#89950be94b4f522225eb63a13c56badb639190e9" + integrity sha512-t7sv42WkwFkyKbivUCglsQW5YWMskWtbEf4MNKX5u/CCWHKSPzN4FtBQGsQZgCLbxOzpVlcbWVK5KB3auIOjSw== + dependencies: + minimatch "^9.0.0" + +ignore@^5.0.4, ignore@^5.2.0, ignore@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +import-fresh@^3.2.1, import-fresh@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-local@3.1.0, import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.2, ini@^1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +init-package-json@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-5.0.0.tgz#030cf0ea9c84cfc1b0dc2e898b45d171393e4b40" + integrity sha512-kBhlSheBfYmq3e0L1ii+VKe3zBTLL5lDCDWR+f9dLmEGSB3MqLlMlsolubSsyI88Bg6EA+BIMlomAnQ1SwgQBw== + dependencies: + 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@^8.2.4: + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^6.0.1" + +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-ci@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.1.tgz#db6ecbed1bd659c43dac0f45661e7674103d1867" + integrity sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ== + dependencies: + ci-info "^3.2.0" + +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + +is-stream@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-text-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== + dependencies: + text-extensions "^1.0.0" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== + dependencies: + isarray "1.0.0" + +isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== + +istanbul-lib-instrument@^5.0.4: + version "5.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" + integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-instrument@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz#71e87707e8041428732518c6fb5211761753fbdf" + integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-report@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^4.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jake@^10.8.5: + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.4" + minimatch "^3.1.2" + +jest-canvas-mock@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jest-canvas-mock/-/jest-canvas-mock-2.5.2.tgz#7e21ebd75e05ab41c890497f6ba8a77f915d2ad6" + integrity sha512-vgnpPupjOL6+L5oJXzxTxFrlGEIbHdZqFU+LFNdtLxZ3lRDCl17FlTMM7IatoRQkrcyOTMlDinjUguqmQ6bR2A== + dependencies: + cssfontparser "^1.2.1" + moo-color "^1.0.2" + +jest-changed-files@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" + integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== + dependencies: + execa "^5.0.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + +jest-circus@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a" + integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/expect" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^1.0.0" + is-generator-fn "^2.0.0" + jest-each "^29.7.0" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-runtime "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + p-limit "^3.1.0" + pretty-format "^29.7.0" + pure-rand "^6.0.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995" + integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== + dependencies: + "@jest/core" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + chalk "^4.0.0" + create-jest "^29.7.0" + exit "^0.1.2" + import-local "^3.0.2" + jest-config "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + yargs "^17.3.1" + +jest-config@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f" + integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^29.7.0" + "@jest/types" "^29.6.3" + babel-jest "^29.7.0" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^29.7.0" + jest-environment-node "^29.7.0" + jest-get-type "^29.6.3" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-runner "^29.7.0" + jest-util "^29.7.0" + jest-validate "^29.7.0" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^29.7.0" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +"jest-diff@>=29.4.3 < 30", jest-diff@^29.4.1, jest-diff@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a" + integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== + dependencies: + chalk "^4.0.0" + diff-sequences "^29.6.3" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-docblock@^29.0.0, jest-docblock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a" + integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== + dependencies: + detect-newline "^3.0.0" + +jest-each@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1" + integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== + dependencies: + "@jest/types" "^29.6.3" + chalk "^4.0.0" + jest-get-type "^29.6.3" + jest-util "^29.7.0" + pretty-format "^29.7.0" + +jest-environment-jsdom@29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.7.0.tgz#d206fa3551933c3fd519e5dfdb58a0f5139a837f" + integrity sha512-k9iQbsf9OyOfdzWH8HDmrRT0gSIcX+FLNW7IQq94tFX0gynPwqDTW0Ho6iMVNjGz/nb+l/vW3dWM2bbLLpkbXA== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/jsdom" "^20.0.0" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + jsdom "^20.0.0" + +jest-environment-node@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376" + integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-mock "^29.7.0" + jest-util "^29.7.0" + +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + +jest-haste-map@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104" + integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== + dependencies: + "@jest/types" "^29.6.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^29.6.3" + jest-util "^29.7.0" + jest-worker "^29.7.0" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" + integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== + dependencies: + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-matcher-utils@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12" + integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== + dependencies: + chalk "^4.0.0" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + pretty-format "^29.7.0" + +jest-message-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3" + integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.6.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.7.0" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347" + integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + jest-util "^29.7.0" + +jest-pnp-resolver@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== + +jest-regex-util@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52" + integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== + +jest-resolve-dependencies@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428" + integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== + dependencies: + jest-regex-util "^29.6.3" + jest-snapshot "^29.7.0" + +jest-resolve@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30" + integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-pnp-resolver "^1.2.2" + jest-util "^29.7.0" + jest-validate "^29.7.0" + resolve "^1.20.0" + resolve.exports "^2.0.0" + slash "^3.0.0" + +jest-runner@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e" + integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== + dependencies: + "@jest/console" "^29.7.0" + "@jest/environment" "^29.7.0" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.13.1" + graceful-fs "^4.2.9" + jest-docblock "^29.7.0" + jest-environment-node "^29.7.0" + jest-haste-map "^29.7.0" + jest-leak-detector "^29.7.0" + jest-message-util "^29.7.0" + jest-resolve "^29.7.0" + jest-runtime "^29.7.0" + jest-util "^29.7.0" + jest-watcher "^29.7.0" + jest-worker "^29.7.0" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817" + integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== + dependencies: + "@jest/environment" "^29.7.0" + "@jest/fake-timers" "^29.7.0" + "@jest/globals" "^29.7.0" + "@jest/source-map" "^29.6.3" + "@jest/test-result" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^29.7.0" + jest-message-util "^29.7.0" + jest-mock "^29.7.0" + jest-regex-util "^29.6.3" + jest-resolve "^29.7.0" + jest-snapshot "^29.7.0" + jest-util "^29.7.0" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5" + integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-jsx" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^29.7.0" + "@jest/transform" "^29.7.0" + "@jest/types" "^29.6.3" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^29.7.0" + graceful-fs "^4.2.9" + jest-diff "^29.7.0" + jest-get-type "^29.6.3" + jest-matcher-utils "^29.7.0" + jest-message-util "^29.7.0" + jest-util "^29.7.0" + natural-compare "^1.4.0" + pretty-format "^29.7.0" + semver "^7.5.3" + +jest-util@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc" + integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== + dependencies: + "@jest/types" "^29.6.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== + dependencies: + "@jest/types" "^29.6.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^29.6.3" + leven "^3.1.0" + pretty-format "^29.7.0" + +jest-watcher@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2" + integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== + dependencies: + "@jest/test-result" "^29.7.0" + "@jest/types" "^29.6.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.13.1" + jest-util "^29.7.0" + string-length "^4.0.1" + +jest-worker@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a" + integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== + dependencies: + "@types/node" "*" + jest-util "^29.7.0" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613" + integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== + dependencies: + "@jest/core" "^29.7.0" + "@jest/types" "^29.6.3" + import-local "^3.0.2" + jest-cli "^29.7.0" + +joi@^17.11.0: + version "17.11.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.11.0.tgz#aa9da753578ec7720e6f0ca2c7046996ed04fc1a" + integrity sha512-NgB+lZLNoqISVy1rZocE9PZI36bL/77ie924Ri43yEvi9GUUMPeyVIr8KdFTMUlby1p0PBYMk9spIxEUQYqrJQ== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.1" + "@sideway/pinpoint" "^2.0.0" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0, js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.10.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsdom@^20.0.0: + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== + dependencies: + abab "^2.0.6" + acorn "^8.8.1" + acorn-globals "^7.0.0" + cssom "^0.5.0" + cssstyle "^2.3.0" + data-urls "^3.0.2" + decimal.js "^10.4.2" + domexception "^4.0.0" + escodegen "^2.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.2" + parse5 "^7.1.1" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^11.0.0" + ws "^8.11.0" + xml-name-validator "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + +json-parse-better-errors@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-parse-even-better-errors@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +json5@^2.2.2, json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== + +jsonc-parser@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.2.0, jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + +kind-of@^6.0.2, kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +lerna@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/lerna/-/lerna-8.0.0.tgz#67e2fa42a0e6c10a95257a90ee70fd3c42a45f28" + integrity sha512-Ddshct9hJrujtR7t2cAIiiiKnQCKiTvR/Ki3KhzpBNVepYtWq+dg+HxArZrezF+sYxI+OCxL00BxDHY4/H4uGg== + dependencies: + "@lerna/create" "8.0.0" + "@npmcli/run-script" "6.0.2" + "@nx/devkit" ">=17.1.2 < 18" + "@octokit/plugin-enterprise-rest" "6.0.1" + "@octokit/rest" "19.0.11" + byte-size "8.1.1" + chalk "4.1.0" + clone-deep "4.0.1" + cmd-shim "6.0.1" + columnify "1.6.0" + conventional-changelog-angular "7.0.0" + conventional-changelog-core "5.0.1" + conventional-recommended-bump "7.0.1" + cosmiconfig "^8.2.0" + dedent "0.7.0" + envinfo "7.8.1" + execa "5.0.0" + fs-extra "^11.1.1" + get-port "5.1.1" + get-stream "6.0.0" + git-url-parse "13.1.0" + glob-parent "5.1.2" + globby "11.1.0" + graceful-fs "4.2.11" + has-unicode "2.0.1" + import-local "3.1.0" + ini "^1.3.8" + init-package-json "5.0.0" + inquirer "^8.2.4" + is-ci "3.0.1" + is-stream "2.0.0" + jest-diff ">=29.4.3 < 30" + js-yaml "4.1.0" + libnpmaccess "7.0.2" + libnpmpublish "7.3.0" + load-json-file "6.2.0" + lodash "^4.17.21" + make-dir "4.0.0" + minimatch "3.0.5" + multimatch "5.0.0" + node-fetch "2.6.7" + npm-package-arg "8.1.1" + npm-packlist "5.1.1" + npm-registry-fetch "^14.0.5" + npmlog "^6.0.2" + nx ">=17.1.2 < 18" + p-map "4.0.0" + p-map-series "2.1.0" + p-pipe "3.1.0" + p-queue "6.6.2" + p-reduce "2.1.0" + p-waterfall "2.1.1" + pacote "^15.2.0" + pify "5.0.0" + read-cmd-shim "4.0.0" + read-package-json "6.0.4" + resolve-from "5.0.0" + rimraf "^4.4.1" + semver "^7.3.8" + signal-exit "3.0.7" + slash "3.0.0" + ssri "^9.0.1" + strong-log-transformer "2.1.0" + tar "6.1.11" + temp-dir "1.0.0" + typescript ">=3 < 6" + upath "2.0.1" + uuid "^9.0.0" + validate-npm-package-license "3.0.4" + validate-npm-package-name "5.0.0" + write-file-atomic "5.0.1" + write-pkg "4.0.0" + yargs "17.7.2" + yargs-parser "21.1.1" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +libnpmaccess@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-7.0.2.tgz#7f056c8c933dd9c8ba771fa6493556b53c5aac52" + integrity sha512-vHBVMw1JFMTgEk15zRsJuSAg7QtGGHpUSEfnbcRL1/gTBag9iEfJbyjpDmdJmwMhvpoLoNBtdAUCdGnaP32hhw== + dependencies: + npm-package-arg "^10.1.0" + npm-registry-fetch "^14.0.3" + +libnpmpublish@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-7.3.0.tgz#2ceb2b36866d75a6cd7b4aa748808169f4d17e37" + integrity sha512-fHUxw5VJhZCNSls0KLNEG0mCD2PN1i14gH5elGOgiVnU3VgTcRahagYP2LKI1m0tFCJ+XrAm0zVYyF5RCbXzcg== + dependencies: + ci-info "^3.6.1" + normalize-package-data "^5.0.0" + npm-package-arg "^10.1.0" + npm-registry-fetch "^14.0.3" + proc-log "^3.0.0" + semver "^7.3.7" + sigstore "^1.4.0" + ssri "^10.0.1" + +line-column@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/line-column/-/line-column-1.0.2.tgz#d25af2936b6f4849172b312e4792d1d987bc34a2" + integrity sha512-Ktrjk5noGYlHsVnYWh62FLVs4hTb8A3e+vucNZMgPeAOITdshMSgv4cCZQeRDjm7+goqmo6+liZwTXo+U3sVww== + dependencies: + isarray "^1.0.0" + isobject "^2.0.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +lines-and-columns@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-2.0.4.tgz#d00318855905d2660d8c0822e3f5a4715855fc42" + integrity sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A== + +load-json-file@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-6.2.0.tgz#5c7770b42cafa97074ca2848707c61662f4251a1" + integrity sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ== + dependencies: + graceful-fs "^4.1.15" + parse-json "^5.0.0" + strip-bom "^4.0.0" + type-fest "^0.6.0" + +load-json-file@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw== + dependencies: + graceful-fs "^4.1.2" + parse-json "^4.0.0" + pify "^3.0.0" + strip-bom "^3.0.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA== + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: + version "7.18.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +"lru-cache@^9.1.1 || ^10.0.0": + version "10.1.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== + +magic-string@^0.30.5: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== + dependencies: + "@jridgewell/sourcemap-codec" "^1.4.15" + +make-dir@4.0.0, make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + +make-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-fetch-happen@^10.0.3: + version "10.2.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== + dependencies: + 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" + +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" + integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== + dependencies: + 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" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +match-json@1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/match-json/-/match-json-1.3.5.tgz#3b2de7093f2b0136bdccf7768ca0e41f581a96ea" + integrity sha512-V5Jw1rIdjt37vfQRqvKtXW4dKbSTpvgwyEPKOBikY90xQ5Wr5yOmfpjcTm12d0Kqq+TfMqlXJkETf4yOF9JhUw== + +meow@^8.1.2: + version "8.1.2" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" + integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-8.0.4.tgz#847c1b25c014d4e9a7f68aaf63dedd668a626229" + integrity sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6, minimist@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-fetch@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + dependencies: + minipass "^7.0.3" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.8.tgz#f0010f64393ecfc1d1ccb5f582bcaf45f48e1a3a" + integrity sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ== + +minipass@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== + +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== + +minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +modify-values@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + +moo-color@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/moo-color/-/moo-color-1.0.3.tgz#d56435f8359c8284d83ac58016df7427febece74" + integrity sha512-i/+ZKXMDf6aqYtBhuOcej71YSlbjT3wCO/4H1j8rPvxDJEifdwgg5MaFyu6iYAT8GBZJg2z0dkgK4YMzvURALQ== + dependencies: + color-name "^1.1.4" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@^2.0.0, ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +mute-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== + +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.7: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + +node-gyp@^9.0.0: + version "9.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== + dependencies: + env-paths "^2.2.0" + exponential-backoff "^3.1.1" + 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" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-machine-id@1.1.12: + version "1.1.12" + resolved "https://registry.yarnpkg.com/node-machine-id/-/node-machine-id-1.1.12.tgz#37904eee1e59b320bb9c5d6c0a59f3b469cb6267" + integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== + +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +nopt@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== + dependencies: + abbrev "^1.0.0" + +normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" + integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== + dependencies: + hosted-git-info "^6.0.0" + is-core-module "^2.8.1" + semver "^7.3.5" + validate-npm-package-license "^3.0.4" + +normalize-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-bundled@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== + dependencies: + npm-normalize-package-bin "^3.0.0" + +npm-install-checks@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-normalize-package-bin@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== + +npm-package-arg@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.1.tgz#00ebf16ac395c63318e67ce66780a06db6df1b04" + integrity sha512-CsP95FhWQDwNqiYS+Q0mZ7FAEDytDZAkNxQqea6IaAFJTAY9Lhhqyl0irU/6PMc7BGfUmnsbHcqxJD7XuVM/rg== + dependencies: + hosted-git-info "^3.0.6" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + +npm-package-arg@^10.0.0, npm-package-arg@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" + integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== + dependencies: + hosted-git-info "^6.0.0" + proc-log "^3.0.0" + semver "^7.3.5" + validate-npm-package-name "^5.0.0" + +npm-packlist@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.1.tgz#79bcaf22a26b6c30aa4dd66b976d69cc286800e0" + integrity sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw== + dependencies: + glob "^8.0.1" + ignore-walk "^5.0.1" + npm-bundled "^1.1.2" + npm-normalize-package-bin "^1.0.1" + +npm-packlist@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32" + integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q== + dependencies: + ignore-walk "^6.0.0" + +npm-pick-manifest@^8.0.0: + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== + dependencies: + 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@^14.0.0, npm-registry-fetch@^14.0.3, npm-registry-fetch@^14.0.5: + version "14.0.5" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d" + integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== + dependencies: + 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" + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^6.0.0, npmlog@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +nx@17.2.0, "nx@>=17.1.2 < 18": + version "17.2.0" + resolved "https://registry.yarnpkg.com/nx/-/nx-17.2.0.tgz#286fbfb77c2cedfafbaf81a6975f612ed5662485" + integrity sha512-Nig9IiSoZ4DtxzVKZU1rKPW8hvJ2FcAniUCVXXMfI39lGf02b97L4NOh2MifOCtbPoZv6NmSmwBVqOylDRajvg== + dependencies: + "@nrwl/tao" "17.2.0" + "@yarnpkg/lockfile" "^1.1.0" + "@yarnpkg/parsers" "3.0.0-rc.46" + "@zkochan/js-yaml" "0.0.6" + axios "^1.5.1" + chalk "^4.1.0" + cli-cursor "3.1.0" + cli-spinners "2.6.1" + cliui "^8.0.1" + dotenv "~16.3.1" + dotenv-expand "~10.0.0" + enquirer "~2.3.6" + figures "3.2.0" + flat "^5.0.2" + fs-extra "^11.1.0" + glob "7.1.4" + ignore "^5.0.4" + jest-diff "^29.4.1" + js-yaml "4.1.0" + jsonc-parser "3.2.0" + lines-and-columns "~2.0.3" + minimatch "3.0.5" + node-machine-id "1.1.12" + npm-run-path "^4.0.1" + open "^8.4.0" + semver "7.5.3" + string-width "^4.2.3" + strong-log-transformer "^2.1.0" + tar-stream "~2.2.0" + tmp "~0.2.1" + tsconfig-paths "^4.1.2" + tslib "^2.3.0" + yargs "^17.6.2" + yargs-parser "21.1.1" + optionalDependencies: + "@nx/nx-darwin-arm64" "17.2.0" + "@nx/nx-darwin-x64" "17.2.0" + "@nx/nx-freebsd-x64" "17.2.0" + "@nx/nx-linux-arm-gnueabihf" "17.2.0" + "@nx/nx-linux-arm64-gnu" "17.2.0" + "@nx/nx-linux-arm64-musl" "17.2.0" + "@nx/nx-linux-x64-gnu" "17.2.0" + "@nx/nx-linux-x64-musl" "17.2.0" + "@nx/nx-win32-arm64-msvc" "17.2.0" + "@nx/nx-win32-x64-msvc" "17.2.0" + +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +once@^1.3.0, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.4.0: + version "8.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.2.tgz#5b5ffe2a8f793dcd2aad73e550cb87b59cb084f9" + integrity sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2, p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg== + dependencies: + p-limit "^1.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map-series@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map-series/-/p-map-series-2.1.0.tgz#7560d4c452d9da0c07e692fdbfe6e2c81a2a91f2" + integrity sha512-RpYIIK1zXSNEOdwxcfe7FdvGcs7+y5n8rifMhMNWvaxRNMPINJHF5GDeuVxWqnfrcHPSCnp7Oo5yNXHId9Av2Q== + +p-map@4.0.0, p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-pipe@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" + integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== + +p-queue@6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-reduce@2.1.0, p-reduce@^2.0.0, p-reduce@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-2.1.0.tgz#09408da49507c6c274faa31f28df334bc712b64a" + integrity sha512-2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw== + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww== + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +p-waterfall@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-waterfall/-/p-waterfall-2.1.1.tgz#63153a774f472ccdc4eb281cdb2967fcf158b2ee" + integrity sha512-RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw== + dependencies: + p-reduce "^2.0.0" + +pacote@^15.2.0: + version "15.2.0" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" + integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== + dependencies: + "@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" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0, parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + +parse5@^7.0.0, parse5@^7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== + dependencies: + entities "^4.4.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-scurry@^1.10.1, path-scurry@^1.6.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== + dependencies: + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pirates@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +postcss-selector-parser@~6.0.13: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-value-parser@~4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@~8.4.31: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +prettier-plugin-apex@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/prettier-plugin-apex/-/prettier-plugin-apex-2.0.1.tgz#35bb37fbf7d779f8a83e25ecd02e133a16cd903a" + integrity sha512-S64zate3iXPKiBKHf27YRapIAPPd1wQ/u5IOcWwSHNgoJv15I14HhoUB/WOKXtxFb0ZH5MO1nF8gRGWXLajwlA== + dependencies: + jest-docblock "^29.0.0" + wait-on "^7.0.0" + +prettier@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== + +pretty-format@^29.0.0, pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +proc-log@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +promzard@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.0.tgz#3246f8e6c9895a77c0549cefb65828ac0f6c006b" + integrity sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig== + dependencies: + read "^2.0.0" + +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +psl@^1.1.33: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + +pure-rand@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" + integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +read-cmd-shim@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== + +read-package-json-fast@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== + dependencies: + json-parse-even-better-errors "^3.0.0" + npm-normalize-package-bin "^3.0.0" + +read-package-json@6.0.4, read-package-json@^6.0.0: + version "6.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" + integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== + dependencies: + 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" + +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw== + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" + integrity sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA== + dependencies: + load-json-file "^4.0.0" + normalize-package-data "^2.3.2" + path-type "^3.0.0" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +read@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/read/-/read-2.1.0.tgz#69409372c54fe3381092bc363a00650b6ac37218" + integrity sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ== + dependencies: + mute-stream "~1.0.0" + +readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + 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" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +regexp-to-ast@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz#56c73856bee5e1fef7f73a00f1473452ab712a24" + integrity sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw== + +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@5.0.0, resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve.exports@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + +resolve@^1.10.0, resolve@^1.20.0, resolve@^1.22.4, resolve@~1.22.6: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rimraf@^4.4.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.1.tgz#bd33364f67021c5b79e93d7f4fa0568c7c21b755" + integrity sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og== + dependencies: + glob "^9.2.0" + +run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.5, rxjs@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +saxes@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5" + integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== + dependencies: + xmlchars "^2.2.0" + +"semver@2 || 3 || 4 || 5", semver@^5.6.0: + version "5.7.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== + +semver@7.5.3: + version "7.5.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" + integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== + dependencies: + lru-cache "^6.0.0" + +semver@^6.3.0, semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.0.0, semver@^7.1.1, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: + version "7.5.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== + dependencies: + lru-cache "^6.0.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@3.0.7, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +sigstore@^1.3.0, sigstore@^1.4.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + "@sigstore/sign" "^1.0.0" + "@sigstore/tuf" "^1.0.3" + make-fetch-happen "^11.0.1" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@3.0.0, slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg== + dependencies: + is-plain-obj "^1.0.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +spdx-correct@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== + +split2@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + +split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssri@^10.0.0, ssri@^10.0.1: + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + dependencies: + minipass "^7.0.3" + +ssri@^9.0.0, ssri@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + +stack-utils@^2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== + dependencies: + escape-string-regexp "^2.0.0" + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1, string-width@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + +string.prototype.matchall@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^7.0.1: + version "7.1.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + dependencies: + ansi-regex "^6.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strong-log-transformer@2.1.0, strong-log-transformer@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/strong-log-transformer/-/strong-log-transformer-2.1.0.tgz#0f5ed78d325e0421ac6f90f7f10e691d6ae3ae10" + integrity sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA== + dependencies: + duplexer "^0.1.1" + minimist "^1.2.0" + through "^2.3.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-tree@^3.2.4: + version "3.2.4" + resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" + integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== + +tar-stream@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + 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" + +tar@6.1.11: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +tar@^6.1.11, tar@^6.1.2: + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + dependencies: + 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" + +temp-dir@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-1.0.0.tgz#0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d" + integrity sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ== + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +text-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through2@^2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@2, "through@>=2.2.7 <3", through@^2.3.4, through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmp@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tough-cookie@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" + integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + dependencies: + psl "^1.1.33" + punycode "^2.1.1" + universalify "^0.2.0" + url-parse "^1.5.3" + +tr46@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" + integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== + dependencies: + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + +tsconfig-paths@^3.14.2: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tsconfig-paths@^4.1.2: + version "4.2.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz#ef78e19039133446d244beac0fd6a1632e2d107c" + integrity sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg== + dependencies: + json5 "^2.2.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0, tslib@^2.3.0, tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + +tsutils@^3.21.0: + version "3.21.0" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== + dependencies: + tslib "^1.8.1" + +tuf-js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" + integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== + dependencies: + "@tufjs/models" "1.0.4" + debug "^4.3.4" + make-fetch-happen "^11.1.1" + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.4.1.tgz#8bdf77743385d8a4f13ba95f610f5ccd68c728f8" + integrity sha512-IwzA/LSfD2vC1/YDYMv/zHP4rDF1usCwllsDpbolT3D4fUepIO7f9K70jjmUewU/LmGUKJcwcVtDCpnKk4BPMw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +"typescript@>=3 < 6": + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== + +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + +unique-filename@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== + dependencies: + unique-slug "^3.0.0" + +unique-filename@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== + dependencies: + unique-slug "^4.0.0" + +unique-slug@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== + dependencies: + imurmurhash "^0.1.4" + +unique-slug@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== + +universalify@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" + integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== + +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + +upath@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/upath/-/upath-2.0.1.tgz#50c73dea68d6f6b990f51d279ce6081665d61a8b" + integrity sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w== + +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@^1.5.3: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + +v8-to-istanbul@^9.0.1: + version "9.2.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz#2ed7644a245cddd83d4e087b9b33b3e62dfd10ad" + integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^2.0.0" + +validate-npm-package-license@3.0.4, validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@5.0.0, validate-npm-package-name@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== + dependencies: + builtins "^5.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + dependencies: + builtins "^1.0.3" + +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== + dependencies: + xml-name-validator "^4.0.0" + +wait-on@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.2.0.tgz#d76b20ed3fc1e2bebc051fae5c1ff93be7892928" + integrity sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ== + dependencies: + axios "^1.6.1" + joi "^17.11.0" + lodash "^4.17.21" + minimist "^1.2.8" + rxjs "^7.8.1" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +wcwidth@^1.0.0, wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +webidl-conversions@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" + integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== + +whatwg-encoding@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53" + integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg== + dependencies: + iconv-lite "0.6.3" + +whatwg-mimetype@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7" + integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q== + +whatwg-url@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" + integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== + dependencies: + tr46 "^3.0.0" + webidl-conversions "^7.0.0" + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +which@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" + isexe "^2.0.0" + +wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -490,7 +7338,147 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -yaml@^2.1.3: - version "2.2.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" - integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== +wrap-ansi@^6.0.1: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== + dependencies: + ansi-styles "^6.1.0" + string-width "^5.0.1" + strip-ansi "^7.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^4.0.1" + +write-file-atomic@^2.4.2: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +write-json-file@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/write-json-file/-/write-json-file-3.2.0.tgz#65bbdc9ecd8a1458e15952770ccbadfcff5fe62a" + integrity sha512-3xZqT7Byc2uORAatYiP3DHUUAVEkNOswEWNs9H5KXiicRTvzYzYqKjYc4G7p+8pltvAw641lVByKVtMpf+4sYQ== + dependencies: + detect-indent "^5.0.0" + graceful-fs "^4.1.15" + make-dir "^2.1.0" + pify "^4.0.1" + sort-keys "^2.0.0" + write-file-atomic "^2.4.2" + +write-pkg@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/write-pkg/-/write-pkg-4.0.0.tgz#675cc04ef6c11faacbbc7771b24c0abbf2a20039" + integrity sha512-v2UQ+50TNf2rNHJ8NyWttfm/EJUBWMJcx6ZTYZr6Qp52uuegWw/lBkCtCbnYZEmPRNL61m+u67dAmGxo+HTULA== + dependencies: + sort-keys "^2.0.0" + type-fest "^0.4.1" + write-json-file "^3.2.0" + +ws@^8.11.0: + version "8.15.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.15.0.tgz#db080a279260c5f532fc668d461b8346efdfcf86" + integrity sha512-H/Z3H55mrcrgjFwI+5jKavgXvwQLtfPCUEp6pi35VhoB0pfcHnSoyuTzkBEZpzq49g1193CUEwIvmsjcotenYw== + +xml-name-validator@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" + integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw== + +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@21.1.1, yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs-parser@^20.2.2, yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@17.7.2, yargs@^17.3.1, yargs@^17.6.2, yargs@~17.7.2: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +yargs@^16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 406f6ed3db0b0d0af9420a4b1f4bbf7fa0e9ce73 Mon Sep 17 00:00:00 2001 From: Meisam Seyed Aliroteh Date: Tue, 12 Dec 2023 06:38:39 -0800 Subject: [PATCH 2/3] Update sourceApiVersion to v59.0 --- README.md | 2 +- projects/DriverLicenseParser/sfdx-project.json | 2 +- projects/FindNearby/sfdx-project.json | 2 +- projects/FollowUpAppointment/sfdx-project.json | 2 +- projects/LocalPreview/HelloWorld/sfdx-project.json | 2 +- projects/MobileDashboard/sfdx-project.json | 2 +- projects/NameAndSignatureCapture/sfdx-project.json | 2 +- projects/RescheduleAppointments/sfdx-project.json | 2 +- projects/UploadAndAnnotateImages/sfdx-project.json | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0d1deca..28da4d7 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Welcome to the Mobile samples repo. You can browse the samples under the [projec 1. Copy your SFDX project into `projects` folder in your fork. 1. Modify your project and align it with the requirements of this monorepo (follow the example of any of the existing projects): 1. Update the `name` and `description` in your `package.json` to something meaningful. - 1. Ensure your `dependencies` and `devDependencies` are not too old. + 1. Ensure that your `dependencies` and `devDependencies` are not too old. They should be same as other projects in this repo or newer. 1. `DO NOT` include a `package-lock.json` file. We use Yarn in this repo. After copying over your project, delete its `package-lock.json` and `node_modules` and then run `yarn install` at the root of the repo. This will update the existing `yarn.lock` file in the repo and generate a new `node_modules` for your project. 1. Ensure that running `yarn precommit` at the root of the repo passes all of the checks and address any failures. 1. Ensure that you've set up GPG signing to sign your commits. diff --git a/projects/DriverLicenseParser/sfdx-project.json b/projects/DriverLicenseParser/sfdx-project.json index 6f7dc5e..4f655f0 100644 --- a/projects/DriverLicenseParser/sfdx-project.json +++ b/projects/DriverLicenseParser/sfdx-project.json @@ -8,5 +8,5 @@ "name": "DriverLicenseParser", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "57.0" + "sourceApiVersion": "59.0" } diff --git a/projects/FindNearby/sfdx-project.json b/projects/FindNearby/sfdx-project.json index aa31486..43cdeb8 100644 --- a/projects/FindNearby/sfdx-project.json +++ b/projects/FindNearby/sfdx-project.json @@ -8,5 +8,5 @@ "name": "FindNearby", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com/", - "sourceApiVersion": "55.0" + "sourceApiVersion": "59.0" } diff --git a/projects/FollowUpAppointment/sfdx-project.json b/projects/FollowUpAppointment/sfdx-project.json index 7953c6a..5ea20f8 100644 --- a/projects/FollowUpAppointment/sfdx-project.json +++ b/projects/FollowUpAppointment/sfdx-project.json @@ -17,7 +17,7 @@ "name": "Follow-Up Appointment for Field Service Mobile", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "55.0", + "sourceApiVersion": "59.0", "packageAliases": { "Follow-Up Appointment for Field Service Mobile": "0HoB00000008PtFKAU", "FSL": "04t3y000001drQt", diff --git a/projects/LocalPreview/HelloWorld/sfdx-project.json b/projects/LocalPreview/HelloWorld/sfdx-project.json index e52b8ee..1145046 100644 --- a/projects/LocalPreview/HelloWorld/sfdx-project.json +++ b/projects/LocalPreview/HelloWorld/sfdx-project.json @@ -8,5 +8,5 @@ "name": "HelloWorld", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "55.0" + "sourceApiVersion": "59.0" } diff --git a/projects/MobileDashboard/sfdx-project.json b/projects/MobileDashboard/sfdx-project.json index 3eb319f..fb8746a 100644 --- a/projects/MobileDashboard/sfdx-project.json +++ b/projects/MobileDashboard/sfdx-project.json @@ -12,7 +12,7 @@ "name": "Mobile Dashboard for Field Service Mobile", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com/", - "sourceApiVersion": "55.0", + "sourceApiVersion": "59.0", "packageAliases": { "Mobile Dashboard for Field Service Mobile": "0HoB00000008PtKKAU", "Mobile Dashboard for Field Service Mobile@1.0.0-2": "04tB0000000h4nQIAQ", diff --git a/projects/NameAndSignatureCapture/sfdx-project.json b/projects/NameAndSignatureCapture/sfdx-project.json index 520e373..3c961e3 100644 --- a/projects/NameAndSignatureCapture/sfdx-project.json +++ b/projects/NameAndSignatureCapture/sfdx-project.json @@ -8,5 +8,5 @@ "name": "NameAndSignatureCapture", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "57.0" + "sourceApiVersion": "59.0" } diff --git a/projects/RescheduleAppointments/sfdx-project.json b/projects/RescheduleAppointments/sfdx-project.json index f54a1bf..3e366fe 100644 --- a/projects/RescheduleAppointments/sfdx-project.json +++ b/projects/RescheduleAppointments/sfdx-project.json @@ -8,5 +8,5 @@ "name": "RescheduleAppointments", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "51.0" + "sourceApiVersion": "59.0" } diff --git a/projects/UploadAndAnnotateImages/sfdx-project.json b/projects/UploadAndAnnotateImages/sfdx-project.json index 102503c..1f04e40 100644 --- a/projects/UploadAndAnnotateImages/sfdx-project.json +++ b/projects/UploadAndAnnotateImages/sfdx-project.json @@ -8,5 +8,5 @@ "name": "UploadAndAnnotateImages", "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", - "sourceApiVersion": "57.0" + "sourceApiVersion": "59.0" } From fe012203a18822326578917bc1ed2d75fd46f84b Mon Sep 17 00:00:00 2001 From: Meisam Seyed Aliroteh Date: Tue, 12 Dec 2023 08:49:36 -0800 Subject: [PATCH 3/3] camel case component name in import --- .../__test__/mobileAppointmentBookingResourceAssignment.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js index 1a8cf5b..d064dd1 100644 --- a/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js +++ b/projects/RescheduleAppointments/force-app/main/default/lwc/mobileAppointmentBookingResourceAssignment/__test__/mobileAppointmentBookingResourceAssignment.test.js @@ -1,5 +1,5 @@ import { createElement } from "lwc"; -import MobileAppointmentBookingResourceAssignment from "c/MobileAppointmentBookingResourceAssignment"; +import MobileAppointmentBookingResourceAssignment from "c/mobileAppointmentBookingResourceAssignment"; describe("c-mobile-appointment-booking-resource-assignment", () => { afterEach(() => {

    OZ?M* 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 WfWwb|(8^O=RExwguXC`g&U8oxc&dw{Pmt(1p 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
    (>84&>to*VA@qA+X`e?jj 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%0Ah?%3!?l&BN1#CR4`+6s}Z^aJ!BhJ3%={oSG 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
    SF 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