From 7bbdba5c0b886e2789d2a603c4be627dfd16b60e Mon Sep 17 00:00:00 2001 From: Andy Bastian Date: Mon, 8 Aug 2022 11:01:00 +0000 Subject: [PATCH] feat: apply new layout overhaul --- angular.json | 20 +- cypress/integration/settings.spec.ts | 2 +- ios/App/App/Info.plist | 147 +- ios/App/App/capacitor.config.json | 3 + package-lock.json | 23063 +++++++++++++++- src/app/app-routing.module.ts | 10 +- src/app/app.component.html | 2 +- src/app/app.module.ts | 7 + src/app/modules/about/about-changelog.html | 8 +- src/app/modules/about/about-licenses.html | 12 +- .../modules/about/about-page/about-page.html | 8 +- src/app/modules/about/about.module.ts | 2 + .../detail/assessments-detail.html | 8 +- .../assessments/page/assessments-page.html | 8 +- .../calendar/add-event-review-modal.html | 2 +- src/app/modules/calendar/calendar.module.ts | 2 + src/app/modules/calendar/calendar.service.ts | 17 +- .../modules/catalog/catalog.component.html | 8 +- src/app/modules/catalog/catalog.component.ts | 9 +- src/app/modules/catalog/catalog.module.ts | 2 + .../dashboard/dashboard.component.html | 46 + .../dashboard/dashboard.component.scss | 224 + .../modules/dashboard/dashboard.component.ts | 107 + src/app/modules/dashboard/dashboard.module.ts | 73 + .../modules/dashboard/dashboard.provider.ts | 87 + .../edit-modal/edit-modal-type.enum.ts | 4 + .../edit-modal/edit-modal.component.html | 51 + .../edit-modal/edit-modal.component.scss | 3 + .../edit-modal/edit-modal.component.ts | 67 + .../dashboard/section/section.component.html | 10 + .../dashboard/section/section.component.scss | 55 + .../dashboard/section/section.component.ts | 59 + .../favorites-section.component.html | 31 + .../favorites-section.component.scss | 36 + .../favorites-section.component.ts | 145 + .../mensa-section-content.component.html | 17 + .../mensa-section-content.component.ts | 77 + .../mensa-section.component.html | 22 + .../mensa-section.component.scss | 0 .../mensa-section/mensa-section.component.ts | 148 + .../navigation-section/menu-item.interface.ts | 6 + .../navigation-section/menu-items.config.ts | 34 + .../navigation-section.component.html | 19 + .../navigation-section.component.scss | 21 + .../navigation-section.component.ts | 111 + .../news-section/news-section.component.html | 32 + .../news-section/news-section.component.scss | 48 + .../news-section/news-section.component.ts | 95 + .../search-section.component.html | 19 + .../search-section.component.scss | 24 + .../search-section.component.ts | 37 + .../chips/data/add-event-action-chip.scss | 9 +- .../chips/filter/chip-filter.component.html | 2 +- src/app/modules/data/data-icon.pipe.ts | 26 +- src/app/modules/data/data-routing.module.ts | 1 + .../detail/data-detail-content.component.ts | 7 + .../data/detail/data-detail-content.html | 19 +- .../data/detail/data-detail-content.scss | 18 + .../data/detail/data-detail.component.ts | 4 +- src/app/modules/data/detail/data-detail.html | 12 +- .../data/elements/title-card.component.html | 2 +- ...omponent.css => title-card.component.scss} | 19 + .../data/elements/title-card.component.ts | 2 +- src/app/modules/data/list/data-list-item.html | 5 +- src/app/modules/data/list/data-list-item.scss | 11 +- src/app/modules/data/list/data-list.scss | 5 +- .../data/list/food-data-list.component.ts | 5 + .../data/list/search-page.component.ts | 44 +- src/app/modules/data/list/search-page.html | 42 +- src/app/modules/data/list/search-page.scss | 37 + .../data/list/simple-data-list.component.ts | 2 +- .../data/types/article/article-list-item.html | 2 +- .../data/types/catalog/catalog-list-item.html | 12 +- .../date-series/date-series-list-item.html | 2 +- .../data/types/dish/dish-list-item.html | 4 +- .../data/types/event/event-list-item.html | 16 +- .../types/favorite/favorite-list-item.html | 6 +- .../types/message/message-detail-content.html | 7 +- .../types/message/message-detail-content.scss | 6 + .../data/types/message/message-list-item.html | 2 +- .../organization/organization-list-item.html | 4 +- .../data/types/person/person-list-item.html | 4 +- .../place/place-detail-content.component.ts | 2 + .../types/place/place-detail-content.html | 1 + .../data/types/place/place-list-item.html | 8 +- .../mensa/place-mensa-detail.component.ts | 18 +- .../place/special/mensa/place-mensa.html | 25 +- .../types/semester/semester-list-item.html | 4 +- .../data/types/video/video-list-item.html | 4 +- .../favorites/favorites-page.component.ts | 13 +- src/app/modules/favorites/favorites.module.ts | 2 + src/app/modules/feedback/feedback-page.html | 8 +- src/app/modules/feedback/feedback.module.ts | 2 + .../hebis-detail/hebis-detail-content.html | 2 +- .../hebis/hebis-detail/hebis-detail.html | 35 +- src/app/modules/hebis/hebis-routing.module.ts | 1 + .../hebis/list/hebis-search-page.component.ts | 10 +- .../modules/hebis/list/hebis-search-page.html | 31 +- .../modules/library/account/account.page.html | 14 +- .../account/checked-out/checked-out-page.html | 8 +- .../library/account/fines/fines-page.html | 8 +- .../holds-and-reservations-page.html | 8 +- .../library/account/profile/profile-page.html | 8 +- src/app/modules/library/library.module.ts | 2 + .../modules/map/item/map-item.component.html | 58 +- .../modules/map/item/map-item.component.scss | 59 +- .../modules/map/item/map-item.component.ts | 12 +- src/app/modules/map/map.module.ts | 2 + src/app/modules/map/map.provider.ts | 2 +- .../modules/map/page/map-page.component.ts | 35 +- src/app/modules/map/page/map-page.html | 34 +- src/app/modules/map/page/map-page.scss | 42 +- src/app/modules/map/page/modals/map-list.html | 2 +- .../modules/map/page/modals/map-single.html | 7 +- .../modules/map/page/modals/map-single.scss | 4 + .../map/widget/map-widget.component.ts | 11 + src/app/modules/map/widget/map-widget.html | 4 +- .../modules/menu/context/context-menu.html | 17 +- src/app/modules/menu/menu.module.ts | 4 + .../menu/navigation/navigation.component.ts | 8 + .../modules/menu/navigation/navigation.html | 31 +- .../modules/menu/navigation/navigation.scss | 39 +- .../modules/menu/tabs/tabs-routing.module.ts | 16 + src/app/modules/menu/tabs/tabs.component.scss | 39 + src/app/modules/menu/tabs/tabs.component.ts | 63 + src/app/modules/menu/tabs/tabs.module.ts | 15 + src/app/modules/menu/tabs/tabs.spec.ts | 101 + src/app/modules/menu/tabs/tabs.template.html | 36 + src/app/modules/news/item/news-item.html | 2 +- src/app/modules/news/news.module.ts | 2 + src/app/modules/news/page/news-item.html | 6 +- src/app/modules/news/page/news-page.html | 8 +- .../profile/page/profile-page.component.html | 203 +- .../profile/page/profile-page.component.scss | 205 +- .../page/profile-page.component.spec.ts | 10 + .../profile/page/profile-page.component.ts | 90 +- src/app/modules/profile/profile.module.ts | 4 + .../schedule/page/calendar-view.component.ts | 186 +- .../modules/schedule/page/calendar-view.html | 162 +- .../modules/schedule/page/calendar-view.scss | 68 - .../page/components/calendar-component.html | 0 .../page/components/calendar-component.scss | 123 + .../page/components/calendar.component.ts | 264 + .../page/grid/infinite-swiper.component.ts | 8 + .../schedule/page/grid/infinite-swiper.scss | 4 + .../schedule/page/grid/range-overlap.ts | 9 +- .../page/grid/schedule-card.component.ts | 36 +- .../schedule/page/grid/schedule-card.html | 33 +- .../schedule/page/grid/schedule-card.scss | 71 + .../schedule/page/grid/schedule-cursor.html | 2 +- .../schedule/page/grid/schedule-cursor.scss | 6 +- .../page/grid/schedule-day.component.ts | 34 +- .../schedule/page/grid/schedule-day.html | 7 +- .../schedule/page/grid/schedule-day.scss | 94 +- .../page/modal/modal-event-creator.html | 4 +- .../page/modal/modal-event-creator.scss | 7 + .../schedule/page/schedule-page.component.ts | 62 +- .../modules/schedule/page/schedule-page.html | 100 +- .../modules/schedule/page/schedule-page.scss | 43 + .../page/schedule-single-events.component.ts | 5 +- .../schedule/page/schedule-single-events.html | 13 +- .../schedule/page/schedule-single-events.scss | 44 +- .../page/schedule-single-events.spec.ts | 4 + .../schedule/page/schedule-view.component.ts | 130 +- .../modules/schedule/page/schedule-view.html | 113 +- .../modules/schedule/page/schedule-view.scss | 16 +- .../modules/schedule/page/schema/schema.ts | 2 + src/app/modules/schedule/schedule.module.ts | 2 + .../modules/settings/item/settings-item.html | 2 +- .../settings/page/calendar-sync-settings.html | 4 +- .../modules/settings/page/settings-page.html | 10 +- src/app/modules/settings/settings.module.ts | 2 + src/app/translation/i18n.spec.ts | 4 + src/app/util/daytime-key.pipe.ts | 45 + src/app/util/ion-back-button.directive.ts | 59 + src/app/util/next-date-in-list.pipe.ts | 41 + src/app/util/util.module.ts | 9 + src/assets/i18n/de.json | 81 +- src/assets/i18n/en.json | 81 +- src/assets/imgs/profile-card-head.jpeg | Bin 0 -> 103708 bytes src/assets/imgs/uni-frankfurt/goethe.jpeg | Bin 0 -> 103708 bytes src/assets/imgs/uni-frankfurt/logo.svg | 58 + src/assets/tabler-icons/arrow-loop-left.svg | 2 +- src/assets/tabler-icons/arrow-loop-right.svg | 2 +- src/assets/tabler-icons/brand-vk.svg | 4 +- src/assets/tabler-icons/bulb-off.svg | 6 +- src/assets/tabler-icons/cardboards.svg | 6 +- src/assets/tabler-icons/cloud.svg | 2 +- src/assets/tabler-icons/currency-bath.svg | 10 + .../tabler-icons/device-mobile-rotated.svg | 8 +- .../tabler-icons/device-mobile-vibration.svg | 6 +- src/assets/tabler-icons/device-mobile.svg | 4 +- src/assets/tabler-icons/directions.svg | 11 +- src/assets/tabler-icons/edit.svg | 6 +- src/assets/tabler-icons/eraser.svg | 4 +- src/assets/tabler-icons/file-download.svg | 4 +- src/assets/tabler-icons/file-upload.svg | 4 +- src/assets/tabler-icons/hammer.svg | 4 +- src/assets/tabler-icons/hanger.svg | 2 +- src/assets/tabler-icons/heart-broken.svg | 4 +- src/assets/tabler-icons/heart.svg | 2 +- src/assets/tabler-icons/letters-case.svg | 9 + src/assets/tabler-icons/miliraty-award.svg | 8 + src/assets/tabler-icons/plug.svg | 8 +- src/assets/tabler-icons/smart-home.svg | 1 + src/assets/tabler-icons/test-pipe.svg | 7 +- src/assets/tabler-icons/vector-beizer-2.svg | 12 + src/global.scss | 2 +- src/index.html | 2 +- src/theme/_fonts.scss | 37 + src/theme/common/_helper.scss | 11 + src/theme/common/_ion-button.scss | 42 + src/theme/common/_ion-header.scss | 5 + src/theme/common/_ion-img.scss | 5 + src/theme/common/_ion-input.scss | 40 + src/theme/common/_ion-modal.scss | 12 + src/theme/common/_ion-popover.scss | 4 + src/theme/common/_ion-refresher.scss | 13 + src/theme/common/_ion-toolbar.scss | 53 + src/theme/common/_swiper.scss | 38 + src/theme/common/_typo.scss | 14 + src/theme/common/_typography.scss | 3 + src/theme/components/_card.scss | 21 + src/theme/components/_section.scss | 12 + src/theme/configs/goethe-uni-frankfurt.scss | 137 + src/theme/util/_mixins.scss | 58 + src/theme/variables.scss | 11 + tsconfig.app.json | 5 +- 228 files changed, 28387 insertions(+), 1092 deletions(-) create mode 100644 src/app/modules/dashboard/dashboard.component.html create mode 100644 src/app/modules/dashboard/dashboard.component.scss create mode 100644 src/app/modules/dashboard/dashboard.component.ts create mode 100644 src/app/modules/dashboard/dashboard.module.ts create mode 100644 src/app/modules/dashboard/dashboard.provider.ts create mode 100644 src/app/modules/dashboard/edit-modal/edit-modal-type.enum.ts create mode 100644 src/app/modules/dashboard/edit-modal/edit-modal.component.html create mode 100644 src/app/modules/dashboard/edit-modal/edit-modal.component.scss create mode 100644 src/app/modules/dashboard/edit-modal/edit-modal.component.ts create mode 100644 src/app/modules/dashboard/section/section.component.html create mode 100644 src/app/modules/dashboard/section/section.component.scss create mode 100644 src/app/modules/dashboard/section/section.component.ts create mode 100644 src/app/modules/dashboard/sections/favorites-section/favorites-section.component.html create mode 100644 src/app/modules/dashboard/sections/favorites-section/favorites-section.component.scss create mode 100644 src/app/modules/dashboard/sections/favorites-section/favorites-section.component.ts create mode 100644 src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.html create mode 100644 src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.ts create mode 100644 src/app/modules/dashboard/sections/mensa-section/mensa-section.component.html create mode 100644 src/app/modules/dashboard/sections/mensa-section/mensa-section.component.scss create mode 100644 src/app/modules/dashboard/sections/mensa-section/mensa-section.component.ts create mode 100644 src/app/modules/dashboard/sections/navigation-section/menu-item.interface.ts create mode 100644 src/app/modules/dashboard/sections/navigation-section/menu-items.config.ts create mode 100644 src/app/modules/dashboard/sections/navigation-section/navigation-section.component.html create mode 100644 src/app/modules/dashboard/sections/navigation-section/navigation-section.component.scss create mode 100644 src/app/modules/dashboard/sections/navigation-section/navigation-section.component.ts create mode 100644 src/app/modules/dashboard/sections/news-section/news-section.component.html create mode 100644 src/app/modules/dashboard/sections/news-section/news-section.component.scss create mode 100644 src/app/modules/dashboard/sections/news-section/news-section.component.ts create mode 100644 src/app/modules/dashboard/sections/search-section/search-section.component.html create mode 100644 src/app/modules/dashboard/sections/search-section/search-section.component.scss create mode 100644 src/app/modules/dashboard/sections/search-section/search-section.component.ts rename src/app/modules/data/elements/{title-card.component.css => title-card.component.scss} (66%) create mode 100644 src/app/modules/menu/tabs/tabs-routing.module.ts create mode 100644 src/app/modules/menu/tabs/tabs.component.scss create mode 100644 src/app/modules/menu/tabs/tabs.component.ts create mode 100644 src/app/modules/menu/tabs/tabs.module.ts create mode 100644 src/app/modules/menu/tabs/tabs.spec.ts create mode 100644 src/app/modules/menu/tabs/tabs.template.html create mode 100644 src/app/modules/schedule/page/components/calendar-component.html create mode 100644 src/app/modules/schedule/page/components/calendar-component.scss create mode 100644 src/app/modules/schedule/page/components/calendar.component.ts create mode 100644 src/app/util/daytime-key.pipe.ts create mode 100644 src/app/util/ion-back-button.directive.ts create mode 100644 src/app/util/next-date-in-list.pipe.ts create mode 100644 src/assets/imgs/profile-card-head.jpeg create mode 100644 src/assets/imgs/uni-frankfurt/goethe.jpeg create mode 100644 src/assets/imgs/uni-frankfurt/logo.svg create mode 100644 src/assets/tabler-icons/currency-bath.svg create mode 100644 src/assets/tabler-icons/letters-case.svg create mode 100644 src/assets/tabler-icons/miliraty-award.svg create mode 100644 src/assets/tabler-icons/vector-beizer-2.svg create mode 100644 src/theme/_fonts.scss create mode 100644 src/theme/common/_helper.scss create mode 100644 src/theme/common/_ion-button.scss create mode 100644 src/theme/common/_ion-header.scss create mode 100644 src/theme/common/_ion-img.scss create mode 100644 src/theme/common/_ion-input.scss create mode 100644 src/theme/common/_ion-modal.scss create mode 100644 src/theme/common/_ion-popover.scss create mode 100644 src/theme/common/_ion-refresher.scss create mode 100644 src/theme/common/_ion-toolbar.scss create mode 100644 src/theme/common/_swiper.scss create mode 100644 src/theme/common/_typo.scss create mode 100644 src/theme/common/_typography.scss create mode 100644 src/theme/components/_card.scss create mode 100644 src/theme/components/_section.scss create mode 100644 src/theme/configs/goethe-uni-frankfurt.scss create mode 100644 src/theme/util/_mixins.scss diff --git a/angular.json b/angular.json index 402e498f..940bf999 100644 --- a/angular.json +++ b/angular.json @@ -39,6 +39,16 @@ "glob": "**/*", "input": "./node_modules/leaflet/dist/images", "output": "assets/" + }, + { + "glob": "**/*.svg", + "input": "src/assets/custom-ion-icons", + "output": "./svg" + }, + { + "glob": "**/*.svg", + "input": "src/assets/tabler-icons", + "output": "./svg" } ], "styles": [ @@ -112,6 +122,9 @@ "ci": { "progress": false, "browserTarget": "app:build" + }, + "fake": { + "browserTarget": "app:build:fake" } }, "defaultConfiguration": "development" @@ -149,12 +162,7 @@ }, { "glob": "**/*.svg", - "input": "node_modules/ionicons/dist/ionicons/svg", - "output": "./svg" - }, - { - "glob": "**/*.svg", - "input": "src/assets/custom-ionicons", + "input": "src/assets/tabler-icons", "output": "./svg" } ] diff --git a/cypress/integration/settings.spec.ts b/cypress/integration/settings.spec.ts index 5aa343b2..69db06ff 100644 --- a/cypress/integration/settings.spec.ts +++ b/cypress/integration/settings.spec.ts @@ -14,7 +14,7 @@ */ describe('Settings Page', () => { it('should have a proper title', () => { - cy.visit('/settings'); + cy.visit('/app/settings'); cy.get('ion-title').contains('Einstellungen'); }); diff --git a/ios/App/App/Info.plist b/ios/App/App/Info.plist index b0a56bc9..166faf59 100644 --- a/ios/App/App/Info.plist +++ b/ios/App/App/Info.plist @@ -1,76 +1,75 @@ - - + - - BGTaskSchedulerPermittedIdentifiers - - com.transistorsoft.fetch - - NSCalendarsUsageDescription - Calendar access is needed to sync your schedule with the device - NSLocationWhenInUseUsageDescription - Location services are used to enable all map and search features - CFBundleDevelopmentRegion - en - CFBundleDisplayName - StApps - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 2.0.0 - CFBundleURLTypes - - - CFBundleTypeRole - Editor - CFBundleURLName - de.anyschool.app - CFBundleURLSchemes - - de.anyschool.app - - - - - CFBundleVersion - 1 - LSRequiresIPhoneOS - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - + + BGTaskSchedulerPermittedIdentifiers + + com.transistorsoft.fetch + + NSCalendarsUsageDescription + Calendar access is needed to sync your schedule with the device + NSLocationWhenInUseUsageDescription + Location services are used to enable all map and search features + CFBundleDevelopmentRegion + en + CFBundleDisplayName + StApps + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 2.0.0 + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLName + de.anyschool.app + CFBundleURLSchemes + + de.anyschool.app + + + + + CFBundleVersion + 1 + LSRequiresIPhoneOS + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + diff --git a/ios/App/App/capacitor.config.json b/ios/App/App/capacitor.config.json index f11ddc10..5eda93a4 100644 --- a/ios/App/App/capacitor.config.json +++ b/ios/App/App/capacitor.config.json @@ -26,5 +26,8 @@ "useDialog": false }, "LocalNotifications": {} + }, + "server": { + "url": "http://localhost:8100" } } diff --git a/package-lock.json b/package-lock.json index 2ab2a7ad..26e8994f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,22876 @@ { "name": "@openstapps/app", "version": "2.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "@openstapps/app", + "version": "2.0.0", + "hasInstallScript": true, + "license": "GPL-3.0-only", + "dependencies": { + "@angular/animations": "13.3.10", + "@angular/cdk": "13.3.8", + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/forms": "13.3.10", + "@angular/platform-browser": "13.3.10", + "@angular/platform-browser-dynamic": "13.3.10", + "@angular/router": "13.3.10", + "@asymmetrik/ngx-leaflet": "13.0.2", + "@asymmetrik/ngx-leaflet-markercluster": "13.0.1", + "@awesome-cordova-plugins/calendar": "5.43.0", + "@awesome-cordova-plugins/core": "5.43.0", + "@capacitor-community/http": "1.4.1", + "@capacitor/app": "1.1.1", + "@capacitor/browser": "1.0.7", + "@capacitor/core": "3.5.1", + "@capacitor/device": "1.1.2", + "@capacitor/dialog": "1.0.7", + "@capacitor/filesystem": "1.1.0", + "@capacitor/geolocation": "1.3.1", + "@capacitor/haptics": "1.1.4", + "@capacitor/keyboard": "1.2.2", + "@capacitor/local-notifications": "1.1.0", + "@capacitor/network": "1.0.7", + "@capacitor/share": "1.1.2", + "@capacitor/splash-screen": "1.2.2", + "@capacitor/status-bar": "1.0.8", + "@capacitor/storage": "1.2.5", + "@ionic-native/core": "5.36.0", + "@ionic-native/file-opener": "5.36.0", + "@ionic/angular": "6.1.7", + "@ionic/storage-angular": "3.0.6", + "@ngx-translate/core": "14.0.0", + "@ngx-translate/http-loader": "7.0.0", + "@openstapps/api": "0.41.1", + "@openstapps/configuration": "0.29.1", + "@openstapps/core": "0.67.0", + "@transistorsoft/capacitor-background-fetch": "0.0.6", + "capacitor-secure-storage-plugin": "0.7.0", + "cordova-plugin-calendar": "5.1.6", + "cordova-plugin-file-opener2": "3.0.5", + "deepmerge": "4.2.2", + "form-data": "4.0.0", + "geojson": "0.5.0", + "ionic-appauth": "0.8.5", + "jsonpath-plus": "6.0.1", + "leaflet": "1.8.0", + "leaflet.markercluster": "1.5.3", + "moment": "2.29.3", + "ngx-logger": "4.3.3", + "ngx-markdown": "13.1.0", + "ngx-moment": "6.0.2", + "opening_hours": "3.8.0", + "rxjs": "6.6.7", + "swiper": "8.1.6", + "tslib": "2.4.0", + "zone.js": "0.11.5" + }, + "devDependencies": { + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/build-angular": "13.3.7", + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "@angular-eslint/builder": "13.2.1", + "@angular-eslint/eslint-plugin": "13.2.1", + "@angular-eslint/eslint-plugin-template": "13.2.1", + "@angular-eslint/schematics": "13.2.1", + "@angular-eslint/template-parser": "13.2.1", + "@angular/cli": "13.3.7", + "@angular/compiler": "13.3.10", + "@angular/compiler-cli": "13.3.10", + "@angular/language-service": "13.3.10", + "@capacitor/android": "3.5.1", + "@capacitor/cli": "3.5.1", + "@capacitor/ios": "3.5.1", + "@compodoc/compodoc": "1.1.19", + "@cypress/schematic": "1.7.0", + "@ionic/angular-toolkit": "6.1.0", + "@ionic/cli": "6.19.1", + "@types/jasmine": "4.0.3", + "@types/jasminewd2": "2.0.10", + "@types/jsonpath": "0.2.0", + "@types/leaflet": "1.7.10", + "@types/leaflet.markercluster": "1.5.0", + "@types/node": "14.18.18", + "@typescript-eslint/eslint-plugin": "5.26.0", + "@typescript-eslint/parser": "5.26.0", + "conventional-changelog-cli": "2.2.2", + "cordova-res": "0.15.4", + "cypress": "10.0.3", + "eslint": "8.16.0", + "eslint-config-prettier": "8.5.0", + "eslint-plugin-jsdoc": "39.3.2", + "eslint-plugin-prettier": "4.0.0", + "eslint-plugin-unicorn": "42.0.0", + "is-docker": "2.2.1", + "jasmine-core": "4.1.1", + "jasmine-spec-reporter": "7.0.0", + "jetifier": "2.0.0", + "karma": "6.3.20", + "karma-chrome-launcher": "3.1.1", + "karma-coverage-istanbul-reporter": "3.0.3", + "karma-jasmine": "5.0.1", + "karma-jasmine-html-reporter": "2.0.0", + "karma-mocha-reporter": "2.2.5", + "license-checker": "25.0.1", + "prettier": "2.6.2", + "protractor": "7.0.0", + "surge": "0.23.1", + "ts-node": "10.8.0", + "typescript": "4.4.4", + "webpack-bundle-analyzer": "4.5.0" + } + }, + "node_modules/@aduh95/viz.js": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.6.0.tgz", + "integrity": "sha512-ywd9QYyLByJvkdxwIB4ve4ikF8T2AUXSIn0EBYSlbv1TxnAshgPXiE4JWk6d0LJHWDsxR7Piw7TwBcQ/YrgeCA==", + "dev": true + }, + "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/@angular-devkit/architect": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1303.7.tgz", + "integrity": "sha512-xr35v7AuJygRdiaFhgoBSLN2ZMUri8x8Qx9jkmCkD3WLKz33TSFyAyqwdNNmOO9riK8ePXMH/QcSv0wY12pFBw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-13.3.7.tgz", + "integrity": "sha512-XUmiq/3zpuna+r0UOqNSvA9kEcPwsLblEmNLUYyZXL9v/aGWUHOSH0nhGVrNRrSud4ryklEnxfkxkxlZlT4mjQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/build-webpack": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@babel/core": "7.16.12", + "@babel/generator": "7.16.8", + "@babel/helper-annotate-as-pure": "7.16.7", + "@babel/plugin-proposal-async-generator-functions": "7.16.8", + "@babel/plugin-transform-async-to-generator": "7.16.8", + "@babel/plugin-transform-runtime": "7.16.10", + "@babel/preset-env": "7.16.11", + "@babel/runtime": "7.16.7", + "@babel/template": "7.16.7", + "@discoveryjs/json-ext": "0.5.6", + "@ngtools/webpack": "13.3.7", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.5", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "15.3.0", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "10.2.1", + "core-js": "3.20.3", + "critters": "0.0.16", + "css-loader": "6.5.1", + "esbuild-wasm": "0.14.22", + "glob": "7.2.0", + "https-proxy-agent": "5.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.5.3", + "minimatch": "3.0.5", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.2.0", + "postcss": "8.4.5", + "postcss-import": "14.0.2", + "postcss-loader": "6.2.1", + "postcss-preset-env": "7.2.3", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "5.0.0", + "rxjs": "6.6.7", + "sass": "1.49.9", + "sass-loader": "12.4.0", + "semver": "7.3.5", + "source-map-loader": "3.0.1", + "source-map-support": "0.5.21", + "stylus": "0.56.0", + "stylus-loader": "6.2.0", + "terser": "5.11.0", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.3.1", + "webpack": "5.70.0", + "webpack-dev-middleware": "5.3.0", + "webpack-dev-server": "4.7.3", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "optionalDependencies": { + "esbuild": "0.14.22" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0 || ^13.3.0-rc.0", + "@angular/localize": "^13.0.0 || ^13.3.0-rc.0", + "@angular/service-worker": "^13.0.0 || ^13.3.0-rc.0", + "karma": "^6.3.0", + "ng-packagr": "^13.0.0", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0 || ^3.0.0", + "typescript": ">=4.4.3 <4.7" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/runtime": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", + "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/esbuild": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.22.tgz", + "integrity": "sha512-CjFCFGgYtbFOPrwZNJf7wsuzesx8kqwAffOlbYcFDLFuUtP8xloK1GH+Ai13Qr0RZQf9tE7LMTHJ2iVGJ1SKZA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.14.22", + "esbuild-darwin-64": "0.14.22", + "esbuild-darwin-arm64": "0.14.22", + "esbuild-freebsd-64": "0.14.22", + "esbuild-freebsd-arm64": "0.14.22", + "esbuild-linux-32": "0.14.22", + "esbuild-linux-64": "0.14.22", + "esbuild-linux-arm": "0.14.22", + "esbuild-linux-arm64": "0.14.22", + "esbuild-linux-mips64le": "0.14.22", + "esbuild-linux-ppc64le": "0.14.22", + "esbuild-linux-riscv64": "0.14.22", + "esbuild-linux-s390x": "0.14.22", + "esbuild-netbsd-64": "0.14.22", + "esbuild-openbsd-64": "0.14.22", + "esbuild-sunos-64": "0.14.22", + "esbuild-windows-32": "0.14.22", + "esbuild-windows-64": "0.14.22", + "esbuild-windows-arm64": "0.14.22" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1303.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1303.7.tgz", + "integrity": "sha512-5vF399cPdwuCbzbxS4yNGgChdAzEM0/By21P0uiqBcIe/Zxuz3IUPapjvcyhkAo5OTu+d7smY9eusLHqoq1WFQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^5.30.0", + "webpack-dev-server": "^4.0.0" + } + }, + "node_modules/@angular-devkit/core": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.7.tgz", + "integrity": "sha512-Ucy4bJmlgCoBenuVeGMdtW9dE8+cD+guWCgqexsFIG21KJ/l0ShZEZ/dGC1XibzaIs1HbKiTr/T1MOjInCV1rA==", + "dev": true, + "dependencies": { + "ajv": "8.9.0", + "ajv-formats": "2.1.1", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "chokidar": "^3.5.2" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/core/node_modules/ajv": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "dev": true, + "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/@angular-devkit/schematics": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.7.tgz", + "integrity": "sha512-6TKpFMwiiXmPhiVdbkSJrkBXj8n7SVVhsHl2GodDLVTb8OT3fxYIB9EU8Il07AMfDcjpydOcJduCFPOsQYd7BA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "jsonc-parser": "3.0.0", + "magic-string": "0.25.7", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-eslint/builder": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-13.2.1.tgz", + "integrity": "sha512-79378DhlZ+hUlsTYvFs/BauiCQPN0RGlN5IuvzZs62yWquPecwK0nHcSasUe5OtiknuwIy7SwFq/AXyJVI+Ouw==", + "dev": true, + "dependencies": { + "@nrwl/devkit": "13.1.3" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/bundled-angular-compiler": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-13.2.1.tgz", + "integrity": "sha512-v/O9s6yvg7MJTQ9iNdXpZJOAjunY4ATk/dE3+xTsLwWTZXTXLXZE1FtKD/reijoItZtGiLUJ+F1pK5nwq/iI6w==", + "dev": true + }, + "node_modules/@angular-eslint/eslint-plugin": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-13.2.1.tgz", + "integrity": "sha512-hlHzbe7MIBbZ4IUKvJh5pjN5nKw0YZBwPyIB1+IBOJAdjWuS274uUGTZxKeyJiyJi0FOUu5+Z6vbM9ZJ2uzjcw==", + "dev": true, + "dependencies": { + "@angular-eslint/utils": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/eslint-plugin-template": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-13.2.1.tgz", + "integrity": "sha512-fA11IGfnWzJePFVS04JKigQY33/Twp5Gv3sj6o8NLRi25NbZDFMc6YjRv8FuKfJ0DXrZh0nLgP2L/01qnXDgZQ==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0", + "aria-query": "^4.2.2", + "axobject-query": "^2.2.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/schematics": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-13.2.1.tgz", + "integrity": "sha512-uejXuV9mGzjxw/WY7T3FBpm3HWmOtjnA3eFXzY2VssqaYbEcBl9DakBh9h+KivV86iH3F3ElY8WC0Ka25TCCsg==", + "dev": true, + "dependencies": { + "@angular-eslint/eslint-plugin": "13.2.1", + "@angular-eslint/eslint-plugin-template": "13.2.1", + "ignore": "5.2.0", + "strip-json-comments": "3.1.1", + "tmp": "0.2.1" + }, + "peerDependencies": { + "@angular/cli": ">= 13.0.0 < 14.0.0" + } + }, + "node_modules/@angular-eslint/schematics/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@angular-eslint/template-parser": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-13.2.1.tgz", + "integrity": "sha512-aSZjKYTUXjJ3sehm90CfZey/ed333IxP0TpnaG7Lue9rSEa3BkKOv8Kffy+EhDkpdTpjdwdmGfopxxsbm9sPHw==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "eslint-scope": "^5.1.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular-eslint/template-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/@angular-eslint/template-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/@angular-eslint/utils": { + "version": "13.2.1", + "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-13.2.1.tgz", + "integrity": "sha512-TCw56jQDPe/FDg3IC0QTQVn4mv5Pzb8K4YpO2hiBdU4XwmOTGWjbwZO++Wr1Gekw1OJYVWSIwNfz2MrGIDsu7A==", + "dev": true, + "dependencies": { + "@angular-eslint/bundled-angular-compiler": "13.2.1", + "@typescript-eslint/experimental-utils": "5.17.0" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "typescript": "*" + } + }, + "node_modules/@angular/animations": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-13.3.10.tgz", + "integrity": "sha512-V/0h3xepWPBRjWroFXYrNIE3iZPREjv0hiB3gskF/2KLlx5jvpUWlaBx0rEYRa8XXIPJyAaKBGwWSBnT/Z88TQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10" + } + }, + "node_modules/@angular/cdk": { + "version": "13.3.8", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-13.3.8.tgz", + "integrity": "sha512-ciLYoVxsqnA9hGJTUW74A56NjArYhFdqFYmVDimWWNYAgY7jY1gCfKq9UtixUErDi29FGSCWRbLuZ6w4q0NYnA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0 || ^14.0.0-0", + "@angular/core": "^13.0.0 || ^14.0.0-0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/cli": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-13.3.7.tgz", + "integrity": "sha512-XIp0w0YOwhHp4Je3npHAs0W4rjHvFnG2w/lDO2M/UNp5634S4PRMFmVVMt6DQBj1cbffYVKFqffqesyCqNuvAQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1303.7", + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "@schematics/angular": "13.3.7", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.3", + "ini": "2.0.0", + "inquirer": "8.2.0", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.5", + "npm-pick-manifest": "6.1.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "12.0.3", + "resolve": "1.22.0", + "semver": "7.3.5", + "symbol-observable": "4.0.0", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@angular/cli/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/@angular/common": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-13.3.10.tgz", + "integrity": "sha512-KWw91QzmCDZ6uq1Z58v7vQQ57Ux7A2UkPdIBOyvpOgtQPTvlvKsePkUVCC+dum+W9mOy4kq2falO5T7Gi7SJgw==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/core": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/compiler": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", + "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-13.3.10.tgz", + "integrity": "sha512-cGFQyUOxOLVnehczdP4L7KXbKQTe/aQgbXmacQYgqcP/AnpJs7QfZbw1/k1wJtXrhzbGBh3JSWnpme74bnF3dQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.17.2", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.26.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" + }, + "bin": { + "ng-xi18n": "bundles/src/bin/ng_xi18n.js", + "ngc": "bundles/src/bin/ngc.js", + "ngcc": "bundles/ngcc/main-ngcc.js" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/compiler": "13.3.10", + "typescript": ">=4.4.2 <4.7" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", + "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/@angular/compiler-cli/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/@angular/compiler-cli/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/magic-string": { + "version": "0.26.2", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.2.tgz", + "integrity": "sha512-NzzlXpclt5zAbmo6h6jNc8zl2gNRGHvmsZW4IvZhTC4W7k4OlLP+S5YLussa/r3ixNT66KOQfNORlXHSOy/X4A==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@angular/core": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-13.3.10.tgz", + "integrity": "sha512-7jH1a5wZdE6Ki2Dow7s6v1/5SfUcXsjAu3n523QSDlM078QG0p95npcqPseO9mNftG9MfRqBE7sl1Nb+ZK7eBg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "~0.11.4" + } + }, + "node_modules/@angular/forms": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-13.3.10.tgz", + "integrity": "sha512-2cREi8nvCdspYHk6KJ5xjIgq8Dgh/kfwPIVjpLQBZFNC03Q6GvOLVoVm8ye6ToOpQFjvjpjndqU93JXSLMANgA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@angular/language-service": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-13.3.10.tgz", + "integrity": "sha512-TQwVIEFTWOlX9Jy2PhOT52Eo3ApNWSkjQavAuIU4uNQRCyoKMTywJ6MlQiQlMoWPH77Yn5EZyCwRoWFVWg3q0w==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-13.3.10.tgz", + "integrity": "sha512-zi0FrA8zZRiHLBfKlfIxikG06wMF2KcSp6oqrIblrc1VrHgPRVRABz8vryH84lasDssjYdIS9AvbQnCCdgCzJA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/animations": "13.3.10", + "@angular/common": "13.3.10", + "@angular/core": "13.3.10" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-13.3.10.tgz", + "integrity": "sha512-hygsEjTaS+VDUrBZZiRJFo5J7AHCS/EcAc1IWvb69EnVqA9RwqM4hWbuy3y/cmLEeHLLmRldIlS6xRPt8fTNQg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/compiler": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10" + } + }, + "node_modules/@angular/router": { + "version": "13.3.10", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-13.3.10.tgz", + "integrity": "sha512-neGaeiHravXlCbNbyGJecwQyu/91Pj/E9/ohVFzBBE4V9BrNx9v7Ntc4ugqgpnrV2wtonPP7TQDqXxrPk4QVfg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0" + }, + "peerDependencies": { + "@angular/common": "13.3.10", + "@angular/core": "13.3.10", + "@angular/platform-browser": "13.3.10", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", + "dev": true + }, + "node_modules/@asymmetrik/ngx-leaflet": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/@asymmetrik/ngx-leaflet/-/ngx-leaflet-13.0.2.tgz", + "integrity": "sha512-7JUucZeODTpCrKh1OdhJpzFl6vnawpmramX+ow47AG2R73p5ZNxymTjD6fmevJLL9H6w2PeD2i4Vt6s4V018Kg==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "13", + "@angular/core": "13", + "leaflet": "1" + } + }, + "node_modules/@asymmetrik/ngx-leaflet-markercluster": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@asymmetrik/ngx-leaflet-markercluster/-/ngx-leaflet-markercluster-13.0.1.tgz", + "integrity": "sha512-K9LqZPv5A4yplE6Fe91pPE8es2Km7vaEnVIVmiMlIrsTGtOMiyM+lvO0r/i8c+7AqbG9f8bka5++bdZZkKJ5jQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "13", + "@angular/core": "13", + "@asymmetrik/ngx-leaflet": "13", + "leaflet": "1", + "leaflet.markercluster": "1" + } + }, + "node_modules/@awesome-cordova-plugins/calendar": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/calendar/-/calendar-5.43.0.tgz", + "integrity": "sha512-lLutD6BgthBHbbdoQeuhsjX6CFir7WGatUHH9jZVY9delP9bqcD+Bx1NUhPWjsXfg8VmPGVQS409uYrPrp4eCw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@awesome-cordova-plugins/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@awesome-cordova-plugins/core": { + "version": "5.43.0", + "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/core/-/core-5.43.0.tgz", + "integrity": "sha512-DDLzEYtP6fDqyVORwuzXH64VFYTcW5qoaXAvghWtc5O+wciqeX1hFO7WY7l+1Ytkf6J4IbyMhrsOgZb3bC1eMQ==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "rxjs": "^5.5.0 || ^6.5.0 || ^7.3.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", + "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "dependencies": { + "@babel/highlight": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz", + "integrity": "sha512-BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.16.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.12.tgz", + "integrity": "sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-module-transforms": "^7.16.7", + "@babel/helpers": "^7.16.7", + "@babel/parser": "^7.16.12", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.10", + "@babel/types": "^7.16.8", + "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/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/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.8.tgz", + "integrity": "sha512-1ojZwE9+lOXzcWdWmO6TbUzDfqLD39CmEhN8+2cX9XkDo5yW1OpgfejfliysR2AWLpMamTiOiAp/mtroaymhpw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.8", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", + "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-validator-option": "^7.16.7", + "browserslist": "^4.20.2", + "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.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "regexpu-core": "^5.0.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/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-environment-visitor": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", + "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", + "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", + "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.17.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", + "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.17.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-validator-identifier": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", + "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", + "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-wrap-function": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz", + "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-member-expression-to-functions": "^7.17.7", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.16.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", + "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", + "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", + "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.16.7", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.16.8", + "@babel/types": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz", + "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "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==", + "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==", + "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==" + }, + "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==", + "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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", + "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", + "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", + "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "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-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "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-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-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "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-transform-arrow-functions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", + "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz", + "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz", + "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-optimise-call-expression": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-replace-supers": "^7.18.2", + "@babel/helper-split-export-declaration": "^7.16.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/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/plugin-transform-computed-properties": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", + "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", + "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", + "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-function-name": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", + "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-simple-access": "^7.18.2", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz", + "integrity": "sha512-SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-validator-identifier": "^7.16.7", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz", + "integrity": "sha512-TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", + "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-replace-supers": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", + "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "regenerator-transform": "^0.15.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.16.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.16.10.tgz", + "integrity": "sha512-9nwTiqETv2G7xI4RvXHNfpGdr8pAA+Q/YtN3yLK7OoK7n9OibVm/xymJ838a9A6E/IciOLPj82lZk0fW6O4O7w==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/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/plugin-transform-shorthand-properties": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", + "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", + "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", + "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", + "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.16.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.16.11.tgz", + "integrity": "sha512-qcmWG8R7ZW6WBRPZK//y+E3Cli151B20W1Rv7ln27vuPaXU/8TKms6jFdiJtF7UDTxcrb7mZd88tAeK9LjdT8g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.16.8", + "@babel/helper-compilation-targets": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.16.7", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.16.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.16.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.16.8", + "@babel/plugin-transform-modules-systemjs": "^7.16.7", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.16.7", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.16.8", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.20.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/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/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", + "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.3.tgz", + "integrity": "sha512-l4ddFwrc9rnR+EJsHsh+TJ4A35YqQz/UqcjtlX2ov53hlJYG5CxtQmNZxyajwDVmCxwy++rtvGU5HazCK4W41Q==", + "dev": true, + "dependencies": { + "core-js-pure": "^3.20.2", + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", + "@babel/helper-function-name": "^7.17.9", + "@babel/helper-hoist-variables": "^7.16.7", + "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.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.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@capacitor-community/http": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@capacitor-community/http/-/http-1.4.1.tgz", + "integrity": "sha512-+pCkBXrwfm97UfjOgjV950H/qZ8SE36Mrcb46BlL1ps3VIsGuIO+AulL8GqTC6LewheRVtGJpRspNtneXQotNA==", + "dependencies": { + "@capacitor/android": "^3.0.0", + "@capacitor/core": "^3.0.0", + "@capacitor/filesystem": "^1.0.0", + "@capacitor/ios": "^3.0.0" + } + }, + "node_modules/@capacitor/android": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.5.1.tgz", + "integrity": "sha512-rjehS0+BQBlwoN8hUyrMuzexn/9QJsONb1kmN5uXcL8JuTEbv35fa7z0tSD4x1LKwUFd+3Zeuwt60QRuwijlmw==", + "peerDependencies": { + "@capacitor/core": "^3.5.0" + } + }, + "node_modules/@capacitor/app": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-1.1.1.tgz", + "integrity": "sha512-8ADkldHnoE1xkWvPUsGlERVGm6/Zvcxy6hCI80AxydIKyaCG7kbDAvUclebbnw/eFRxj2zBoVatGLjmJNvTbYw==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/browser": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-1.0.7.tgz", + "integrity": "sha512-ni8IjsPyFUYqQ2JxBwzI7VpJUZHPr7QiRds5hQWM/1cpfH0+DWvjWHwzxQXuSbW0h+QGXGSJ/vwqjRns7NzLfQ==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/cli": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-3.5.1.tgz", + "integrity": "sha512-zIA5BqT8ZnfUFEJwHlSdQ8Q5iWqmT7S6Mgsjbk55Pkv3BKQIP2VIFYpM4E7lGLEKd4kBnKStD0lTw5/P3E03KA==", + "dev": true, + "dependencies": { + "@ionic/cli-framework-output": "^2.2.1", + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-subprocess": "^2.1.6", + "@ionic/utils-terminal": "^2.3.0", + "commander": "^6.0.0", + "debug": "^4.2.0", + "env-paths": "^2.2.0", + "kleur": "^4.1.1", + "native-run": "^1.5.0", + "open": "^7.4.2", + "plist": "^3.0.2", + "prompts": "^2.3.2", + "semver": "^7.3.2", + "tar": "^6.1.11", + "tslib": "^2.1.0", + "xml2js": "^0.4.23" + }, + "bin": { + "cap": "bin/capacitor", + "capacitor": "bin/capacitor" + }, + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@capacitor/cli/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@capacitor/cli/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@capacitor/core": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/core/-/core-3.5.1.tgz", + "integrity": "sha512-UTROxB7q/hZBnhDLcCN7mVsAX3SxXNMhVuPbtddsDOUCm4hExLXN62gPD7rjgmumhfHMjeXmkw/EfRzSjttL1g==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/@capacitor/device": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-1.1.2.tgz", + "integrity": "sha512-1i6yvuSC7Ys7fs4JsUtfwG/00d2FF2TvWpbYs7YbkXhp1vOTL510gwjc5S6FTyhh8M9sAaUU5tKB68XwlSK/GA==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/dialog": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@capacitor/dialog/-/dialog-1.0.7.tgz", + "integrity": "sha512-+B6lKlqlpZk9uDrHEYk2rj+b3DF1kxCqV+vGtKwNMr2tFvNppZVkYdZU+L503yAoFFejqgQ27n0A4vXg+BTcBQ==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/filesystem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.1.0.tgz", + "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/geolocation": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@capacitor/geolocation/-/geolocation-1.3.1.tgz", + "integrity": "sha512-3u9Hu4E0VBMa6r0d2t9MENDIR+bv5Tf144uPmb2Bl7XLQeFwvu4BSp2neNq39x58PvcROPMNX1BOTSGpQep+1Q==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/haptics": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@capacitor/haptics/-/haptics-1.1.4.tgz", + "integrity": "sha512-+pJIb5X7xAcbrWj6rJaV+cwBlv8aFwB1/Ob6EV4atydThuuVSSsAL4hI4ZYlPNOxM6H5s+ZDLj7Pa2os4eFmtg==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/ios": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.5.1.tgz", + "integrity": "sha512-295L9dHe/QaejUpGI8Pxwb1i2yVgick1ExIDK26xk+tk1km3B1HVjsIS8qkf2SOp7tuwP9+W5T5p7rLMNN4v5g==", + "peerDependencies": { + "@capacitor/core": "^3.5.0" + } + }, + "node_modules/@capacitor/keyboard": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@capacitor/keyboard/-/keyboard-1.2.2.tgz", + "integrity": "sha512-dOZSXJTY/tTbRQ+Neiny72BIXN2Hvf/2AgPpMdTErDfaQM7C2MMgtJrm+Mi+YUeT6AnJFmt68nHJGImAL4lzmA==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/local-notifications": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@capacitor/local-notifications/-/local-notifications-1.1.0.tgz", + "integrity": "sha512-l6S9rBylxGPq/U+xpJzZcOL4l2s8I2Igq7uDTidR4imIxxX3bLRz9nDSQREWsbQkFx7ALFm/5Y8PJGz2C6qKPw==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/network": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-1.0.7.tgz", + "integrity": "sha512-Le1pcXlBB6Vsz+9Y5jkwcoFONq93Fm06T+EXfH52khrIH61k5rOYRM1HGR5Q0hu6pDKqA9jM/tU06h2kqsJteA==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/share": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-1.1.2.tgz", + "integrity": "sha512-FUTdjA7MAiD1tkGVZ+C3gs7a4fyEhXojDO2HkZ954oupG1cQ51dEJ1xTNnR9BAmCwUJO4sa91cxy7SMyCDPuGg==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/splash-screen": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-1.2.2.tgz", + "integrity": "sha512-iGh9gc0rdS3R+Wr+bD/+tJl3qbmJZ5xVQAP5UsD6U6Y3ydCBo9KpA8DEqxaBZVsCDaLt67009hK5nxKBwjRn7Q==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/status-bar": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-1.0.8.tgz", + "integrity": "sha512-lhxa70K6vg0QjdddbT9RqFLfQ9a0Fk1OVE54MhUH30DWymv4h2LrC+mJgH6JS46WQbR2UCHRymfmVCq1PS2Qiw==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@capacitor/storage": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@capacitor/storage/-/storage-1.2.5.tgz", + "integrity": "sha512-pWhnw4U7wN/zFV4lA4BLMypSufTktCbk548Yk4whSb0KAq3R0mLfSubRIHkGdcPqQWCsM6g/zUuszurhz6ncWQ==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@compodoc/compodoc": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.1.19.tgz", + "integrity": "sha512-09vdSIgoAXWD1MiLZNhiljLNQ1XzHw/w5shw5IPcUImr/I+1Y52srUL46mEXN8AXo0hbHb5LZcgs70mmrOvY7Q==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/schematics": "^13.2.4", + "@babel/core": "^7.17.5", + "@babel/preset-env": "^7.16.11", + "@compodoc/live-server": "^1.2.3", + "@compodoc/ngd-transformer": "^2.1.0", + "chalk": "4.1.2", + "cheerio": "^1.0.0-rc.10", + "chokidar": "^3.5.3", + "colors": "1.4.0", + "commander": "^9.0.0", + "cosmiconfig": "^7.0.1", + "decache": "^4.6.1", + "fancy-log": "^2.0.0", + "findit2": "^2.2.3", + "fs-extra": "^10.0.1", + "glob": "^7.2.0", + "handlebars": "^4.7.7", + "html-entities": "^2.3.2", + "i18next": "^21.6.11", + "inside": "^1.0.0", + "json5": "^2.2.0", + "lodash": "^4.17.21", + "loglevel": "^1.8.0", + "loglevel-plugin-prefix": "^0.8.4", + "lunr": "^2.3.9", + "marked": "^4.0.12", + "minimist": "^1.2.5", + "opencollective-postinstall": "^2.0.3", + "os-name": "4.0.1", + "pdfjs-dist": "^2.12.313", + "pdfmake": "^0.2.4", + "semver": "^7.3.5", + "traverse": "^0.6.6", + "ts-morph": "^13.0.3", + "uuid": "^8.3.2" + }, + "bin": { + "compodoc": "bin/index-cli.js" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@babel/core": { + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", + "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/@compodoc/compodoc/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/@compodoc/compodoc/node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@compodoc/compodoc/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@compodoc/compodoc/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/@compodoc/live-server": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@compodoc/live-server/-/live-server-1.2.3.tgz", + "integrity": "sha512-hDmntVCyjjaxuJzPzBx68orNZ7TW4BtHWMnXlIVn5dqhK7vuFF/11hspO1cMmc+2QTYgqde1TBcb3127S7Zrow==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "colors": "1.4.0", + "connect": "^3.7.0", + "cors": "latest", + "event-stream": "4.0.1", + "faye-websocket": "0.11.x", + "http-auth": "4.1.9", + "http-auth-connect": "^1.0.5", + "morgan": "^1.10.0", + "object-assign": "latest", + "open": "8.4.0", + "proxy-middleware": "latest", + "send": "latest", + "serve-index": "^1.9.1" + }, + "bin": { + "live-server": "live-server.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@compodoc/live-server/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/@compodoc/live-server/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/@compodoc/live-server/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/@compodoc/live-server/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/@compodoc/live-server/node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@compodoc/ngd-core": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.1.0.tgz", + "integrity": "sha512-nyBH7J7SJJ2AV6OeZhJ02kRtVB7ALnZJKgShjoL9CNmOFEj8AkdhP9qTBIgjaDrbsW5pF4nx32KQL2fT7RFnqw==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "fancy-log": "^1.3.3", + "typescript": "^4.0.3" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@compodoc/ngd-core/node_modules/fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "dependencies": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/@compodoc/ngd-transformer": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.1.0.tgz", + "integrity": "sha512-Jo4VCMzIUtgIAdRmhHhOoRRE01gCjc5CyrUERRx0VgEzkkCm1Wmu/XHSsQP6tSpCYHBjERghqaDqH5DabkR2oQ==", + "dev": true, + "dependencies": { + "@aduh95/viz.js": "^3.1.0", + "@compodoc/ngd-core": "~2.1.0", + "dot": "^1.1.3", + "fs-extra": "^9.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@compodoc/ngd-transformer/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz", + "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3", + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@cypress/request": { + "version": "2.88.10", + "resolved": "https://registry.npmjs.org/@cypress/request/-/request-2.88.10.tgz", + "integrity": "sha512-Zp7F+R93N0yZyG34GutyTNr+okam7s/Fzc1+i3kcqOP8vk6OuajuE9qZJ6Rs+10/1JFtXFYMdyarnU1rZuJesg==", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "http-signature": "~1.3.6", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@cypress/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@cypress/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/@cypress/schematic": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@cypress/schematic/-/schematic-1.7.0.tgz", + "integrity": "sha512-CouQrVlZ+uHVVBQtmNoMYU9LyoSAmQTOLDpVjrdTdMPpJH1mWnHCL5OCMt+FZLR+43KRiWEvDUjNqSza11oGsQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "^0.1202.10", + "@angular-devkit/core": "^12.2.17", + "@angular-devkit/schematics": "^12.2.17", + "@schematics/angular": "^12.2.17", + "jsonc-parser": "^3.0.0", + "rxjs": "~6.6.0" + }, + "peerDependencies": { + "@angular/cli": ">=12", + "@angular/core": ">=12" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/architect": { + "version": "0.1202.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1202.17.tgz", + "integrity": "sha512-uUQcHcLbPvr9adALQSLU1MTDduVUR2kZAHi2e7SmL9ioel84pPVXBoD0WpSBeUMKwPiDs3TQDaxDB49hl0nBSQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.17", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/core": { + "version": "12.2.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-12.2.17.tgz", + "integrity": "sha512-PyOY7LGUPPd6rakxUYbfQN6zAdOCMCouVp5tERY1WTdMdEiuULOtHsPee8kNbh75pD59KbJNU+fwozPRMuIm5g==", + "dev": true, + "dependencies": { + "ajv": "8.6.2", + "ajv-formats": "2.1.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.7", + "source-map": "0.7.3" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@angular-devkit/schematics": { + "version": "12.2.17", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-12.2.17.tgz", + "integrity": "sha512-c0eNu/nx1Mnu7KcZgYTYHP736H4Y9pSyLBSmLAHYZv3t3m0dIPbhifRcLQX7hHQ8fGT2ZFxmOpaQG5/DcIghSw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.17", + "ora": "5.4.1", + "rxjs": "6.6.7" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/@schematics/angular": { + "version": "12.2.17", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-12.2.17.tgz", + "integrity": "sha512-HM/4KkQu944KL5ebhIyy1Ot5OV6prHNW7kmGeMVeQefLSbbfMQCHLa1psB9UU9BoahwGhUBvleLylNSitOBCgg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "12.2.17", + "@angular-devkit/schematics": "12.2.17", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.14.1 || >=14.0.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@cypress/schematic/node_modules/ajv": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "dev": true, + "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/@cypress/schematic/node_modules/ajv-formats": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.0.tgz", + "integrity": "sha512-USH2jBb+C/hIpwD2iRjp0pe0k+MvzG0mlSn/FIdCgQhUb9ALPRjt2KIQdfZDS9r0ZIeUAg7gOu9KL0PFqGqr5Q==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@cypress/xvfb": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz", + "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==", + "dev": true, + "dependencies": { + "debug": "^3.1.0", + "lodash.once": "^4.1.1" + } + }, + "node_modules/@cypress/xvfb/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/@discoveryjs/json-ext": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.6.tgz", + "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + } + }, + "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==", + "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==", + "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/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==" + }, + "node_modules/@foliojs-fork/fontkit": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/fontkit/-/fontkit-1.9.1.tgz", + "integrity": "sha512-U589voc2/ROnvx1CyH9aNzOQWJp127JGU1QAylXGQ7LoEAF6hMmahZLQ4eqAcgHUw+uyW4PjtCItq9qudPkK3A==", + "dev": true, + "dependencies": { + "@foliojs-fork/restructure": "^2.0.2", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@foliojs-fork/linebreak/-/linebreak-1.1.1.tgz", + "integrity": "sha512-pgY/+53GqGQI+mvDiyprvPWgkTlVBS8cxqee03ejm6gKAQNsR1tCYCIvN9FHy7otZajzMqCgPOgC4cHdt4JPig==", + "dev": true, + "dependencies": { + "base64-js": "1.3.1", + "brfs": "^2.0.2", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/@foliojs-fork/linebreak/node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "node_modules/@foliojs-fork/pdfkit": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@foliojs-fork/pdfkit/-/pdfkit-0.13.0.tgz", + "integrity": "sha512-YXeG1fml9k97YNC9K8e292Pj2JzGt9uOIiBFuQFxHsdQ45BlxW+JU3RQK6JAvXU7kjhjP8rCcYvpk36JLD33sQ==", + "dev": true, + "dependencies": { + "@foliojs-fork/fontkit": "^1.9.1", + "@foliojs-fork/linebreak": "^1.1.1", + "crypto-js": "^4.0.0", + "png-js": "^1.0.0" + } + }, + "node_modules/@foliojs-fork/restructure": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz", + "integrity": "sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA==", + "dev": true + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, + "node_modules/@hapi/hoek": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", + "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==" + }, + "node_modules/@hapi/topo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", + "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/momoa": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/momoa/-/momoa-2.0.4.tgz", + "integrity": "sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==", + "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==" + }, + "node_modules/@hutson/parse-repository-url": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@hutson/parse-repository-url/-/parse-repository-url-3.0.2.tgz", + "integrity": "sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ionic-native/core": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.36.0.tgz", + "integrity": "sha512-lOrkktadlKYbYf1LrDyAtsu1JnQ0oCCdkOU7iHQ8oXnNOkMwobFfD2m62F1CoOr0u9LIkpYnZSPjng8lZbmbNw==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic-native/file-opener": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.36.0.tgz", + "integrity": "sha512-UKp3pbqvQXsAtLMJ5JE+KcTMxpjSZMFebf6nvy/KJvwy85JGIaCV4ZVM/H9CFUrHJMWBH6wDbY+WPygnsrl4Yg==", + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@ionic-native/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic-native/http": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/http/-/http-5.36.0.tgz", + "integrity": "sha512-3t7UhcqNxZuIX+HXuydlaDfA9AwDXiRFGs9GsHpJnXMTfbeKUcwzp0amqblrLslDA9tNfqSmJyFZFaMX6CRrog==", + "optional": true, + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@ionic-native/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic-native/in-app-browser": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/in-app-browser/-/in-app-browser-5.36.0.tgz", + "integrity": "sha512-tX/FBT0jpkgEefZ8iorv5eDKfgP/ExbYr1AWg6okORQ0dwLfXsD5KDJgKHN9GFZvyuLNeaLpC1mN7CvwvLvmgA==", + "optional": true, + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@ionic-native/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic-native/safari-view-controller": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/safari-view-controller/-/safari-view-controller-5.36.0.tgz", + "integrity": "sha512-pvqnzro3bBZ0bQOMjBRKhmjHDaLKfDS75QY7uqe9UzjufMnHtBUUWgMvTuL7MsjTXRj8iRhe1wnUv8aBkz4SVA==", + "optional": true, + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@ionic-native/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic-native/secure-storage": { + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/@ionic-native/secure-storage/-/secure-storage-5.36.0.tgz", + "integrity": "sha512-8wRH0bUMvJVnEu052cA1gi10cYJzNWMa67uRavay2UlDA5gDzOkUl5YsvWfg3BP6UW8ZQG/YDVIyzRWSp3Gevg==", + "optional": true, + "dependencies": { + "@types/cordova": "latest" + }, + "peerDependencies": { + "@ionic-native/core": "^5.1.0", + "rxjs": "^5.5.0 || ^6.5.0" + } + }, + "node_modules/@ionic/angular": { + "version": "6.1.7", + "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-6.1.7.tgz", + "integrity": "sha512-PT5GpnGYWFQjz60oy8CHX4RzrbNdm114K3DeJhKztPNLYoLEb2DmUgoJ8XbVwUMKM3WIbEYPmrJO/IQdpRQJ2w==", + "dependencies": { + "@ionic/core": "^6.1.7", + "jsonc-parser": "^3.0.0", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": ">=12.0.0", + "@angular/forms": ">=12.0.0", + "@angular/router": ">=12.0.0", + "rxjs": ">=6.6.0", + "zone.js": ">=0.11.0" + } + }, + "node_modules/@ionic/angular-toolkit": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ionic/angular-toolkit/-/angular-toolkit-6.1.0.tgz", + "integrity": "sha512-QZkoNdXej4MQqKGdm+suzTK39R0iRGpBFhOzP+f75v4ZGgEQ+ntA213UdaTa6EvsvS7n14p0zbHiBroLUOCNzQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "^13.0.1", + "@angular-devkit/schematics": "^13.0.1", + "@schematics/angular": "^13.0.1" + } + }, + "node_modules/@ionic/cli": { + "version": "6.19.1", + "resolved": "https://registry.npmjs.org/@ionic/cli/-/cli-6.19.1.tgz", + "integrity": "sha512-5wCeAkVyvziYlVy1vwHLbABcsqfaowwLFgAkOKtl4WXYcWOvFV+VU1Zoxs33XHIDxmiBkqVcC/JhOLErlmZi9g==", + "dev": true, + "dependencies": { + "@ionic/cli-framework": "5.1.2", + "@ionic/cli-framework-output": "2.2.4", + "@ionic/cli-framework-prompts": "2.1.9", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-network": "2.1.5", + "@ionic/utils-process": "2.1.9", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-subprocess": "2.1.10", + "@ionic/utils-terminal": "2.3.2", + "chalk": "^4.0.0", + "debug": "^4.0.0", + "diff": "^4.0.1", + "elementtree": "^0.1.7", + "leek": "0.0.24", + "lodash": "^4.17.5", + "open": "^7.0.4", + "os-name": "^4.0.0", + "semver": "^7.1.1", + "split2": "^3.0.0", + "ssh-config": "^1.1.1", + "stream-combiner2": "^1.1.1", + "superagent": "^5.2.1", + "superagent-proxy": "^3.0.0", + "tar": "^6.0.1", + "tslib": "^2.0.1" + }, + "bin": { + "ionic": "bin/ionic" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework/-/cli-framework-5.1.2.tgz", + "integrity": "sha512-7z9cCJy832lQTZrl8pqxZS+QhjYEgvguPOktkD7yh3I0Yv6QpQJecKb5Amyx2UXv4ImmlfJkyAC3tmQdPRgEAw==", + "dev": true, + "dependencies": { + "@ionic/cli-framework-output": "2.2.4", + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-object": "2.1.5", + "@ionic/utils-process": "2.1.9", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-subprocess": "2.1.10", + "@ionic/utils-terminal": "2.3.2", + "chalk": "^4.0.0", + "debug": "^4.0.0", + "lodash": "^4.17.5", + "minimist": "^1.2.0", + "rimraf": "^3.0.0", + "tslib": "^2.0.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework-output": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-output/-/cli-framework-output-2.2.4.tgz", + "integrity": "sha512-YdaXtHHg0zT1JSFlGrbTWe6uzD6u+w5yHE+aM7Js/3BNLYKIYngliMoojGxwNHbqMPNuvDzWMDAbxteY5u0vKg==", + "dev": true, + "dependencies": { + "@ionic/utils-terminal": "2.3.2", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework-prompts": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@ionic/cli-framework-prompts/-/cli-framework-prompts-2.1.9.tgz", + "integrity": "sha512-rxDcEOLsrK3RwoifutsV+7t1J/zrtgCTxZkp7E5Bz5mX4t3zU6GD1EhmiIV18NsoBKHOGXnXqCA3isCagG1sFA==", + "dev": true, + "dependencies": { + "@ionic/utils-terminal": "2.3.2", + "debug": "^4.0.0", + "inquirer": "^7.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/cli-framework-prompts/node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@ionic/cli/node_modules/open": { + "version": "7.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", + "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ionic/core": { + "version": "6.1.9", + "resolved": "https://registry.npmjs.org/@ionic/core/-/core-6.1.9.tgz", + "integrity": "sha512-EaClsiGB/E9wPkujnrMZ71BLVcA8t6DBZu+caJMmqPLF/64S37CiyfrrMbL1UnxDWP2TXsPFH3seWl6Ek/W1bw==", + "dependencies": { + "@stencil/core": "^2.16.0", + "ionicons": "^6.0.2", + "tslib": "^2.1.0" + } + }, + "node_modules/@ionic/storage": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@ionic/storage/-/storage-3.0.6.tgz", + "integrity": "sha512-sw+zSJINIpbQCGZR9mEtb9N0WmZLuhcMVqOZJBqLuDACAMdXqG39zmp5nSVqhGI1/9X3nd0K5gVn6icyVfUnUg==", + "dependencies": { + "localforage": "^1.9.0" + } + }, + "node_modules/@ionic/storage-angular": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@ionic/storage-angular/-/storage-angular-3.0.6.tgz", + "integrity": "sha512-ZXlIFWGU27aCxVFgZb0KFJFtWwnn6+HK6v0rMGzjN8f7oV2ewXaQ2dl1gTw/A8YoozTVPOFxwfFHCjhWLFR1Fw==", + "dependencies": { + "@ionic/storage": "^3.0.4", + "tslib": "^1.10.0" + }, + "peerDependencies": { + "@angular/core": "*", + "rxjs": "*" + } + }, + "node_modules/@ionic/storage-angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@ionic/utils-array": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-array/-/utils-array-2.1.5.tgz", + "integrity": "sha512-HD72a71IQVBmQckDwmA8RxNVMTbxnaLbgFOl+dO5tbvW9CkkSFCv41h6fUuNsSEVgngfkn0i98HDuZC8mk+lTA==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-fs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-fs/-/utils-fs-3.1.5.tgz", + "integrity": "sha512-a41bY2dHqWSEQQ/80CpbXSs8McyiCFf2DnIWWLukrhYWf46h4qi6M/8dxcMKrofRiqI/3F+cL3S2mOm9Zz/o2Q==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "fs-extra": "^9.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-fs/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ionic/utils-network": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-network/-/utils-network-2.1.5.tgz", + "integrity": "sha512-HUQ1Ec4Mh2MXzzKdbbbDS6xYKwpFJ2XRY7SYXbaZT8+jiNahfHbsOfe62/p8bk41Yil7E9EagzGC2JvIFJh01w==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-object": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-object/-/utils-object-2.1.5.tgz", + "integrity": "sha512-XnYNSwfewUqxq+yjER1hxTKggftpNjFLJH0s37jcrNDwbzmbpFTQTVAp4ikNK4rd9DOebX/jbeZb8jfD86IYxw==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-process": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/@ionic/utils-process/-/utils-process-2.1.9.tgz", + "integrity": "sha512-+RD2mcwh7jtAtkvCFw1BBnUHg/UYgBiYxpXPuXUBSitHHAgVk1zDfYBTM31EKU5FGb5nVU/HkjeYGRHEmj4MPA==", + "dev": true, + "dependencies": { + "@ionic/utils-object": "2.1.5", + "@ionic/utils-terminal": "2.3.2", + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "tree-kill": "^1.2.2", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-stream": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@ionic/utils-stream/-/utils-stream-3.1.5.tgz", + "integrity": "sha512-hkm46uHvEC05X/8PHgdJi4l4zv9VQDELZTM+Kz69odtO9zZYfnt8DkfXHJqJ+PxmtiE5mk/ehJWLnn/XAczTUw==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-subprocess": { + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@ionic/utils-subprocess/-/utils-subprocess-2.1.10.tgz", + "integrity": "sha512-X5wXiA4moEzbvchWqa7kwnYw3IqFyP1otlN/APFOmzmpsQWdyz5LRqqMhPozJeN11Mi3pwNR+BCQWd6vFBHTTg==", + "dev": true, + "dependencies": { + "@ionic/utils-array": "2.1.5", + "@ionic/utils-fs": "3.1.5", + "@ionic/utils-process": "2.1.9", + "@ionic/utils-stream": "3.1.5", + "@ionic/utils-terminal": "2.3.2", + "cross-spawn": "^7.0.3", + "debug": "^4.0.0", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@ionic/utils-terminal": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@ionic/utils-terminal/-/utils-terminal-2.3.2.tgz", + "integrity": "sha512-/yNrEZEDsjzTkpDWTsBjZeWJj2AkMwidyL72kqGkIDGt+J4sL/YVsA9CE3P9P1FAEm8jJmTy/EYAhC6EwA9f1A==", + "dev": true, + "dependencies": { + "debug": "^4.0.0", + "signal-exit": "^3.0.3", + "slice-ansi": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "tslib": "^2.0.1", + "untildify": "^4.0.0", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "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/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/@istanbuljs/load-nyc-config/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/@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/@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.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", + "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@krlwlfrt/async-pool": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@krlwlfrt/async-pool/-/async-pool-0.7.0.tgz", + "integrity": "sha512-qQp9fJdPuSxhJ0aMWCJ8ZavG67GeB1ZoYfYsIooyipeXTWZ9U67uEm93Udvd6C6v1Wa6mvD8X5PBNTtth1x0LQ==" + }, + "node_modules/@ngtools/webpack": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", + "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^13.0.0", + "typescript": ">=4.4.3 <4.7", + "webpack": "^5.30.0" + } + }, + "node_modules/@ngx-translate/core": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/core/-/core-14.0.0.tgz", + "integrity": "sha512-UevdwNCXMRCdJv//0kC8h2eSfmi02r29xeE8E9gJ1Al4D4jEJ7eiLPdjslTMc21oJNGguqqWeEVjf64SFtvw2w==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/core": ">=13.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "node_modules/@ngx-translate/http-loader": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@ngx-translate/http-loader/-/http-loader-7.0.0.tgz", + "integrity": "sha512-j+NpXXlcGVdyUNyY/qsJrqqeAdJdizCd+GKh3usXExSqy1aE9866jlAIL+xrfDU4w+LiMoma5pgE4emvFebZmA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": ">=13.0.0", + "@ngx-translate/core": ">=14.0.0", + "rxjs": "^6.5.3 || ^7.4.0" + } + }, + "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==", + "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==", + "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==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/git": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz", + "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.3.2", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^6.1.1", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz", + "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz", + "integrity": "sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "node-gyp": "^8.2.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@nrwl/cli": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@nrwl/cli/-/cli-14.2.4.tgz", + "integrity": "sha512-Ak6mmM9W39DSVaRDxt0yqMwHWg5yL9+QqhSB7q464EAKS6r4NPr6Z+avAjqAfoS/H8WsEPlwJnsaaJiP/gBwWQ==", + "dev": true, + "dependencies": { + "nx": "14.2.4" + } + }, + "node_modules/@nrwl/cli/node_modules/@nrwl/tao": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-14.2.4.tgz", + "integrity": "sha512-wnrS+Go1Moa+jkOKqxoR/+YihDSoMlbUemBBoa1P2JQ6gvCnCrsvCx3qosJ0HfSdqQy8tkoUqd624RcGUyDUbg==", + "dev": true, + "dependencies": { + "nx": "14.2.4" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/cli/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/@nrwl/cli/node_modules/fast-glob": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", + "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "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" + } + }, + "node_modules/@nrwl/cli/node_modules/glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "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" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@nrwl/cli/node_modules/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@nrwl/cli/node_modules/nx": { + "version": "14.2.4", + "resolved": "https://registry.npmjs.org/nx/-/nx-14.2.4.tgz", + "integrity": "sha512-/LnPgHSckncvS+azP17F0sskDWeiEdBG3eMpAauX8dol4ECG01xPlkiuMTCw4URes6J1TObZTbaEk4eP2uWrag==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nrwl/cli": "14.2.4", + "@nrwl/tao": "14.2.4", + "@parcel/watcher": "2.0.4", + "chalk": "4.1.0", + "chokidar": "^3.5.1", + "cli-cursor": "3.1.0", + "cli-spinners": "2.6.1", + "cliui": "^7.0.2", + "dotenv": "~10.0.0", + "enquirer": "~2.3.6", + "fast-glob": "3.2.7", + "figures": "3.2.0", + "flat": "^5.0.2", + "fs-extra": "^10.1.0", + "glob": "7.1.4", + "ignore": "^5.0.4", + "jsonc-parser": "3.0.0", + "minimatch": "3.0.5", + "npm-run-path": "^4.0.1", + "open": "^8.4.0", + "semver": "7.3.4", + "string-width": "^4.2.3", + "tar-stream": "~2.2.0", + "tmp": "~0.2.1", + "tsconfig-paths": "^3.9.0", + "tslib": "^2.3.0", + "v8-compile-cache": "2.3.0", + "yargs": "^17.4.0", + "yargs-parser": "21.0.1" + }, + "bin": { + "nx": "bin/nx.js" + }, + "peerDependencies": { + "@swc-node/register": "^1.4.2", + "@swc/core": "^1.2.173" + }, + "peerDependenciesMeta": { + "@swc-node/register": { + "optional": true + }, + "@swc/core": { + "optional": true + } + } + }, + "node_modules/@nrwl/cli/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/cli/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@nrwl/cli/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/@nrwl/devkit": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/devkit/-/devkit-13.1.3.tgz", + "integrity": "sha512-TAAsZJvVc/obeH0rZKY6miVhyM2GHGb8qIWp9MAIdLlXf4VDcNC7rxwb5OrGVSwuTTjqGYBGPUx0yEogOOJthA==", + "dev": true, + "dependencies": { + "@nrwl/tao": "13.1.3", + "ejs": "^3.1.5", + "ignore": "^5.0.4", + "rxjs": "^6.5.4", + "semver": "7.3.4", + "tslib": "^2.0.0" + } + }, + "node_modules/@nrwl/devkit/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@nrwl/tao/-/tao-13.1.3.tgz", + "integrity": "sha512-/IwJgSgCBD1SaF+n8RuXX2OxDAh8ut/+P8pMswjm8063ac30UlAHjQ4XTYyskLH8uoUmNi2hNaGgHUrkwt7tQA==", + "dev": true, + "dependencies": { + "chalk": "4.1.0", + "enquirer": "~2.3.6", + "fs-extra": "^9.1.0", + "jsonc-parser": "3.0.0", + "nx": "13.1.3", + "rxjs": "^6.5.4", + "rxjs-for-await": "0.0.2", + "semver": "7.3.4", + "tmp": "~0.2.1", + "tslib": "^2.0.0", + "yargs-parser": "20.0.0" + }, + "bin": { + "tao": "index.js" + } + }, + "node_modules/@nrwl/tao/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/@nrwl/tao/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao/node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@nrwl/tao/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/@openid/appauth": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@openid/appauth/-/appauth-1.3.1.tgz", + "integrity": "sha512-e54kpi219wES2ijPzeHe1kMnT8VKH8YeTd1GAn9BzVBmutz3tBgcG1y8a4pziNr4vNjFnuD4W446Ua7ELnNDiA==", + "dependencies": { + "@types/base64-js": "^1.3.0", + "@types/jquery": "^3.5.5", + "base64-js": "^1.5.1", + "follow-redirects": "^1.13.3", + "form-data": "^4.0.0", + "opener": "^1.5.2" + } + }, + "node_modules/@openstapps/api": { + "version": "0.41.1", + "resolved": "https://registry.npmjs.org/@openstapps/api/-/api-0.41.1.tgz", + "integrity": "sha512-llg8KyFzRRZ+pz7Mhjs/Z1UBprJ50YeammYHMt5DJ32MCdK+gMe4myzkpkkVwaCGYr7Rsz13KJoE03/aEgyivQ==", + "dependencies": { + "@krlwlfrt/async-pool": "0.7.0", + "@openstapps/core": "0.66.1", + "@openstapps/core-tools": "0.30.1", + "@openstapps/logger": "0.8.1", + "@types/cli-progress": "3.11.0", + "@types/express": "4.17.13", + "@types/morgan": "1.9.3", + "@types/node": "14.18.18", + "@types/traverse": "0.6.32", + "@types/uuid": "8.3.4", + "@types/wait-on": "5.3.1", + "body-parser": "1.20.0", + "cli-progress": "3.11.1", + "commander": "9.2.0", + "express": "4.18.1", + "got": "11.8.3", + "json-schema": "0.4.0", + "moment": "2.29.3", + "morgan": "1.10.0", + "rfdc": "1.3.0", + "traverse": "0.6.6", + "uuid": "8.3.2", + "wait-on": "6.0.1" + }, + "bin": { + "openstapps-api": "lib/cli.js" + }, + "peerDependencies": { + "@openstapps/core": "~0.66.0" + } + }, + "node_modules/@openstapps/api/node_modules/@openstapps/core": { + "version": "0.66.1", + "resolved": "https://registry.npmjs.org/@openstapps/core/-/core-0.66.1.tgz", + "integrity": "sha512-+B6ZIP9vsllz89pfBu8j9E94QSGQMthhndVLNYT7VkXszxfICC13gE25WOM6asrgYqmIaYQyR3MxRyWrHA11fg==", + "dependencies": { + "@openstapps/core-tools": "0.30.1", + "@types/geojson": "1.0.6", + "@types/json-patch": "0.0.30", + "@types/json-schema": "7.0.11", + "@types/node": "14.18.18", + "fast-deep-equal": "3.1.3", + "http-status-codes": "2.2.0", + "json-patch": "0.7.0", + "json-schema": "0.4.0", + "rfdc": "1.3.0", + "ts-optchain": "0.1.8" + } + }, + "node_modules/@openstapps/configuration": { + "version": "0.29.1", + "resolved": "https://registry.npmjs.org/@openstapps/configuration/-/configuration-0.29.1.tgz", + "integrity": "sha512-H6DNB1HrujC5LwOF17rYkXQPFaEWTaA5T3IPsfccSuKHSUhB0ry6V5OkMwmvls2nOSrbpuRpyQoM7ulwZ9X9Bw==", + "dependencies": { + "@types/node": "14.18.18", + "@types/semver": "7.3.9", + "@types/yaml": "1.9.7", + "chalk": "4.1.2", + "commander": "9.2.0", + "semver": "7.3.7", + "tslint": "6.1.3", + "tslint-eslint-rules": "5.4.0", + "yaml": "1.10.2" + }, + "bin": { + "openstapps-configuration": "lib/cli.js" + }, + "peerDependencies": { + "typescript": ">=4.4.4" + } + }, + "node_modules/@openstapps/core": { + "version": "0.67.0", + "resolved": "https://registry.npmjs.org/@openstapps/core/-/core-0.67.0.tgz", + "integrity": "sha512-iTn7Tvn4Ri5HEmaiFmDNScuLPlQwLDPnhN9OV1EBmkK54wuX3M/arfL/blgxaeaGkA2CQ3IIk8nlhnyRq8veBA==", + "dependencies": { + "@openstapps/core-tools": "0.30.1", + "@types/geojson": "1.0.6", + "@types/json-patch": "0.0.30", + "@types/json-schema": "7.0.11", + "@types/node": "14.18.18", + "fast-deep-equal": "3.1.3", + "http-status-codes": "2.2.0", + "json-patch": "0.7.0", + "json-schema": "0.4.0", + "rfdc": "1.3.0", + "ts-optchain": "0.1.8" + } + }, + "node_modules/@openstapps/core-tools": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@openstapps/core-tools/-/core-tools-0.30.1.tgz", + "integrity": "sha512-dNJCqlYE6ihMWQm5lBkts5Xr83EBWE7jG9ErK2rwxIorlyFT7lAn7qTRp7vzbT/vBqKueqYQVswvDYfznBru4Q==", + "dependencies": { + "@openstapps/logger": "0.8.1", + "ajv": "8.8.2", + "better-ajv-errors": "1.1.2", + "chai": "4.3.6", + "commander": "9.2.0", + "deepmerge": "4.2.2", + "del": "6.1.1", + "eslint": "8.16.0", + "flatted": "3.2.5", + "fs-extra": "10.1.0", + "glob": "8.0.3", + "got": "11.8.3", + "humanize-string": "3.0.0", + "json-schema": "0.4.0", + "lodash": "4.17.21", + "mustache": "4.2.0", + "openapi-types": "11.0.1", + "plantuml-encoder": "1.4.0", + "re2": "1.17.4", + "toposort": "2.0.2", + "ts-json-schema-generator": "1.0.0", + "ts-node": "10.8.0", + "typescript": "4.4.4" + }, + "bin": { + "openstapps-core-tools": "lib/cli.js" + } + }, + "node_modules/@openstapps/logger": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@openstapps/logger/-/logger-0.8.1.tgz", + "integrity": "sha512-Ain5Hb1f0EjhwhiHfv1PhDaNm7f1LUeuoO8Orll6f1icF5VI+R1PKcxk+Z1rO/WVElFNoP+PORD0vB7wDE4xAQ==", + "dependencies": { + "@types/node": "14.18.18", + "@types/nodemailer": "6.4.4", + "chalk": "4.1.2", + "flatted": "3.2.5", + "moment": "2.29.3", + "nodemailer": "6.7.5" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", + "integrity": "sha512-cTDi+FUDBIUOBKEtj+nhiJ71AZVlkAsQFuGQTun5tV9mwQBQgZvhCzG+URPQc8myeN32yRVZEfVAPCs1RW+Jvg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^3.2.1", + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@polka/url": { + "version": "1.0.0-next.21", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", + "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", + "dev": true + }, + "node_modules/@schematics/angular": { + "version": "13.3.7", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.3.7.tgz", + "integrity": "sha512-OAny1e/yliku52xG7vfWs1hNYSgCNTPpMv9fS8zz9eF5/GrKv28WFSy20mUXqLZ91VsbGSs6X0mI6pdNnpVtJA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "13.3.7", + "@angular-devkit/schematics": "13.3.7", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.15.0 || >=16.10.0", + "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sideway/address": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", + "integrity": "sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==", + "dependencies": { + "@hapi/hoek": "^9.0.0" + } + }, + "node_modules/@sideway/formula": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz", + "integrity": "sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==" + }, + "node_modules/@sideway/pinpoint": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", + "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==" + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@stencil/core": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-2.16.1.tgz", + "integrity": "sha512-s/UJp9qxExL3DyQPT70kiuWeb3AdjbUZM+5lEIXn30I2DLcLYPOPXfsoWJODieQywq+3vPiLZeIdkoqjf6jcSw==", + "bin": { + "stencil": "bin/stencil" + }, + "engines": { + "node": ">=12.10.0", + "npm": ">=6.0.0" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@transistorsoft/capacitor-background-fetch": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@transistorsoft/capacitor-background-fetch/-/capacitor-background-fetch-0.0.6.tgz", + "integrity": "sha512-MnaPPuEzEty8jjnrd2blrifTG++/DrLeAcyxn8r42VYWD7p5Gv3xbNxOM81XOsLj1GpTJ571+msq8R7Z+gdqFg==", + "peerDependencies": { + "@capacitor/core": "next" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.12.3.tgz", + "integrity": "sha512-4tUmeLyXJnJWvTFOKtcNJ1yh0a3SsTLi2MUoyj8iUNznFRN1ZquaNe7Oukqrnki2FzZkm0J9adCNLDZxUzvj+w==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "minimatch": "^3.0.4", + "mkdirp": "^1.0.4", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.10.tgz", + "integrity": "sha512-N+srakvPaYMGkwjNDx3ASx65Zl3QG8dJgVtIB+YMOkucU+zctlv/hdP5250VKdDHSDoW9PFZoCqbqNcAPjCjXA==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.2.tgz", + "integrity": "sha512-YwrUA5ysDXHFYfL0Xed9x3sNS4P+aKlCOnnbqUa2E5HdQshHFleCJVrj1PlGTb4GgFUCDyte1v3JWLy2sz8Oqg==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "node_modules/@types/base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ZmI0sZGAUNXUfMWboWwi4LcfpoVUYldyN6Oe0oJ5cCsHDU/LlRq8nQKPXhYLOx36QYSW9bNIb1vvRrD6K7Llgw==" + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz", + "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "*", + "@types/node": "*", + "@types/responselike": "*" + } + }, + "node_modules/@types/cli-progress": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.0.tgz", + "integrity": "sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", + "dev": true, + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", + "dev": true + }, + "node_modules/@types/cordova": { + "version": "0.0.34", + "resolved": "https://registry.npmjs.org/@types/cordova/-/cordova-0.0.34.tgz", + "integrity": "sha512-rkiiTuf/z2wTd4RxFOb+clE7PF4AEJU0hsczbUdkHHBtkUmpWQpEddynNfJYKYtZFJKbq4F+brfekt1kx85IZA==" + }, + "node_modules/@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "node_modules/@types/eslint": { + "version": "8.4.3", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.3.tgz", + "integrity": "sha512-YP1S7YJRMPs+7KZKDb9G63n8YejIwW9BALq7a5j2+H4yl6iOv9CB29edho+cuFRrvmJbbaH2yiVChKLJVysDGw==", + "dev": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "dev": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true + }, + "node_modules/@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.28", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", + "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/geojson": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-1.0.6.tgz", + "integrity": "sha512-Xqg/lIZMrUd0VRmSRbCAewtwGZiAk3mEUDvV4op1tGl+LvyPcb/MIOSxTl9z+9+J+R4/vpjiCAT4xeKzH9ji1w==" + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.0.3.tgz", + "integrity": "sha512-Opp1LvvEuZdk8fSSvchK2mZwhVrsNT0JgJE9Di6MjnaIpmEXM8TLCPPrVtNTYh8+5MPdY8j9bAHMu2SSfwpZJg==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", + "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/jquery": { + "version": "3.5.14", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.14.tgz", + "integrity": "sha512-X1gtMRMbziVQkErhTQmSe2jFwwENA/Zr+PprCkF63vFq+Yt5PZ4AlKqgmeNlwgn7dhsXEK888eIW2520EpC+xg==", + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ==" + }, + "node_modules/@types/json-patch": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/@types/json-patch/-/json-patch-0.0.30.tgz", + "integrity": "sha512-MhCUjojzDhVLnZnxwPwa+rETFRDQ0ffjxYdrqOP6TBO2O0/Z64PV5tNeYApo4bc4y4frbWOrRwv/eEkXlI13Rw==" + }, + "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==" + }, + "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/jsonpath": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@types/jsonpath/-/jsonpath-0.2.0.tgz", + "integrity": "sha512-v7qlPA0VpKUlEdhghbDqRoKMxFB3h3Ch688TApBJ6v+XLDdvWCGLJIYiPKGZnS6MAOie+IorCfNYVHOPIHSWwQ==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/leaflet": { + "version": "1.7.10", + "resolved": "https://registry.npmjs.org/@types/leaflet/-/leaflet-1.7.10.tgz", + "integrity": "sha512-RzK5BYwYboOXXxyF01tp8g1J8UbdRvoaf+F/jCnVaWC42+QITB6wKvUklcX7jCMRWkzTnGO9NLg7A6SzrlGALA==", + "dev": true, + "dependencies": { + "@types/geojson": "*" + } + }, + "node_modules/@types/leaflet.markercluster": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@types/leaflet.markercluster/-/leaflet.markercluster-1.5.0.tgz", + "integrity": "sha512-2Qje1CGibdaCZaeCtEycQ/TpX4fsiK81NTmkdHotn0dL/4M1QvmeXiiLAHLnv1GrZBn7DY6mzedBsHmq5REKHA==", + "dev": true, + "dependencies": { + "@types/leaflet": "*" + } + }, + "node_modules/@types/marked": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.0.3.tgz", + "integrity": "sha512-HnMWQkLJEf/PnxZIfbm0yGJRRZYYMhb++O9M36UCTA9z53uPvVoSlAwJr3XOpDEryb7Hwl1qAx/MV6YIW1RXxg==" + }, + "node_modules/@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/morgan": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz", + "integrity": "sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "14.18.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.18.tgz", + "integrity": "sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig==" + }, + "node_modules/@types/nodemailer": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/@types/nodemailer/-/nodemailer-6.4.4.tgz", + "integrity": "sha512-Ksw4t7iliXeYGvIQcSIgWQ5BLuC/mljIEbjf615svhZL10PE9t+ei8O9gDaD3FPCasUJn9KTLwz2JFJyiiyuqw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", + "dev": true + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", + "dev": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz", + "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==", + "dev": true + }, + "node_modules/@types/semver": { + "version": "7.3.9", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz", + "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", + "dev": true, + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/sinonjs__fake-timers": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz", + "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==", + "dev": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz", + "integrity": "sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==" + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/traverse": { + "version": "0.6.32", + "resolved": "https://registry.npmjs.org/@types/traverse/-/traverse-0.6.32.tgz", + "integrity": "sha512-RBz2uRZVCXuMg93WD//aTS5B120QlT4lR/gL+935QtGsKHLS6sCtZBaKfWjIfk7ZXv/r8mtGbwjVIee6/3XTow==" + }, + "node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "node_modules/@types/wait-on": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@types/wait-on/-/wait-on-5.3.1.tgz", + "integrity": "sha512-2FFOKCF/YydrMUaqg+fkk49qf0e5rDgwt6aQsMzFQzbS419h2gNOXyiwp/o2yYy27bi/C1z+HgfncryjGzlvgQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yaml": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz", + "integrity": "sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==", + "deprecated": "This is a stub types definition. yaml provides its own type definitions, so you do not need this installed.", + "dependencies": { + "yaml": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.26.0.tgz", + "integrity": "sha512-oGCmo0PqnRZZndr+KwvvAUvD3kNE4AfyoGCwOZpoCncSh4MVD06JTE8XQa2u9u+NX5CsyZMBTEc2C72zx38eYA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/type-utils": "5.26.0", + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.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/eslint-plugin/node_modules/@typescript-eslint/types": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", + "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/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.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/eslint-plugin/node_modules/@typescript-eslint/utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "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/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.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/@typescript-eslint/eslint-plugin/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/eslint-plugin/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/eslint-plugin/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/@typescript-eslint/eslint-plugin/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/@typescript-eslint/experimental-utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.17.0.tgz", + "integrity": "sha512-U4sM5z0/ymSYqQT6I7lz8l0ZZ9zrya5VIwrwAP5WOJVabVtVsIpTMxPQe+D3qLyePT+VlETUTO2nA1+PufPx9Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.17.0" + }, + "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/parser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.26.0.tgz", + "integrity": "sha512-n/IzU87ttzIdnAH5vQ4BBDnLPly7rC5VnjN3m0xBG82HK6rhRxnCb3w/GyWbNDghPd+NktJqB/wl6+YkzZ5T5Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.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/parser/node_modules/@typescript-eslint/types": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", + "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/parser/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.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/parser/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.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/@typescript-eslint/parser/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/@typescript-eslint/parser/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/@typescript-eslint/scope-manager": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz", + "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.26.0.tgz", + "integrity": "sha512-7ccbUVWGLmcRDSA1+ADkDBl5fP87EJt0fnijsMFTVHXKGduYMgienC/i3QwoVhDADUAPoytgjbZbCOMj4TY55A==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.26.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.26.0.tgz", + "integrity": "sha512-gVzTJUESuTwiju/7NiTb4c5oqod8xt5GhMbExKsCTp6adU3mya6AGJ4Pl9xC7x2DX9UYFsjImC0mA62BCY22Iw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.26.0.tgz", + "integrity": "sha512-8794JZFE1RN4XaExLWLI2oSXsVImNkl79PzTOOWt9h0UHROwJedNOD2IJyfL0NbddFllcktGIO2aOu10avQQyA==", + "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/type-utils/node_modules/@typescript-eslint/typescript-estree": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.26.0.tgz", + "integrity": "sha512-EyGpw6eQDsfD6jIqmXP3rU5oHScZ51tL/cZgFbFBvWuCwrIptl+oueUZzSmLtxFuSOQ9vDcJIs+279gnJkfd1w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/visitor-keys": "5.26.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/type-utils/node_modules/@typescript-eslint/utils": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.26.0.tgz", + "integrity": "sha512-PJFwcTq2Pt4AMOKfe3zQOdez6InIDOjUJJD3v3LyEtxHGVVRK3Vo7Dd923t/4M9hSH2q2CLvcTdxlLPjcIk3eg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.26.0", + "@typescript-eslint/types": "5.26.0", + "@typescript-eslint/typescript-estree": "5.26.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "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/type-utils/node_modules/@typescript-eslint/visitor-keys": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.26.0.tgz", + "integrity": "sha512-wei+ffqHanYDOQgg/fS6Hcar6wAWv0CUPQ3TZzOWd2BLfgP539rb49bwua8WRAs7R6kOSLn82rfEu2ro6Llt8Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.26.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/@typescript-eslint/type-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/type-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/type-utils/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/@typescript-eslint/type-utils/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/@typescript-eslint/types": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz", + "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==", + "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.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz", + "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/visitor-keys": "5.17.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "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/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/@typescript-eslint/typescript-estree/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/@typescript-eslint/utils": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz", + "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.17.0", + "@typescript-eslint/types": "5.17.0", + "@typescript-eslint/typescript-estree": "5.17.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "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/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.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz", + "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.17.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "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/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "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==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/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-node/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/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==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/add-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", + "integrity": "sha512-qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==", + "dev": true + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adjust-sourcemap-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.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==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.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==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", + "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "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/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-gray": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", + "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "dev": true, + "dependencies": { + "ansi-wrap": "0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "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==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-crypt": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.5.tgz", + "integrity": "sha512-ICnYQH+DFVmw+S4Q0QY2XRXD8Ne8ewh8HgbuFH4K7022zCxgHM0Hz1xkRnUlEfAXNbwp1Cnhbedu60USIfDxvg==", + "dev": true, + "dependencies": { + "unix-crypt-td-js": "^1.1.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/apache-md5": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.7.tgz", + "integrity": "sha512-JtHjzZmJxtzfTSjsCyHgPR155HBe5WGyUyHTaEkfy46qhwCFKx1Epm6nAxgUG3WfUZP1dWhGqj9Z2NOBeZ+uBw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "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/are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "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==" + }, + "node_modules/aria-query": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", + "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.10.2", + "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg==", + "dev": true + }, + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha512-e/JfLiSoakfmL4wmTGPjv0HpTICVmxwXgYOB8x+mzozHL8v+dSfCbrJ8J8hJ0YBP0XcYu1aLZ6b/3TnxNK3P2A==", + "dev": true, + "dependencies": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + } + }, + "node_modules/ast-transform/node_modules/escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha512-yLy3Cc+zAC0WSmoT2fig3J87TpQ8UaZGx8ahCAs9FL8qNbyV7CVyPKS74DG4bsHiL5ew9sxdYx131OkBQMFnvA==", + "dev": true, + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/ast-transform/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha512-rp5dMKN8zEs9dfi9g0X1ClLmV//WRyk/R15mppFNICIFRG5P92VP7Z04p8pk++gABo9W2tY+kHyu6P1mEHgmTA==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-transform/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha512-FpCjJDfmo3vsc/1zKSeqR5k42tcIhxFIlvq+h9j0fO2q/h2uLKyweq7rYJ+0CoVvrGQOxIS5wyBrW/+vF58BUQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-transform/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha512-x/iYH53X3quDwfHRz4y8rn4XcEwwCJeWsul9pF1zldMbGtgOtMNBEOuYWwB1EQlK2LRa1fev3YAgym/RElp5Cg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-transform/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==", + "dev": true, + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha512-RIOpVnVlltB6PcBJ5BMLx+H+6JJ/zjDGU0t7f0L6c2M1dqcK92VQopLBlPQ9R80AVXelfqYgjcPLtHtDbNFg0Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "dependencies": { + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axios": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz", + "integrity": "sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==", + "dependencies": { + "follow-redirects": "^1.14.7" + } + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", + "dev": true + }, + "node_modules/babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.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-polyfill-corejs2": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/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-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.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==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, + "node_modules/better-ajv-errors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/better-ajv-errors/-/better-ajv-errors-1.1.2.tgz", + "integrity": "sha512-xpFTC7JqkSGkvchJlH4IFtmwZ5SXomh0FqbEVEHRcXl/aiHh9nM/dnNnGTlxjrFCjWOVLLWpcNW1Hcrzs55/lg==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "@humanwhocodes/momoa": "^2.0.2", + "chalk": "^4.1.2", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0 < 4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "ajv": "4.11.8 - 8" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blob-util": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz", + "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==", + "dev": true + }, + "node_modules/block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==", + "dev": true, + "dependencies": { + "inherits": "~2.0.0" + }, + "engines": { + "node": "0.4 || >=0.5.8" + } + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha512-RaVTblr+OnEli0r/ud8InrU7D+G0y6aJhlxaLa6Pwty4+xoxboF1BsUI45tujvRpbj9dQVoglChqonGAsjEBYg==", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/bplist-parser": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.3.2.tgz", + "integrity": "sha512-apC2+fspHGI3mMKj+dGevkGo/tCqVB8jMb6i+OX+E29p0Iposz07fABkRIfVUPNd5A5VbuOz1bZbnmkKLYF+wQ==", + "dev": true, + "dependencies": { + "big-integer": "1.6.x" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "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==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dev": true, + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brfs/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/brfs/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/brfs/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/brfs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/brfs/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/brotli": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.3.tgz", + "integrity": "sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==", + "dev": true, + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dev": true, + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==", + "dev": true + }, + "node_modules/browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha512-VrhjbZ+Ba5mDiSYEuPelekQMfTbhcA2DhLk2VQWqdcCROWeFqlTcXZ7yfRkXCIl8E+g4gINJYJiRB7WEtfomAQ==", + "dev": true, + "dependencies": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, + "node_modules/browserslist": { + "version": "4.20.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz", + "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==", + "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.30001349", + "electron-to-chromium": "^1.4.147", + "escalade": "^3.1.1", + "node-releases": "^2.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/browserstack/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/browserstack/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/browserstack/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==", + "dev": true, + "engines": { + "node": ">=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/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cachedir": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz", + "integrity": "sha512-A+Fezp4zxnit6FanDmv9EqXNAi3vt9DWp51/71UEhXukb7QUuvtv9344h91dyAxuTLoSYJFU299qzR3tzwPAhw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "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/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001352", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz", + "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/capacitor-secure-storage-plugin": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/capacitor-secure-storage-plugin/-/capacitor-secure-storage-plugin-0.7.0.tgz", + "integrity": "sha512-F4y9Umv5j5sleXPRzAWkYHhmUHlIiPPSVebjTrw8lec3t2SZGO4sk91MbDlL+IO68N54LDqDxsD9Fa/02oNhmQ==", + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", + "dev": true + }, + "node_modules/chai": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz", + "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "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/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "engines": { + "node": "*" + } + }, + "node_modules/check-more-types": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz", + "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.11", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.11.tgz", + "integrity": "sha512-bQwNaDIBKID5ts/DsdhxrjqFXYfLw4ste+wMKqWA8DyKcS4qwsPP4Bk8ZNaTJjvpiX/qW3BT4sU7d6Bh5i+dag==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio-select/node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cheerio-select/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/cheerio-select/node_modules/entities": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/entities": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "dependencies": { + "entities": "^4.3.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/cheerio/node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz", + "integrity": "sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==", + "dev": true + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } + }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "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-progress": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/cli-progress/-/cli-progress-3.11.1.tgz", + "integrity": "sha512-TTMA2LHrYaZeNMcgZGO10oYqj9hvd03pltNtVbu4ddeyDTHlYV7gWxsFiuvaQlgwMBFCv1TukcjiODWFlb16tQ==", + "dependencies": { + "string-width": "^4.2.3" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.1.tgz", + "integrity": "sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table3": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.2.tgz", + "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0" + }, + "engines": { + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" + } + }, + "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/cli-truncate/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/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "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/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha512-yjLXh88P599UOyPTFX0POsd7WxnbsVsGohcwzHOLspIhhpalPw1BcqED8NblyZLKcGrL8dTgMlcaZxV2jAD41Q==", + "dependencies": { + "mimic-response": "^1.0.0" + } + }, + "node_modules/code-block-writer": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-11.0.0.tgz", + "integrity": "sha512-GEqWvEWWsOvER+g9keO4ohFoD3ymwyCnqY3hoTr7GZipYFwEhMHJw+TtV0rfgRhNImM6QWZGO2XYjlJVyYT62w==", + "dev": true, + "dependencies": { + "tslib": "2.3.1" + } + }, + "node_modules/code-block-writer/node_modules/tslib": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", + "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", + "dev": true + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/colorette": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.17.tgz", + "integrity": "sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.2.0.tgz", + "integrity": "sha512-e2i4wANQiSXgnrBlIatyHtP1odfUp0BbV5Y5nEGbxtIrStkEOAAzCUirvLBNXHLr7kwLvJl6V+4V3XV9x7Wd9w==", + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compress-brotli": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz", + "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==", + "dependencies": { + "@types/json-buffer": "~3.0.0", + "json-buffer": "~3.0.1" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/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/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/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/connect/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/connect/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/conventional-changelog": { + "version": "3.1.25", + "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.25.tgz", + "integrity": "sha512-ryhi3fd1mKf3fSjbLXOfK2D06YwKNic1nC9mWqybBHdObPd8KJ2vjaXZfYj1U23t+V8T8n0d7gwnc9XbIdFbyQ==", + "dev": true, + "dependencies": { + "conventional-changelog-angular": "^5.0.12", + "conventional-changelog-atom": "^2.0.8", + "conventional-changelog-codemirror": "^2.0.8", + "conventional-changelog-conventionalcommits": "^4.5.0", + "conventional-changelog-core": "^4.2.1", + "conventional-changelog-ember": "^2.0.9", + "conventional-changelog-eslint": "^3.0.9", + "conventional-changelog-express": "^2.0.6", + "conventional-changelog-jquery": "^3.0.11", + "conventional-changelog-jshint": "^2.0.9", + "conventional-changelog-preset-loader": "^2.3.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-angular": { + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz", + "integrity": "sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-atom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz", + "integrity": "sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-cli": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-cli/-/conventional-changelog-cli-2.2.2.tgz", + "integrity": "sha512-8grMV5Jo8S0kP3yoMeJxV2P5R6VJOqK72IiSV9t/4H5r/HiRqEBQ83bYGuz4Yzfdj4bjaAEhZN/FFbsFXr5bOA==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog": "^3.1.24", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "tempfile": "^3.0.0" + }, + "bin": { + "conventional-changelog": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-codemirror": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz", + "integrity": "sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "4.6.3", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.6.3.tgz", + "integrity": "sha512-LTTQV4fwOM4oLPad317V/QNQ1FY4Hju5qeBIM1uTHbrnCE+Eg4CdRZ3gO2pUeR+tzWdp80M2j3qFFEDWVqOV4g==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "lodash": "^4.17.15", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-core": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.4.tgz", + "integrity": "sha512-gDVS+zVJHE2v4SLc6B0sLsPiloR0ygU7HaDW14aNJE1v4SlqJPILPl/aJC7YdtRE4CybBf8gDwObBvKha8Xlyg==", + "dev": true, + "dependencies": { + "add-stream": "^1.0.0", + "conventional-changelog-writer": "^5.0.0", + "conventional-commits-parser": "^3.2.0", + "dateformat": "^3.0.0", + "get-pkg-repo": "^4.0.0", + "git-raw-commits": "^2.0.8", + "git-remote-origin-url": "^2.0.0", + "git-semver-tags": "^4.1.1", + "lodash": "^4.17.15", + "normalize-package-data": "^3.0.0", + "q": "^1.5.1", + "read-pkg": "^3.0.0", + "read-pkg-up": "^3.0.0", + "through2": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-ember": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz", + "integrity": "sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-eslint": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz", + "integrity": "sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-express": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz", + "integrity": "sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jquery": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz", + "integrity": "sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw==", + "dev": true, + "dependencies": { + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-jshint": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz", + "integrity": "sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA==", + "dev": true, + "dependencies": { + "compare-func": "^2.0.0", + "q": "^1.5.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-preset-loader": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", + "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-5.0.1.tgz", + "integrity": "sha512-5WsuKUfxW7suLblAbFnxAcrvf6r+0b7GvNaWUwUIk0bXMnENP/PEieGKVUQrjPqwPT4o3EPAASBXiY6iHooLOQ==", + "dev": true, + "dependencies": { + "conventional-commits-filter": "^2.0.7", + "dateformat": "^3.0.0", + "handlebars": "^4.7.7", + "json-stringify-safe": "^5.0.1", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "semver": "^6.0.0", + "split": "^1.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-changelog-writer": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-changelog-writer/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/conventional-commits-filter": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz", + "integrity": "sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA==", + "dev": true, + "dependencies": { + "lodash.ismatch": "^4.4.0", + "modify-values": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/conventional-commits-parser": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz", + "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", + "dev": true, + "dependencies": { + "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/convert-source-map/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/cookiejar": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.1.tgz", + "integrity": "sha512-nr81NhCAIpAWXGCK5thrKmfCQ6GDY0L5RN0U+BnIn/7Us55+UCex5ANNsNKmIVtDRnk0Ecf+/kzp9SUVrrBMLg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "engines": { + "node": ">= 12.20.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", + "dev": true, + "dependencies": { + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cordova-plugin-calendar": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/cordova-plugin-calendar/-/cordova-plugin-calendar-5.1.6.tgz", + "integrity": "sha512-aaK5XRHIiR+1AYEwmXbFL98Q/I62OoUMAbxK0DTpICo0M3luihomr0S+YXstDLL0MyIKOB3WtRHVuCP4y97kHw==", + "engines": { + "cordovaDependencies": { + "3.0.0": { + "cordova-android": ">=6.3.0" + } + } + } + }, + "node_modules/cordova-plugin-file-opener2": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/cordova-plugin-file-opener2/-/cordova-plugin-file-opener2-3.0.5.tgz", + "integrity": "sha512-tjLHDamH5+y0bJZYVe2967L1S4R8tL4Y0rJUzJGoxsyiw3FUlrJNS199POOpzZZ6Xhlntn9a2o7+84r1dMN21A==", + "engines": { + "cordova": ">=6.0.0" + } + }, + "node_modules/cordova-res": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/cordova-res/-/cordova-res-0.15.4.tgz", + "integrity": "sha512-TjFZhjUtK8qq4DVrgR+KI7tKcUL704cnkTPRhHbKlCPzefHoz1tBOX93wc76dOMmOWKTsbJz83DIm6mqdp5Pmg==", + "dev": true, + "dependencies": { + "@ionic/utils-array": "^2.1.5", + "@ionic/utils-fs": "^3.1.5", + "debug": "^4.2.0", + "elementtree": "^0.1.7", + "sharp": "^0.29.2", + "tslib": "^2.0.3" + }, + "bin": { + "cordova-res": "bin/cordova-res" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/core-js": { + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", + "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz", + "integrity": "sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==", + "dev": true, + "dependencies": { + "browserslist": "^4.20.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.22.8", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.8.tgz", + "integrity": "sha512-bOxbZIy9S5n4OVH63XaLVXZ49QKicjowDx/UELyJ68vxfCRpYsbyh/WNZNfEfAk+ekA8vSjt+gCDpvh672bc3w==", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/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/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", + "dev": true + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.5.1.tgz", + "integrity": "sha512-gEy2w9AnJNnD9Kuo4XAP9VflW/ujKoS9c/syO+uWMlm5igc7LysKzPXaDoR2vroROkSwsTS2tGr1yGGEbZOYZQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.2.15", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "dev": true, + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css/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/cssdb": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-5.1.0.tgz", + "integrity": "sha512-/vqjXhv1x9eGkE/zO6o8ZOI7dgdZbLVLUGyVRbPgk6YipXbW87YzUCcO+Jrmi5bwJlAH6oD+MNeZyRgXea1GZw==", + "dev": true + }, + "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/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", + "dev": true + }, + "node_modules/cypress": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/cypress/-/cypress-10.0.3.tgz", + "integrity": "sha512-8C82XTybsEmJC9POYSNITGUhMLCRwB9LadP0x33H+52QVoBjhsWvIzrI+ybCe0+TyxaF0D5/9IL2kSTgjqCB9A==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@cypress/request": "^2.88.10", + "@cypress/xvfb": "^1.2.4", + "@types/node": "^14.14.31", + "@types/sinonjs__fake-timers": "8.1.1", + "@types/sizzle": "^2.3.2", + "arch": "^2.2.0", + "blob-util": "^2.0.2", + "bluebird": "^3.7.2", + "buffer": "^5.6.0", + "cachedir": "^2.3.0", + "chalk": "^4.1.0", + "check-more-types": "^2.24.0", + "cli-cursor": "^3.1.0", + "cli-table3": "~0.6.1", + "commander": "^5.1.0", + "common-tags": "^1.8.0", + "dayjs": "^1.10.4", + "debug": "^4.3.2", + "enquirer": "^2.3.6", + "eventemitter2": "^6.4.3", + "execa": "4.1.0", + "executable": "^4.1.1", + "extract-zip": "2.0.1", + "figures": "^3.2.0", + "fs-extra": "^9.1.0", + "getos": "^3.2.1", + "is-ci": "^3.0.0", + "is-installed-globally": "~0.4.0", + "lazy-ass": "^1.6.0", + "listr2": "^3.8.3", + "lodash": "^4.17.21", + "log-symbols": "^4.0.0", + "minimist": "^1.2.6", + "ospath": "^1.2.2", + "pretty-bytes": "^5.6.0", + "proxy-from-env": "1.0.0", + "request-progress": "^3.0.0", + "semver": "^7.3.2", + "supports-color": "^8.1.1", + "tmp": "~0.2.1", + "untildify": "^4.0.0", + "yauzl": "^2.10.0" + }, + "bin": { + "cypress": "bin/cypress" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/cypress/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cypress/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "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/cypress/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cypress/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/cypress/node_modules/proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==", + "dev": true + }, + "node_modules/cypress/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/cypress/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/dargs": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", + "integrity": "sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dash-ast": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-2.0.1.tgz", + "integrity": "sha512-5TXltWJGc+RdnabUGzhRae1TRq6m4gr+3K2wQX0is5/F2yS6MJXJvLyI3ErAnsAXuJoGqvfVD5icRgim07DrxQ==", + "dev": true + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", + "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/date-format": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz", + "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/dayjs": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.3.tgz", + "integrity": "sha512-xxwlswWOlGhzgQ4TKzASQkUhqERI3egRNqgV4ScR8wlANA/A9tZ7miXa44vTTKEq5l7vWoL5G57bG3zA+Kow0A==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/decache": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/decache/-/decache-4.6.1.tgz", + "integrity": "sha512-ohApBM8u9ygepJCjgBrEZSSxPjc0T/PJkD+uNyxXPkqudyUpdXpwJYp0VISm2WrPVzASU6DZyIi6BWdyw7uJ2Q==", + "dev": true, + "dependencies": { + "callsite": "^1.0.0" + } + }, + "node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "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==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/degenerator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", + "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", + "dev": true, + "dependencies": { + "ast-types": "^0.13.2", + "escodegen": "^1.8.1", + "esprima": "^4.0.0", + "vm2": "^3.9.8" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/degenerator/node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "dev": true, + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/del": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", + "integrity": "sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==", + "dependencies": { + "globby": "^11.0.1", + "graceful-fs": "^4.2.4", + "is-glob": "^4.0.1", + "is-path-cwd": "^2.2.0", + "is-path-inside": "^3.0.2", + "p-map": "^4.0.0", + "rimraf": "^3.0.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dev": true, + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==", + "dev": true + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", + "dev": true + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "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==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", + "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha512-Ix5PrWjphuSoUXV/Zv5gaFHjnaJtb02F2+Si3Ht9dyJ87+Z/lMmy+dpNHtTGraNK958ndXq2i+GLkWsWHcKaBQ==", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/dom7": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-4.0.4.tgz", + "integrity": "sha512-DSSgBzQ4rJWQp1u6o+3FVwMNnT5bzQbMb+o31TjYYeRi05uAcpF8koxdfzeoe5ElzPmua7W7N28YJhF7iEKqIw==", + "dependencies": { + "ssr-window": "^4.0.0" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/dommatrix": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/dommatrix/-/dommatrix-1.0.3.tgz", + "integrity": "sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==", + "dev": true + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.3.tgz", + "integrity": "sha512-/nt74Rm+PcfnirXGEdhZleTwGC2LMnuKTeeTIlI82xb5loBBoXNYzr2ezCroPSMtilK8EZIfcNZwOcHN+ib1Lg==", + "dev": true, + "engines": [ + "node >=0.2.6" + ], + "bin": { + "dottojs": "bin/dot-packer" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/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/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", + "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.152", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz", + "integrity": "sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg==", + "dev": true + }, + "node_modules/elementtree": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/elementtree/-/elementtree-0.1.7.tgz", + "integrity": "sha512-wkgGT6kugeQk/P6VZ/f4T+4HB41BVgNBq5CDIZVbQ02nvTVqAiVTbskxxu3eA/X96lMlfYOwnLQpN2v5E1zDEg==", + "dev": true, + "dependencies": { + "sax": "1.1.4" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/elementtree/node_modules/sax": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.1.4.tgz", + "integrity": "sha512-5f3k2PbGGp+YtKJjOItpg3P99IMD84E4HOvcfleTb5joCHNXYLsR9yWFPOYGgaeMPDubQILTCMdsFb2OMeOjtg==", + "dev": true + }, + "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==" + }, + "node_modules/emoji-toolkit": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/emoji-toolkit/-/emoji-toolkit-6.6.0.tgz", + "integrity": "sha512-pEu0kow2p1N8zCKnn/L6H0F3rWUBB3P3hVjr/O5yl1fK7N9jU4vO4G7EFapC5Y3XwZLUCY0FZbOPyTkH+4V2eQ==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "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/enhanced-resolve": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "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-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/es5-ext": { + "version": "0.10.61", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.61.tgz", + "integrity": "sha512-yFhIqQAzu2Ca2I4SE2Au3rxVfmohU9Y7wqGR+s7+H7krk26NXhIRAZDgqd6xqjCEFUomDEA3/Bo/7fKmIkW1kA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha512-mz3UqCh0uPCIqsw1SSAkB/p0rOzF/M0V++vyN7JqlPtSW/VsYgQBvVvqMLmfBuyMzTpLnNqi6JmcSizs4jy19A==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha512-7S8YXIcUfPMOr3rqJBVMePAbRsD1nWeSMQ86K/lDI76S3WKXz+KWILvTIPbTroubOkZTGh+b+7/xIIphZXNYbA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set/node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha512-exfuQY8UGtn/N+gL1iKkH8fpNd5sJ760nJq6mmZAHldfxMD5kX07lbQuYlspoXsuknXNv9Fb7y2GsPOnQIbxHg==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.22.tgz", + "integrity": "sha512-k1Uu4uC4UOFgrnTj2zuj75EswFSEBK+H6lT70/DdS4mTAOfs2ECv2I9ZYvr3w0WL0T4YItzJdK7fPNxcPw6YmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.22.tgz", + "integrity": "sha512-d8Ceuo6Vw6HM3fW218FB6jTY6O3r2WNcTAU0SGsBkXZ3k8SDoRLd3Nrc//EqzdgYnzDNMNtrWegK2Qsss4THhw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.22.tgz", + "integrity": "sha512-YAt9Tj3SkIUkswuzHxkaNlT9+sg0xvzDvE75LlBo4DI++ogSgSmKNR6B4eUhU5EUUepVXcXdRIdqMq9ppeRqfw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.22.tgz", + "integrity": "sha512-ek1HUv7fkXMy87Qm2G4IRohN+Qux4IcnrDBPZGXNN33KAL0pEJJzdTv0hB/42+DCYWylSrSKxk3KUXfqXOoH4A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.22.tgz", + "integrity": "sha512-zPh9SzjRvr9FwsouNYTqgqFlsMIW07O8mNXulGeQx6O5ApgGUBZBgtzSlBQXkHi18WjrosYfsvp5nzOKiWzkjQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.22.tgz", + "integrity": "sha512-SnpveoE4nzjb9t2hqCIzzTWBM0RzcCINDMBB67H6OXIuDa4KqFqaIgmTchNA9pJKOVLVIKd5FYxNiJStli21qg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.22.tgz", + "integrity": "sha512-Zcl9Wg7gKhOWWNqAjygyqzB+fJa19glgl2JG7GtuxHyL1uEnWlpSMytTLMqtfbmRykIHdab797IOZeKwk5g0zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.22.tgz", + "integrity": "sha512-soPDdbpt/C0XvOOK45p4EFt8HbH5g+0uHs5nUKjHVExfgR7du734kEkXR/mE5zmjrlymk5AA79I0VIvj90WZ4g==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.22.tgz", + "integrity": "sha512-8q/FRBJtV5IHnQChO3LHh/Jf7KLrxJ/RCTGdBvlVZhBde+dk3/qS9fFsUy+rs3dEi49aAsyVitTwlKw1SUFm+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.22.tgz", + "integrity": "sha512-SiNDfuRXhGh1JQLLA9JPprBgPVFOsGuQ0yDfSPTNxztmVJd8W2mX++c4FfLpAwxuJe183mLuKf7qKCHQs5ZnBQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.22.tgz", + "integrity": "sha512-6t/GI9I+3o1EFm2AyN9+TsjdgWCpg2nwniEhjm2qJWtJyJ5VzTXGUU3alCO3evopu8G0hN2Bu1Jhz2YmZD0kng==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.22.tgz", + "integrity": "sha512-AyJHipZKe88sc+tp5layovquw5cvz45QXw5SaDgAq2M911wLHiCvDtf/07oDx8eweCyzYzG5Y39Ih568amMTCQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.22.tgz", + "integrity": "sha512-Sz1NjZewTIXSblQDZWEFZYjOK6p8tV6hrshYdXZ0NHTjWE+lwxpOpWeElUGtEmiPcMT71FiuA9ODplqzzSxkzw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.22.tgz", + "integrity": "sha512-TBbCtx+k32xydImsHxvFgsOCuFqCTGIxhzRNbgSL1Z2CKhzxwT92kQMhxort9N/fZM2CkRCPPs5wzQSamtzEHA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.22.tgz", + "integrity": "sha512-vK912As725haT313ANZZZN+0EysEEQXWC/+YE4rQvOQzLuxAQc2tjbzlAFREx3C8+uMuZj/q7E5gyVB7TzpcTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.22.tgz", + "integrity": "sha512-/mbJdXTW7MTcsPhtfDsDyPEOju9EOABvCjeUU2OJ7fWpX/Em/H3WYDa86tzLUbcVg++BScQDzqV/7RYw5XNY0g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-wasm": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.22.tgz", + "integrity": "sha512-FOSAM29GN1fWusw0oLMv6JYhoheDIh5+atC72TkJKfIUMID6yISlicoQSd9gsNSFsNBvABvtE2jR4JB1j4FkFw==", + "dev": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.22.tgz", + "integrity": "sha512-1vRIkuvPTjeSVK3diVrnMLSbkuE36jxA+8zGLUOrT4bb7E/JZvDRhvtbWXWaveUc/7LbhaNFhHNvfPuSw2QOQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.22.tgz", + "integrity": "sha512-AxjIDcOmx17vr31C5hp20HIwz1MymtMjKqX4qL6whPj0dT9lwxPexmLj6G1CpR3vFhui6m75EnBEe4QL82SYqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.22", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.22.tgz", + "integrity": "sha512-5wvQ+39tHmRhNpu2Fx04l7QfeK3mQ9tKzDqqGR8n/4WUxsFxnVLfDRBGirIfk4AfWlxk60kqirlODPoT5LqMUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/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/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": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "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-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.3.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.2.tgz", + "integrity": "sha512-RSGN94RYzIJS/WfW3l6cXzRLfJWxvJgNQZ4w0WCaxJWDJMigtwTsILEAfKqmmPkT2rwMH/s3C7G5ChDE6cwPJg==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "42.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-42.0.0.tgz", + "integrity": "sha512-ixBsbhgWuxVaNlPTT8AyfJMlhyC5flCJFjyK3oKE8TRrwBnaHvUbuIkCM1lqg8ryYrFStL/T557zfKzX4GKSlg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.15.7", + "ci-info": "^3.3.0", + "clean-regexp": "^1.0.0", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "safe-regex": "^2.1.1", + "semver": "^7.3.5", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.8.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/eslint-plugin-unicorn/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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/eslint-plugin-unicorn/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "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==", + "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==", + "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==", + "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/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/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==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "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==" + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "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==", + "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==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/event-stream": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-4.0.1.tgz", + "integrity": "sha512-qACXdu/9VHPBzcyhdOWR5/IahhGMf0roTeZJfzz077GwylcDd90yOHLouhmv7GJ5XzPi6ekaQWd8AvPP2nOvpA==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "from": "^0.1.7", + "map-stream": "0.0.7", + "pause-stream": "^0.0.11", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through": "^2.3.8" + } + }, + "node_modules/eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", + "dev": true + }, + "node_modules/eventemitter2": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.5.tgz", + "integrity": "sha512-bXE7Dyc1i6oQElDG0jMRZJrRAn9QR2xyyFGmBdZleNmyQX0FqGYmhZIrIrpPfm/w//LTo4tVQGOGQcGCb5q9uw==", + "dev": true + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "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/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/executable/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.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/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/ext": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz", + "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==", + "dev": true, + "dependencies": { + "type": "^2.5.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.6.0.tgz", + "integrity": "sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==", + "dev": true + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/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/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fancy-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-2.0.0.tgz", + "integrity": "sha512-9CzxZbACXMUXW13tS0tI8XsGGmxWzO2DmYrGuBJOJ8k8q2K7hwfJA5qHjuPPe8wtsco33YR9wc+Rlr5wYFvhSA==", + "dev": true, + "dependencies": { + "color-support": "^1.1.3" + }, + "engines": { + "node": ">=10.13.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==" + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "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==", + "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==" + }, + "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==" + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "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==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", + "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/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/filelist/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/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==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "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/findit2": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/findit2/-/findit2-2.2.3.tgz", + "integrity": "sha512-lg/Moejf4qXovVutL0Lz4IsaPoNYMuxt4PA0nGqFxnJ1CTTGGlEO2wKgoDpwknhvZ8k4Q2F+eesgkLbG2Mxfog==", + "dev": true, + "engines": { + "node": ">=0.8.22" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==" + }, + "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==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "dev": true, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", + "dev": true + }, + "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==" + }, + "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/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/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/fstream/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", + "dev": true, + "dependencies": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/ftp/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/ftp/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "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==" + }, + "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/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "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" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "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/geojson": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/geojson/-/geojson-0.5.0.tgz", + "integrity": "sha512-/Bx5lEn+qRF4TfQ5aLu6NH+UKtvIv7Lhc487y/c8BdludrCTpiWf9wyI0RTyqg49MFefIAvFDuEi5Dfd/zgNxQ==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "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-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "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-pkg-repo": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-4.2.1.tgz", + "integrity": "sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==", + "dev": true, + "dependencies": { + "@hutson/parse-repository-url": "^3.0.0", + "hosted-git-info": "^4.0.0", + "through2": "^2.0.0", + "yargs": "^16.2.0" + }, + "bin": { + "get-pkg-repo": "src/cli.js" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-pkg-repo/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/get-pkg-repo/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/get-pkg-repo/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/get-pkg-repo/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/get-pkg-repo/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/get-pkg-repo/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/get-pkg-repo/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/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", + "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "data-uri-to-buffer": "3", + "debug": "4", + "file-uri-to-path": "2", + "fs-extra": "^8.1.0", + "ftp": "^0.3.10" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/get-uri/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/get-uri/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/get-uri/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/getos": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz", + "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==", + "dev": true, + "dependencies": { + "async": "^3.2.0" + } + }, + "node_modules/getos/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/git-raw-commits": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", + "integrity": "sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A==", + "dev": true, + "dependencies": { + "dargs": "^7.0.0", + "lodash": "^4.17.15", + "meow": "^8.0.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-remote-origin-url": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz", + "integrity": "sha512-eU+GGrZgccNJcsDH5LkXR3PB9M958hxc7sbA8DFJjrv9j4L2P/eZfKhM+QD6wyzpiv+b1BpK0XrYCxkovtjSLw==", + "dev": true, + "dependencies": { + "gitconfiglocal": "^1.0.0", + "pify": "^2.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/git-remote-origin-url/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/git-semver-tags": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.1.tgz", + "integrity": "sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA==", + "dev": true, + "dependencies": { + "meow": "^8.0.0", + "semver": "^6.0.0" + }, + "bin": { + "git-semver-tags": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/git-semver-tags/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/gitconfiglocal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz", + "integrity": "sha512-spLUXeTAVHxDtKsJc8FkFVgFtMdEN9qPGpL23VfSHx4fP4+Ds097IXLvymbnDH8FnmxX5Nr9bPw3A+AQ6mWEaQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.2" + } + }, + "node_modules/gitconfiglocal/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, + "node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "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==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/global-dirs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz", + "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==", + "dev": true, + "dependencies": { + "ini": "2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals": { + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "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==", + "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/got": { + "version": "11.8.3", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.3.tgz", + "integrity": "sha512-7gtQ5KiPh1RtGS9/Jbv1ofDpBFuq42gyfEib+ejaRBJuj/3tQFeR5+gw57e4ipaU8c/rCjvX6fkQz2lyDlGAOg==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "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==" + }, + "node_modules/guid-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/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/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/har-validator/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/har-validator/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "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==", + "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/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "dependencies": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" + } + }, + "node_modules/hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", + "dev": true + }, + "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/htmlparser2": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.0.tgz", + "integrity": "sha512-/iP1rZrSEJ0DTlPiX+jbzlA3eVkY/e8L8SozroF395fIqE3TYF/Nz7YOMAawta+vLmyJ/hkGNNPcSbMADCCXbg==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/http-auth": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-4.1.9.tgz", + "integrity": "sha512-kvPYxNGc9EKGTXvOMnTBQw2RZfuiSihK/mLw/a4pbtRueTE45S55Lw/3k5CktIf7Ak0veMKEIteDj4YkNmCzmQ==", + "dev": true, + "dependencies": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.4.3", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-auth-connect": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/http-auth-connect/-/http-auth-connect-1.0.5.tgz", + "integrity": "sha512-zykAOKpVAXyzhOLm6+xyB/RtRcfN3uDfH4Al73DIfeSb6B7nr0WToLI6UyyM6ohtcLmbBPksWXzVbEDStz8ObQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "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==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "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==", + "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/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/humanize-string": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/humanize-string/-/humanize-string-3.0.0.tgz", + "integrity": "sha512-jhWD2GAZRMELz0IEIfqpEdi0M4CMQF1GpJpBYIopFN6wT+78STiujfQTKcKqZzOJgUkIgJSo2xFeHdsg922JZQ==", + "dependencies": { + "decamelize": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/i18next": { + "version": "21.8.9", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.9.tgz", + "integrity": "sha512-PY9a/8ADVmnju1tETeglbbVQi+nM5pcJQWm9kvKMTE3GPgHHtpDsHy5HQ/hccz2/xtW7j3vuso23JdQSH0EttA==", + "funding": [ + { + "type": "individual", + "url": "https://locize.com" + }, + { + "type": "individual", + "url": "https://locize.com/i18next.html" + }, + { + "type": "individual", + "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" + } + ], + "dependencies": { + "@babel/runtime": "^7.17.2" + } + }, + "node_modules/i18next-browser-languagedetector": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-6.1.4.tgz", + "integrity": "sha512-wukWnFeU7rKIWT66VU5i8I+3Zc4wReGcuDK2+kuFhtoxBRGWGdvYI9UQmqNL/yQH1KogWwh+xGEaIPH8V/i2Zg==", + "dependencies": { + "@babel/runtime": "^7.14.6" + } + }, + "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==", + "devOptional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz", + "integrity": "sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "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==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "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==", + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "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==", + "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==" + }, + "node_modules/ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz", + "integrity": "sha512-0crLweprevJ02tTuA6ThpoAERAGyVILC4sS74uib58Xf/zSr1/ZWtmm7D5CI+bSQEaA04f0K7idaHpQbSWgiVQ==", + "dev": true, + "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.2.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/inside/-/inside-1.0.0.tgz", + "integrity": "sha512-tvFwvS4g7q6iDot/4FjtWFHwwpv6TVvEumbTdLQilk1F07ojakbXPQcvf3kMAlyNDpzKRzn+d33O3RuXODuxZQ==", + "dev": true + }, + "node_modules/install-artifact-from-github": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.1.tgz", + "integrity": "sha512-3l3Bymg2eKDsN5wQuMfgGEj2x6l5MCAv0zPL6rxHESufFVlEAKW/6oY9F1aGgvY/EgWm5+eWGRjINveL4X7Hgg==", + "bin": { + "install-from-cache": "bin/install-from-cache.js", + "save-to-github-cache": "bin/save-to-github-cache.js" + } + }, + "node_modules/ionic-appauth": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/ionic-appauth/-/ionic-appauth-0.8.5.tgz", + "integrity": "sha512-4GyFasdqLboGz4mej71UcsSM7XodpFXOcBYdtGvUKJ29p0iIB3/c5BHuGAmpiTqvUfAnGD8insimaQEE3Iensw==", + "dependencies": { + "@openid/appauth": "^1.3.1", + "guid-typescript": "^1.0.9", + "tslib": "^1.9.3" + }, + "optionalDependencies": { + "@capacitor/browser": "^1.0.2", + "@capacitor/core": "^3.1.2", + "@capacitor/storage": "^1.0.3", + "@ionic-native/core": "^5.34.0", + "@ionic-native/http": "^5.34.0", + "@ionic-native/in-app-browser": "^5.34.0", + "@ionic-native/safari-view-controller": "^5.34.0", + "@ionic-native/secure-storage": "^5.34.0", + "@ionic/storage": "^3.0.6", + "capacitor-secure-storage-plugin": "^0.6.2" + }, + "peerDependencies": { + "rxjs": "^6.6.7" + } + }, + "node_modules/ionic-appauth/node_modules/capacitor-secure-storage-plugin": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/capacitor-secure-storage-plugin/-/capacitor-secure-storage-plugin-0.6.4.tgz", + "integrity": "sha512-Uv5uRRiPmvELmtsz89gSt9i/hyliM1H19T3S7ZsUeaxQTiWj1UOzhuADSA1zwTd7tMr8WTHja7Y12uies1hBjw==", + "optional": true, + "peerDependencies": { + "@capacitor/core": "^3.0.0" + } + }, + "node_modules/ionic-appauth/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/ionicons": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-6.0.2.tgz", + "integrity": "sha512-AyKfFaUKVoBz4eB8XkU7H1R5HFnVsgq5ijqSdbXC0lES9PDK/J6LUQz6XUJq0mVVQF5k9kczSPOLMW3mszG0mQ==", + "dependencies": { + "@stencil/core": "~2.16.0" + } + }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "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-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-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz", + "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "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==", + "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-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-domain": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/is-domain/-/is-domain-0.0.1.tgz", + "integrity": "sha512-hLm9uZUDm/sk0+xZgxyJluSf4B37sg3ivzv4ndTxNCAMnWFUUsHh1u4eh2maEcEvQl3mc65a9pJ/KURGItbLIg==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "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==", + "engines": { + "node": ">=8" + } + }, + "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==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-installed-globally": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", + "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==", + "dev": true, + "dependencies": { + "global-dirs": "^3.0.0", + "is-path-inside": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "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==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "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-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-text-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", + "integrity": "sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w==", + "dev": true, + "dependencies": { + "text-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "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": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/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/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "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.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/jake": { + "version": "10.8.5", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", + "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.1.1.tgz", + "integrity": "sha512-lmUfT5XcK9KKvt3lLYzn93hc4MGzlUBowExFVgzbSW0ZCrdeyS574dfsyfRhxbg81Wj4gk+RxUiTnj7KBfDA1g==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/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/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "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/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/jetifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jetifier/-/jetifier-2.0.0.tgz", + "integrity": "sha512-J4Au9KuT74te+PCCCHKgAjyLlEa+2VyIAEPNCdE5aNkAJ6FAJcAqcdzEkSnzNksIa9NkGmC4tPiClk2e7tCJuQ==", + "dev": true, + "bin": { + "jetifier": "bin/jetify", + "jetifier-standalone": "bin/jetifier-standalone", + "jetify": "bin/jetify" + } + }, + "node_modules/joi": { + "version": "17.6.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.6.0.tgz", + "integrity": "sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw==", + "dependencies": { + "@hapi/hoek": "^9.0.0", + "@hapi/topo": "^5.0.0", + "@sideway/address": "^4.1.3", + "@sideway/formula": "^3.0.0", + "@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==" + }, + "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==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", + "dev": true + }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, + "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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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-patch": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/json-patch/-/json-patch-0.7.0.tgz", + "integrity": "sha512-9zaGTzsV6Hal5HVMC8kb4niXYQOOcq3tUp0P/GTw6HHZFPVwtCU2+mXE9q59MelL9uknALWnoKrUxnDpUX728g==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "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==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonpath-plus": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-6.0.1.tgz", + "integrity": "sha512-EvGovdvau6FyLexFH2OeXfIITlgIbgZoAZe3usiySeaIDm5QS+A10DKNpaPBBqqRSZr2HN6HVNXxtwUAr2apEw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", + "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/jszip": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jszip/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/jszip/node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/karma": { + "version": "6.3.20", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz", + "integrity": "sha512-HRNQhMuKOwKpjYlWiJP0DUrJOh+QjaI/DTaD8b9rEm4Il3tJ8MijutVZH4ts10LuUFst/CedwTS6vieCN8yTSw==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-chrome-launcher/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/mattlewis92" + } + }, + "node_modules/karma-jasmine": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.0.1.tgz", + "integrity": "sha512-FkL1Kk+JAKmim8VWU8RXKZBpl0lLI7J8LijM0/q7oP7emfB6QMZV1Az+JgqGKSLpF0tYaav+KUVFQroZUxQTHA==", + "dev": true, + "dependencies": { + "jasmine-core": "^4.1.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "karma": "^6.0.0" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", + "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", + "dev": true, + "peerDependencies": { + "jasmine-core": "^4.0.0", + "karma": "^6.0.0", + "karma-jasmine": "^5.0.0" + } + }, + "node_modules/karma-mocha-reporter": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/karma-mocha-reporter/-/karma-mocha-reporter-2.2.5.tgz", + "integrity": "sha512-Hr6nhkIp0GIJJrvzY8JFeHpQZNseuIakGac4bpw8K1+5F0tLb6l7uvXRa8mt2Z+NVwYgCct4QAfp2R2QP6o00w==", + "dev": true, + "dependencies": { + "chalk": "^2.1.0", + "log-symbols": "^2.1.0", + "strip-ansi": "^4.0.0" + }, + "peerDependencies": { + "karma": ">=0.13" + } + }, + "node_modules/karma-mocha-reporter/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/karma-mocha-reporter/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/karma-mocha-reporter/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/karma-mocha-reporter/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/karma-mocha-reporter/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/karma-mocha-reporter/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/karma-mocha-reporter/node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/karma-mocha-reporter/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/karma-mocha-reporter/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/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/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/karma/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/karma/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/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/karma/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/karma/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/katex": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.0.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/keyv": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.0.tgz", + "integrity": "sha512-C30Un9+63J0CsR7Wka5quXKqYZsT6dcRQ2aOwGcSc3RiQ4HGWpTAHlCA+puNfw2jA/s11EsxA1nCXgZRuRKMQQ==", + "dependencies": { + "compress-brotli": "^1.3.8", + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/lazy-ass": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", + "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==", + "dev": true, + "engines": { + "node": "> 0.8" + } + }, + "node_modules/leaflet": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.8.0.tgz", + "integrity": "sha512-gwhMjFCQiYs3x/Sf+d49f10ERXaEFCPr+nVTryhAW8DWbMGqJqt9G4XuIaHmFW08zYvhgdzqXGr8AlW8v8dQkA==" + }, + "node_modules/leaflet.markercluster": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz", + "integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==", + "peerDependencies": { + "leaflet": "^1.3.1" + } + }, + "node_modules/leek": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/leek/-/leek-0.0.24.tgz", + "integrity": "sha512-6PVFIYXxlYF0o6hrAsHtGpTmi06otkwNrMcmQ0K96SeSRHPREPa9J3nJZ1frliVH7XT0XFswoJFQoXsDukzGNQ==", + "dev": true, + "dependencies": { + "debug": "^2.1.0", + "lodash.assign": "^3.2.0", + "rsvp": "^3.0.21" + } + }, + "node_modules/leek/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/leek/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/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/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/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==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/license-checker": { + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/license-checker/-/license-checker-25.0.1.tgz", + "integrity": "sha512-mET5AIwl7MR2IAKYYoVBBpV0OnkKQ1xGj2IMMeEFIs42QAkEVjRtFZGWmQ28WeU7MP779iAgOaOy93Mn44mn6g==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "nopt": "^4.0.1", + "read-installed": "~4.0.3", + "semver": "^5.5.0", + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-satisfies": "^4.0.0", + "treeify": "^1.1.0" + }, + "bin": { + "license-checker": "bin/license-checker" + } + }, + "node_modules/license-checker/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/license-checker/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/license-checker/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/license-checker/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/license-checker/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/license-checker/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/license-checker/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/license-checker/node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/license-checker/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/license-checker/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/license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "dependencies": { + "webpack-sources": "^3.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-sources": { + "optional": true + } + } + }, + "node_modules/lie": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", + "integrity": "sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "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/listr2": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz", + "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==", + "dev": true, + "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/listr2/node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", + "dev": true, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/localforage": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.10.0.tgz", + "integrity": "sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==", + "dependencies": { + "lie": "3.1.1" + } + }, + "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/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha512-t3N26QR2IdSN+gqSy9Ds9pBu/J1EAFEshKlUHpJG3rvyJOYgcELIxcIeKKfZk7sjOz11cFfzJRsyFry/JyabJQ==", + "dev": true, + "dependencies": { + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha512-rFR6Vpm4HeCK1WPGvjZSJ+7yik8d8PVUdCJx5rT2pogG4Ve/2ZS7kfmO5l5T2o5V2mqlNIfSF5MZlr1+xOoYQQ==", + "dev": true + }, + "node_modules/lodash._bindcallback": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz", + "integrity": "sha512-2wlI0JRAGX8WEf4Gm1p/mv/SZ+jLijpj0jyaE/AXeuQphzCgD8ZQW4oSpoN8JAopujOFGU3KMuq7qfHBWlGpjQ==", + "dev": true + }, + "node_modules/lodash._createassigner": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz", + "integrity": "sha512-LziVL7IDnJjQeeV95Wvhw6G28Z8Q6da87LWKOPWmzBLv4u6FAT/x5v00pyGW0u38UoogNF2JnD3bGgZZDaNEBw==", + "dev": true, + "dependencies": { + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash.restparam": "^3.0.0" + } + }, + "node_modules/lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha512-RrL9VxMEPyDMHOd9uFbvMe8X55X16/cGM5IgOKgRElQZutpX89iS6vwl64duTV1/16w5JY7tuFNXqoekmh1EmA==", + "dev": true + }, + "node_modules/lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha512-De+ZbrMu6eThFti/CSzhRvTKMgQToLxbij58LMfM8JnYDNSOjkjTCIaa8ixglOeGh2nyPlakbt5bJWJ7gvpYlQ==", + "dev": true + }, + "node_modules/lodash.assign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-3.2.0.tgz", + "integrity": "sha512-/VVxzgGBmbphasTg51FrztxQJ/VgAUpol6zmJuSVSGcNg4g7FA4z7rQV8Ovr9V3vFBNWZhvKWHfpAytjTVUfFA==", + "dev": true, + "dependencies": { + "lodash._baseassign": "^3.0.0", + "lodash._createassigner": "^3.0.0", + "lodash.keys": "^3.0.0" + } + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==", + "dev": true + }, + "node_modules/lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==", + "dev": true + }, + "node_modules/lodash.ismatch": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz", + "integrity": "sha512-fPMfXjGQEV9Xsq/8MTSgUf255gawYRbjwMyDbcvDhXgV7enSZA0hynz6vMPnpAb5iONEzBHBPsT+0zes5Z301g==", + "dev": true + }, + "node_modules/lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha512-CuBsapFjcubOGMn3VD+24HOAPxM79tH+V6ivJL3CHYjtrawauDJHUk//Yew9Hvc6e9rbCrURGk8z6PC+8WJBfQ==", + "dev": true, + "dependencies": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "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==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha512-L4/arjjuq4noiUJpt3yS6KIKDtJwNe2fIYgMqyYYKoeIfV1iEqvPwhCx23o+R9dzouGihDAPN1dTIRWa7zk8tw==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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/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/log4js": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.5.2.tgz", + "integrity": "sha512-DXtpNtt+KDOMT7RHUDIur/WsSA3rntlUh9Zg4XCdV42wUuMmbFkl38+LZ92Z5QvQA7mD5kAVkLiBSEH/tvUB8A==", + "dev": true, + "dependencies": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "flatted": "^3.2.5", + "rfdc": "^1.3.0", + "streamroller": "^3.1.1" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/loglevel": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loglevel-plugin-prefix": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/loglevel-plugin-prefix/-/loglevel-plugin-prefix-0.8.4.tgz", + "integrity": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==", + "dev": true + }, + "node_modules/loupe": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz", + "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/macos-release": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.5.0.tgz", + "integrity": "sha512-EIgv+QZ9r+814gjJj0Bt5vSLJLzswGmSUbUpbi9AIr/fsN2IWFBl2NucV9PAiek+U1STK468tEkxmVYUtuAN3g==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "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/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/map-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.0.7.tgz", + "integrity": "sha512-C0X0KQmGm3N2ftbTGBhSyuydQ+vV1LC3f3zPvT3RXHXNZrvfPZcoXp/N5DOa8vedX/rTMm2CjTtivFg2STJMRQ==", + "dev": true + }, + "node_modules/marked": { + "version": "4.0.17", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz", + "integrity": "sha512-Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz", + "integrity": "sha512-W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==", + "dev": true, + "dependencies": { + "fs-monkey": "1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/meow": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", + "integrity": "sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q==", + "dev": true, + "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" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/meow/node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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/meow/node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/meow/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/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/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.3.tgz", + "integrity": "sha512-YseMB8cs8U/KCaAGQoqYmfUuhhGW0a9p9XvWXrxVOkE3/IiISTLw4ALNt7JR5B2eYauFM+PQGSbXMDmVbR7Tfw==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", + "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/modify-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz", + "integrity": "sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moment": { + "version": "2.29.3", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz", + "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==", + "engines": { + "node": "*" + } + }, + "node_modules/moniker": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/moniker/-/moniker-0.1.2.tgz", + "integrity": "sha512-Uj9iV0QYr6281G+o0TvqhKwHHWB2Q/qUTT4LPQ3qDGc0r8cbMuqQjRXPZuVZ+gcL7APx+iQgE8lcfWPrj1LsLA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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==" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha512-cnAsSVxIDsYt0v7HmC0hWZFwwXSh+E6PgCrREDuN/EsjgLwA5XRmlMHhSiDPrt6HxY1gTivEa/Zh7GtODoLevQ==", + "dev": true + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, + "node_modules/native-run": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/native-run/-/native-run-1.6.0.tgz", + "integrity": "sha512-28bz2tnNSLg0ldeB2Qn/B3r1AowGNY8XdQ23akJbRPIYi69VduIj0DDyoptiIBtFFif2C32hQtSPW3v1hPcrjA==", + "dev": true, + "dependencies": { + "@ionic/utils-fs": "^3.1.5", + "@ionic/utils-terminal": "^2.3.1", + "bplist-parser": "^0.3.0", + "debug": "^4.3.2", + "elementtree": "^0.1.7", + "ini": "^1.3.5", + "plist": "^3.0.4", + "split2": "^3.2.2", + "through2": "^4.0.2", + "tslib": "^2.3.1", + "yauzl": "^2.10.0" + }, + "bin": { + "native-run": "bin/native-run" + }, + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/native-run/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/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, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/netrc": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/netrc/-/netrc-0.1.4.tgz", + "integrity": "sha512-ye8AIYWQcP9MvoM1i0Z2jV0qed31Z8EWXYnyGNkiUAd+Fo8J+7uy90xTV8g/oAbhtjkY7iZbNTizQaXdKUuwpQ==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/ngx-logger": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/ngx-logger/-/ngx-logger-4.3.3.tgz", + "integrity": "sha512-LvHBt0OWIyjwVroecgxmZVDH+9lCYYd3gSiup9wNgtK0a3f+D+h2LCb8p9RI16wqCVFqYe/QChqJA8PGJzZTcw==", + "dependencies": { + "tslib": "^2.0.0", + "vlq": "^1.0.0" + }, + "peerDependencies": { + "@angular/common": ">6.0.0", + "@angular/core": ">6.0.0", + "rxjs": ">6.0.0" + } + }, + "node_modules/ngx-markdown": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/ngx-markdown/-/ngx-markdown-13.1.0.tgz", + "integrity": "sha512-Bm4WhMI9xSnWTzzQWs/e1+d/l0s3+eFU0Ug/lcePmiWEZAPqiceEe6akjh4+Tjp61SmZ/wmKr8Kvc8mr9moP9A==", + "dependencies": { + "@types/marked": "^4.0.2", + "emoji-toolkit": "^6.6.0", + "katex": "^0.15.1", + "marked": "^4.0.10", + "prismjs": "^1.25.0", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "@angular/common": "^13.0.0", + "@angular/core": "^13.0.0", + "@angular/platform-browser": "^13.0.0", + "rxjs": "^6.5.3 || ^7.4.0", + "zone.js": "^0.11.4" + } + }, + "node_modules/ngx-moment": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ngx-moment/-/ngx-moment-6.0.2.tgz", + "integrity": "sha512-HUvDyoJPZKLA3tc+GMQqDpVyCVT2SPfEiV7/CGj2Dwwsn//JhhQ8eTr+RzKqBzLysrXkCwlzulVVJaJ5A0FJEA==", + "dependencies": { + "tslib": "^2.3.0" + }, + "peerDependencies": { + "moment": "^2.19.3" + } + }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-abi": { + "version": "3.22.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.22.0.tgz", + "integrity": "sha512-u4uAs/4Zzmp/jjsD9cyFYDXeISfUWaAVWshPmDZOFOv4Xl4SbzTXm53I04C2uRueYJ+0t5PEtLH/owbn2Npf/w==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "dev": true, + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz", + "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==", + "dev": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-releases": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz", + "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==", + "dev": true + }, + "node_modules/nodemailer": { + "version": "6.7.5", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.7.5.tgz", + "integrity": "sha512-6VtMpwhsrixq1HDYSBBHvW0GwiWawE75dS3oal48VqRhUvKJNnKnJo2RI/bCVQubj1vgrgscMNW4DHaD6xtMCg==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "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/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.5", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", + "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "semver": "^7.3.4", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz", + "integrity": "sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^4.0.1", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist/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/npm-pick-manifest": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", + "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^8.1.2", + "semver": "^7.3.4" + } + }, + "node_modules/npm-registry-fetch": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz", + "integrity": "sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA==", + "dev": true, + "dependencies": { + "make-fetch-happen": "^10.0.1", + "minipass": "^3.1.6", + "minipass-fetch": "^1.4.1", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^8.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "dev": true, + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/@npmcli/move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/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/npm-registry-fetch/node_modules/cacache": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", + "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", + "dev": true, + "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": "^1.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/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/npm-registry-fetch/node_modules/lru-cache": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", + "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { + "version": "10.1.7", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz", + "integrity": "sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q==", + "dev": true, + "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" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "dev": true, + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/npm-registry-fetch/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/npm-registry-fetch/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.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/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "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" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nx": { + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/nx/-/nx-13.1.3.tgz", + "integrity": "sha512-clM0NQhQKYkqcNz2E3uYRMLwhp2L/9dBhJhQi9XBX4IAyA2gWAomhRIlLm5Xxg3g4h1xwSpP3eJ5t89VikY8Pw==", + "dev": true, + "dependencies": { + "@nrwl/cli": "*" + }, + "bin": { + "nx": "bin/nx.js" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "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.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "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/open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openapi-types": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-11.0.1.tgz", + "integrity": "sha512-P2pGRlHFXgP8z6vrp5P/MtftOXYtlIY1A+V0VmioOoo85NN6RSPgGbEprRAUNMIsbfRjnCPdx/r8mi8QRR7grQ==" + }, + "node_modules/opencollective-postinstall": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", + "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", + "dev": true, + "bin": { + "opencollective-postinstall": "index.js" + } + }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/opening_hours": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/opening_hours/-/opening_hours-3.8.0.tgz", + "integrity": "sha512-bRJroECQSe/itVcNmC3j9PPicxn/LBowdd1Hi+4Aa7hCswdt7w81WHfUwrEMbtk1BBYmGJEbSepl8oYYPviSuA==", + "dependencies": { + "i18next": "^21.8.3", + "i18next-browser-languagedetector": "^6.1.4", + "suncalc": "^1.9.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dev": true, + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-name": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-4.0.1.tgz", + "integrity": "sha512-xl9MAoU97MH1Xt5K9ERft2YfCAoaO6msy1OBA0ozxEC0x0TmIoE6K3QvgJMMZA9yKGLmHXNY/YZoDbiGDj4zYw==", + "dev": true, + "dependencies": { + "macos-release": "^2.5.0", + "windows-release": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/ospath": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz", + "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==", + "dev": true + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "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/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/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==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dev": true, + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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/pac-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", + "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4", + "get-uri": "3", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "5", + "pac-resolver": "^5.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "5" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pac-resolver": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", + "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", + "dev": true, + "dependencies": { + "degenerator": "^3.0.2", + "ip": "^1.1.5", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/pacote": { + "version": "12.0.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz", + "integrity": "sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.1.0", + "@npmcli/installed-package-contents": "^1.0.6", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^2.0.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^3.0.0", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^12.0.0", + "promise-retry": "^2.0.1", + "read-package-json-fast": "^2.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "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==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "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/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-html-rewriting-stream/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/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/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/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser/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/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "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==", + "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==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/pdfjs-dist": { + "version": "2.14.305", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.14.305.tgz", + "integrity": "sha512-5f7i25J1dKIBczhgfxEgNxfYNIxXEdxqo6Qb4ehY7Ja+p6AI4uUmk/OcVGXfRGm2ys5iaJJhJUwBFwv6Jl/Qww==", + "dev": true, + "dependencies": { + "dommatrix": "^1.0.1", + "web-streams-polyfill": "^3.2.1" + }, + "peerDependencies": { + "worker-loader": "^3.0.8" + }, + "peerDependenciesMeta": { + "worker-loader": { + "optional": true + } + } + }, + "node_modules/pdfmake": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.2.5.tgz", + "integrity": "sha512-NlayjehMtuZEdw2Lyipf/MxOCR2vATZQ7jn8cH0/dHwsNb+mqof9/6SW4jZT5p+So4qz+0mD21KG81+dDQSEhA==", + "dev": true, + "dependencies": { + "@foliojs-fork/linebreak": "^1.1.1", + "@foliojs-fork/pdfkit": "^0.13.0", + "iconv-lite": "^0.6.3", + "xmldoc": "^1.1.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", + "dev": true + }, + "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==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", + "dev": true, + "dependencies": { + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0" + }, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, + "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/plantuml-encoder": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/plantuml-encoder/-/plantuml-encoder-1.4.0.tgz", + "integrity": "sha512-sxMwpDw/ySY1WB2CE3+IdMuEcWibJ72DDOsXLkSmEaSzwEUaYBT6DWgOfBiHGCux4q433X6+OEFWjlVqp7gL6g==" + }, + "node_modules/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==", + "dev": true, + "dependencies": { + "base64-js": "^1.5.1", + "xmlbuilder": "^9.0.7" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==", + "dev": true + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/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/portfinder/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dev": true, + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/postcss": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.5.tgz", + "integrity": "sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg==", + "dev": true, + "dependencies": { + "nanoid": "^3.1.30", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.1.tgz", + "integrity": "sha512-wrt2VndqSLJpyBRNz9OmJcgnhI9MaongeWgapdBuUMu2a/KNJ8SENesG4SdiTnQwGO9b1VKbTWYAfCPeokLqZQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.3.tgz", + "integrity": "sha512-5fbr6FzFzjwHXKsVnkmEYrJYG8VNNzvD1tAXaPPWR97S6rhKI5uh2yOfV5TAzhDkZoq4h+chxEplFDc8GeyFtw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.0.tgz", + "integrity": "sha512-1jtE5AKnZcKq4pjOrltFHcbEM2/IvtbD1OdhZ/wqds18//bh0UmQkffcCkzDJU+/vGodfIsVQeKn+45CJvX9Bw==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", + "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.4.tgz", + "integrity": "sha512-I8epwGy5ftdzNWEYok9VjW9whC4xnelAtbajGv4adql4FIF09rnrxnA9Y8xSHN47y7gqFIv10C5+ImsLeJpKBw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.1.tgz", + "integrity": "sha512-jM+CGkTs4FcG53sMPjrrGE0rIvLDdCrqMzgDC5fLI7JHDO7o6QG8C5TQBtExb13hdBdoH9C2QVbG4jo2y9lErQ==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", + "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.6.tgz", + "integrity": "sha512-KfdC6vg53GC+vPd2+HYzsZ6obmPqOk6HY09kttU19+Gj1nC3S3XBVEXDHxkhxTohgZqzbUb94bKXvKDnYWBm/A==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-import": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.2.tgz", + "integrity": "sha512-BJ2pVK4KhUyMcqjuKs9RijV5tatNzNa73e/32aBVE/ejYPe37iH+6vAu9WvqUkB5OAYgLHzbSvzHnorybJCm9g==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.0.tgz", + "integrity": "sha512-Zb1EO9DGYfa3CP8LhINHCcTTCTLI+R3t7AX2mKsDzdgVQ/GkCpHOTgOr6HBHslP7XDdVbqgHW5vvRPMdVANQ8w==", + "dev": true, + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nesting": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.8.tgz", + "integrity": "sha512-txdb3/idHYsBbNDFo1PFY0ExCgH5nfWi8G5lO49e6iuU42TydbODTzJgF5UuL5bhgeSlnAtDgfFTDG0Cl1zaSQ==", + "dev": true, + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", + "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", + "dev": true, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true, + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.4.tgz", + "integrity": "sha512-MrgKeiiu5OC/TETQO45kV3npRjOFxEHthsqGtkh3I1rPbZSbXGD/lZVi9j13cYh+NA8PIAPyk6sGjT9QbRyvSg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.2.3.tgz", + "integrity": "sha512-Ok0DhLfwrcNGrBn8sNdy1uZqWRk/9FId0GiQ39W4ILop5GHtjJs8bu1MY9isPwHInpVEPWjb4CEcEaSbBLpfwA==", + "dev": true, + "dependencies": { + "autoprefixer": "^10.4.2", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001299", + "css-blank-pseudo": "^3.0.2", + "css-has-pseudo": "^3.0.3", + "css-prefers-color-scheme": "^6.0.2", + "cssdb": "^5.0.0", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-color-functional-notation": "^4.2.1", + "postcss-color-hex-alpha": "^8.0.2", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.2", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.3", + "postcss-double-position-gradients": "^3.0.4", + "postcss-env-function": "^4.0.4", + "postcss-focus-visible": "^6.0.3", + "postcss-focus-within": "^5.0.3", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.2", + "postcss-image-set-function": "^4.0.4", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.0.3", + "postcss-logical": "^5.0.3", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.2", + "postcss-overflow-shorthand": "^3.0.2", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.3", + "postcss-pseudo-class-any-link": "^7.0.2", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.4.tgz", + "integrity": "sha512-JxRcLXm96u14N3RzFavPIE9cRPuOqLDuzKeBsqi4oRk4vt8n0A7I0plFs/VXTg7U2n7g/XkQi0OwqTO3VWBfEg==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true, + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "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/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/detect-libc": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", + "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prismjs": { + "version": "1.28.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.28.0.tgz", + "integrity": "sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/progress/-/progress-1.1.8.tgz", + "integrity": "sha512-UdA8mJ4weIkUBO224tIarHzuHs4HuYiJvsuGT7j/SPQiUJVjYvNDBIPa0hAorduOfjGohB/qHWRa/lrrWX/mXw==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/prompts/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/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/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/protractor/node_modules/cliui/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/protractor/node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/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/protractor/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/protractor/node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/protractor/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/protractor/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/protractor/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/protractor/node_modules/wrap-ansi/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/protractor/node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", + "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.0", + "debug": "4", + "http-proxy-agent": "^4.0.0", + "https-proxy-agent": "^5.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^5.0.0", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^5.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/proxy-agent/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/proxy-agent/node_modules/socks-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", + "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", + "dev": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-agent/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "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/proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": 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/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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==", + "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/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==", + "dev": true, + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" + } + }, + "node_modules/quote-stream/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/quote-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/quote-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/quote-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/quote-stream/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/re2": { + "version": "1.17.4", + "resolved": "https://registry.npmjs.org/re2/-/re2-1.17.4.tgz", + "integrity": "sha512-xyZ4h5PqE8I9tAxTh3G0UttcK5ufrcUxReFjGzfX61vtanNbS1XZHjnwRSyPcLgChI4KLxVgOT/ioZXnUAdoTA==", + "hasInstallScript": true, + "dependencies": { + "install-artifact-from-github": "^1.3.0", + "nan": "^2.15.0", + "node-gyp": "^8.4.1" + } + }, + "node_modules/read": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.5.tgz", + "integrity": "sha512-hDLATrzYLoMu23c/69pMC6u3fO3Y0qLTIygJkEZHLOn+AO2gSapu6QgrgwX9ehyVtaRoZVZbF4IuiZPPRdGgdg==", + "dev": true, + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-cache/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-installed": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz", + "integrity": "sha512-O03wg/IYuV/VtnK2h/KXEt9VIbMUFbk3ERG0Iu4FhLZw0EP0T9znqrYDGn6ncbEsXUFaUjiVAWXHzxwt3lhRPQ==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "slide": "~1.1.3", + "util-extend": "^1.0.1" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.2" + } + }, + "node_modules/read-installed/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "dev": true, + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/read-package-json/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/read-package-json/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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/read-package-json/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha512-YFzFrVvpC6frF1sz8psoHDBGF7fLPc+llq/8NB43oagqWkx8ar5zYtsTORtOjw9W2RHLpWP+zTWwBvf1bCmcSw==", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==", + "dev": true, + "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", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "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/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "dev": true, + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/regexpu-core": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", + "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-progress": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz", + "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==", + "dev": true, + "dependencies": { + "throttleit": "^1.0.0" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/request/node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dev": true, + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "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/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "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==", + "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-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/resolve-url-loader/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/responselike": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", + "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + } + }, + "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/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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==" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true, + "engines": { + "node": "0.12.* || 4.* || 6.* || >= 7.*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "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==", + "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": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs-for-await": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", + "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", + "dev": true, + "peerDependencies": { + "rxjs": "^6.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sass": { + "version": "1.49.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.49.9.tgz", + "integrity": "sha512-YlYWkkHP9fbwaFRZQRXgDi3mXZShslVmmo+FVK3kHLUELHHEYrCmL1x6IUjC7wLS6VuJSAFXRQS/DxdsC4xL1A==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sass-loader": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.4.0.tgz", + "integrity": "sha512-7xN+8khDIzym1oL9XyS6zP6Ges+Bo2B2xbPrjdMHEYyV3AQYhd/wXeru++3ODHF0zMjYmVadblSKrPrjEkL8mg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/saucelabs/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/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/scope-analyzer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.2.tgz", + "integrity": "sha512-5cfCmsTYV/wPaRIItNxatw02ua/MThdIUNnUOCYp+3LSEJvnG804ANw2VLaavNILIfWXF1D1G2KNANkBBvInwQ==", + "dev": true, + "dependencies": { + "array-from": "^2.1.1", + "dash-ast": "^2.0.1", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/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/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "dev": true, + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "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==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==", + "dev": true + }, + "node_modules/sharp": { + "version": "0.29.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.29.3.tgz", + "integrity": "sha512-fKWUuOw77E4nhpyzCCJR1ayrttHoFHBT2U/kR/qEMRhvPEcluG4BKj324+SCO1e84+knXHwhJ1HHJGnUt4ElGA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.0.1", + "detect-libc": "^1.0.3", + "node-addon-api": "^4.2.0", + "prebuild-install": "^7.0.0", + "semver": "^7.3.5", + "simple-get": "^4.0.0", + "tar-fs": "^2.1.1", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=12.13.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/sharp/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true + }, + "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==", + "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==", + "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==", + "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==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "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": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "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==", + "engines": { + "node": ">=8" + } + }, + "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/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "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-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.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/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "dev": true + }, + "node_modules/spdx-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/spdx-compare/-/spdx-compare-1.0.0.tgz", + "integrity": "sha512-C1mDZOX0hnu0ep9dfmuoi03+eOdDoz2yvK79RxbcrVEG1NO1Ph35yW102DHWKN4pk80nwCgeMmSY5L25VE4D9A==", + "dev": true, + "dependencies": { + "array-find-index": "^1.0.2", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", + "dev": true + }, + "node_modules/spdx-ranges": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdx-ranges/-/spdx-ranges-2.1.1.tgz", + "integrity": "sha512-mcdpQFV7UDAgLpXEE/jOMqvK4LBoO0uTQg0uvXUewmEFhpiZx5yJSZITHB8w1ZahKdhfZqP5GPEOKLyEq5p8XA==", + "dev": true + }, + "node_modules/spdx-satisfies": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/spdx-satisfies/-/spdx-satisfies-4.0.1.tgz", + "integrity": "sha512-WVzZ/cXAzoNmjCWiEluEA3BjHp5tiUmmhn9MK+X0tBbR9sOqtC6UQwmgCNrAIZvNlMuBUYAaHYfb2oqlF9SwKA==", + "dev": true, + "dependencies": { + "spdx-compare": "^1.0.0", + "spdx-expression-parse": "^3.0.0", + "spdx-ranges": "^2.0.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "dev": true, + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/ssh-config": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/ssh-config/-/ssh-config-1.1.6.tgz", + "integrity": "sha512-ZPO9rECxzs5JIQ6G/2EfL1I9ho/BVZkx9HRKn8+0af7QgwAmumQ7XBFP1ggMyPMo+/tUbmv0HFdv4qifdO/9JA==", + "dev": true + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssr-window": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-4.0.2.tgz", + "integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ==" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dev": true, + "dependencies": { + "escodegen": "^1.11.1" + } + }, + "node_modules/static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/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/static-module/node_modules/magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/static-module/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/static-module/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/static-module/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/static-module/node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-combiner2/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/stream-combiner2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-combiner2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/stream-combiner2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/streamroller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", + "dev": true, + "dependencies": { + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-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==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "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": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "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/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/stylus": { + "version": "0.56.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.56.0.tgz", + "integrity": "sha512-Ev3fOb4bUElwWu4F9P9WjnnaSpc8XB9OFHSFZSKMFL1CE1oM+oFXWEgAqPmmZIyhBihuqIQlFsVTypiiS9RxeA==", + "dev": true, + "dependencies": { + "css": "^3.0.0", + "debug": "^4.3.2", + "glob": "^7.1.6", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.7", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^5.0.0" + } + }, + "node_modules/stylus/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/suncalc": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/suncalc/-/suncalc-1.9.0.tgz", + "integrity": "sha512-vMJ8Byp1uIPoj+wb9c1AdK4jpkSKVAywgHX0lqY7zt6+EWRRC3Z+0Ucfjy/0yxTVO1hwwchZe4uoFNqrIC24+A==" + }, + "node_modules/superagent": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/superagent/-/superagent-5.3.1.tgz", + "integrity": "sha512-wjJ/MoTid2/RuGCOFtlacyGNxN9QLMgcpYLDQlWFIhhdJ93kNscFonGvrpAHSCVjRVj++DGCglocF7Aej1KHvQ==", + "deprecated": "Please upgrade to v7.0.2+ of superagent. We have fixed numerous issues with streams, form-data, attach(), filesystem errors not bubbling up (ENOENT on attach()), and all tests are now passing. See the releases tab for more information at .", + "dev": true, + "dependencies": { + "component-emitter": "^1.3.0", + "cookiejar": "^2.1.2", + "debug": "^4.1.1", + "fast-safe-stringify": "^2.0.7", + "form-data": "^3.0.0", + "formidable": "^1.2.2", + "methods": "^1.1.2", + "mime": "^2.4.6", + "qs": "^6.9.4", + "readable-stream": "^3.6.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 7.0.0" + } + }, + "node_modules/superagent-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/superagent-proxy/-/superagent-proxy-3.0.0.tgz", + "integrity": "sha512-wAlRInOeDFyd9pyonrkJspdRAxdLrcsZ6aSnS+8+nu4x1aXbz6FWSTT9M6Ibze+eG60szlL7JA8wEIV7bPWuyQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "proxy-agent": "^5.0.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "superagent": ">= 0.15.4 || 1 || 2 || 3" + } + }, + "node_modules/superagent/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/superagent/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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==", + "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==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/surge": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/surge/-/surge-0.23.1.tgz", + "integrity": "sha512-w92meVuKxqO1up0JpSe2iVSiVTv7E7t1qDA9fZhCSZx/+6Q85I3Y2LCoZIcWLpMm9BM0iB843NAWAwdScTR4Uw==", + "dev": true, + "dependencies": { + "cli-table3": "^0.5.1", + "colors": "1.4.0", + "inquirer": "^6.2.2", + "is-domain": "0.0.1", + "minimist": "1.2.3", + "moniker": "0.1.2", + "netrc": "0.1.4", + "progress": "1.1.8", + "read": "1.0.5", + "request": "^2.88.0", + "split": "0.3.1", + "surge-fstream-ignore": "^1.0.6", + "surge-ignore": "0.2.0", + "tarr": "1.1.0", + "url-parse-as-address": "1.0.0" + }, + "bin": { + "surge": "lib/cli.js" + } + }, + "node_modules/surge-fstream-ignore": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/surge-fstream-ignore/-/surge-fstream-ignore-1.0.6.tgz", + "integrity": "sha512-hNN52cz2fYCAzhlHmWPn4aE3bFbpBt01AkWFLljrtSzFvxlipLAeLuLtQ3t4f0RKoUkjzXWCAFK13WoET2iM1A==", + "dev": true, + "dependencies": { + "fstream": ">=1.0.12", + "inherits": "2", + "minimatch": "^3.0.0" + } + }, + "node_modules/surge-ignore": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/surge-ignore/-/surge-ignore-0.2.0.tgz", + "integrity": "sha512-ay4MPFjfiQzDsyTidljJLXQi22l2AwjcuamYnJWj/LdhaHdKmDJxRox52WXimdcLpMuLDtkQvv4+jEu+wu9eSw==", + "dev": true + }, + "node_modules/surge/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/ansi-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz", + "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/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/surge/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/surge/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/cli-table3": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.5.1.tgz", + "integrity": "sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "colors": "^1.1.2" + } + }, + "node_modules/surge/node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", + "dev": true + }, + "node_modules/surge/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/surge/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/surge/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/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/surge/node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/surge/node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", + "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/surge/node_modules/inquirer/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/surge/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/minimist": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.3.tgz", + "integrity": "sha512-+bMdgqjMN/Z77a6NlY/I3U5LlRDbnmaAk6lDveAPKwSpcPM4tKAuYsvYF8xjhOPXhOYGe/73vVLVez5PW+jqhw==", + "dev": true + }, + "node_modules/surge/node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==", + "dev": true + }, + "node_modules/surge/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/split": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.1.tgz", + "integrity": "sha512-hCHXkQDs1HFKRsrT9EutGT1hmjS1FW1Aei8dk/CxrT7mslcMtAxbiv8LYA/AYDvjB6h9rSXgW8zAZwg20tKMTw==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/surge/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/surge/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/swiper": { + "version": "8.1.6", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-8.1.6.tgz", + "integrity": "sha512-KqnqIBbIQaIiG/sK2ckcQZbqK38486WlvJe99s2KOCu8jOOQGra6cdShdI9LDyh8DALV/5nwycczFmmNWhxs2A==", + "funding": [ + { + "type": "patreon", + "url": "https://www.patreon.com/swiperjs" + }, + { + "type": "open_collective", + "url": "http://opencollective.com/swiper" + } + ], + "hasInstallScript": true, + "dependencies": { + "dom7": "^4.0.4", + "ssr-window": "^4.0.2" + }, + "engines": { + "node": ">= 4.7.0" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "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" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tarr": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tarr/-/tarr-1.1.0.tgz", + "integrity": "sha512-tENbQ43IQckay71stp1p1lljRhoEZpZk10FzEZKW2tJcMcnLwV3CfZdxBAERlH6nwnFvnHMS9eJOJl6IzSsG0g==", + "dev": true, + "dependencies": { + "block-stream": "*", + "fstream": ">=1.0.12", + "inherits": "2" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempfile": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-3.0.0.tgz", + "integrity": "sha512-uNFCg478XovRi85iD42egu+eSFUmmka750Jy7L5tfHI5hQKKtbPnxaSaXAbBqCDYrw3wx4tXjKwci4/QmsZJxw==", + "dev": true, + "dependencies": { + "temp-dir": "^2.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tempfile/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/terser": { + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.11.0.tgz", + "integrity": "sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A==", + "dev": true, + "dependencies": { + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.7", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.7.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "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/test-exclude/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/text-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", + "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/throttleit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz", + "integrity": "sha512-rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==", + "dev": 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/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "dev": true, + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", + "dev": true + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "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==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/traverse": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz", + "integrity": "sha512-kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==" + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-json-schema-generator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ts-json-schema-generator/-/ts-json-schema-generator-1.0.0.tgz", + "integrity": "sha512-F5VofsyMhNSXKII32NDS8/Ur8o2K3Sh5i/U2ke3UgCKf26ybgm2cZeT2x7VJPl1trML/9QLzz/82l0mvzmb3Vw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "commander": "^9.0.0", + "glob": "^7.2.0", + "json5": "^2.2.0", + "safe-stable-stringify": "^2.3.1", + "typescript": "~4.6.2" + }, + "bin": { + "ts-json-schema-generator": "bin/ts-json-schema-generator" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ts-json-schema-generator/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ts-json-schema-generator/node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-morph": { + "version": "13.0.3", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-13.0.3.tgz", + "integrity": "sha512-pSOfUMx8Ld/WUreoSzvMFQG5i9uEiWIsBYjpU9+TTASOeUa89j5HykomeqVULm1oqWtBdleI3KEFRLrlA3zGIw==", + "dev": true, + "dependencies": { + "@ts-morph/common": "~0.12.3", + "code-block-writer": "^11.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.8.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.0.tgz", + "integrity": "sha512-/fNd5Qh+zTt8Vt1KbYZjRHCE9sI5i7nqfD/dzBBRDeVXZXS6kToW6R7tTU6Nd4XavFs0mAVCg29Q//ML7WsZYA==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-optchain": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/ts-optchain/-/ts-optchain-0.1.8.tgz", + "integrity": "sha512-crvloFKZlPIysdVcP7Ej1w4HijBx7NmLdeorqfxOvt87DcUIbhKV4ZaSgCL+IQ+zzTgDx5zDuNHRvUbTIr9aqw==", + "deprecated": "Package is no longer supported.", + "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.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "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==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + } + }, + "node_modules/tslint-eslint-rules": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/tslint-eslint-rules/-/tslint-eslint-rules-5.4.0.tgz", + "integrity": "sha512-WlSXE+J2vY/VPgIcqQuijMQiel+UtmXS+4nvK4ZzlDiqBfXse8FAvkNnTcYhnQyOTW5KFM+uRRGXxYhFpuBc6w==", + "dependencies": { + "doctrine": "0.7.2", + "tslib": "1.9.0", + "tsutils": "^3.0.0" + }, + "peerDependencies": { + "tslint": "^5.0.0", + "typescript": "^2.2.0 || ^3.0.0" + } + }, + "node_modules/tslint-eslint-rules/node_modules/doctrine": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-0.7.2.tgz", + "integrity": "sha512-qiB/Rir6Un6Ad/TIgTRzsremsTGWzs8j7woXvp14jgq00676uBiBT5eUOi+FgRywZFVy5Us/c04ISRpZhRbS6w==", + "dependencies": { + "esutils": "^1.1.6", + "isarray": "0.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslint-eslint-rules/node_modules/esutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.1.6.tgz", + "integrity": "sha512-RG1ZkUT7iFJG9LSHr7KDuuMSlujfeTtMNIcInURxKAxhMtwQhI3NrQhz26gZQYlsYZQKzsnwtpKrFKj9K9Qu1A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tslint-eslint-rules/node_modules/tslib": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", + "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + }, + "node_modules/tslint-eslint-rules/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "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/tslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/tslint/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==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/tslint/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/tslint/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/tslint/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/tslint/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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/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==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/tslint/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "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==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "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==", + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", + "dev": true + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "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": "4.4.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz", + "integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "3.16.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz", + "integrity": "sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==", + "dev": true, + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "dev": true, + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dev": true, + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse-as-address": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-as-address/-/url-parse-as-address-1.0.0.tgz", + "integrity": "sha512-1WJ8YX1Kcec9wgxy8d/ATzGP1ayO6BRnd3iB6NlM+7cOnn6U8p5PKppRTCPLobh3CSdJ4d0TdPjopzyU2KcVFw==", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util-extend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz", + "integrity": "sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "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==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true + }, + "node_modules/vlq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-1.0.1.tgz", + "integrity": "sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==" + }, + "node_modules/vm2": { + "version": "3.9.9", + "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.9.tgz", + "integrity": "sha512-xwTm7NLh/uOjARRBs8/95H0e8fT3Ukw5D/JJWhxMbhKzNh1Nu981jQKvkep9iKYNxzlVrdzD0mlBGkDKZWprlw==", + "dev": true, + "dependencies": { + "acorn": "^8.7.0", + "acorn-walk": "^8.2.0" + }, + "bin": { + "vm2": "bin/vm2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wait-on": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-6.0.1.tgz", + "integrity": "sha512-zht+KASY3usTY5u2LgaNqn/Cd8MukxLGjdcZxT2ns5QzDmTFc4XoWBgC+C/na+sMRZTuVygQoMYwdcVjHnYIVw==", + "dependencies": { + "axios": "^0.25.0", + "joi": "^17.6.0", + "lodash": "^4.17.21", + "minimist": "^1.2.5", + "rxjs": "^7.5.4" + }, + "bin": { + "wait-on": "bin/wait-on" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/wait-on/node_modules/rxjs": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", + "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webpack": { + "version": "5.70.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz", + "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.9.2", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz", + "integrity": "sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", + "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", + "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/webpack-dev-middleware": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.0.tgz", + "integrity": "sha512-MouJz+rXAm9B1OTOYaJnn6rtD/lWZPy2ufQCH3BPs8Rloh/Du6Jze4p7AeLYHkVi0giJnYLaSGDC7S+GM9arhg==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.2.2", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.7.3.tgz", + "integrity": "sha512-mlxq2AsIw2ag016nixkzUkdyOE8ST2GTy34uKSABp1c4nhjZvH90D5ZRR+UOLSsG4Z3TFahAi72a3ymRtfRm+Q==", + "dev": true, + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.2.2", + "ansi-html-community": "^0.0.8", + "bonjour": "^3.5.0", + "chokidar": "^3.5.2", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "del": "^6.0.0", + "express": "^4.17.1", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.0", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "portfinder": "^1.0.28", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "strip-ansi": "^7.0.0", + "webpack-dev-middleware": "^5.3.0", + "ws": "^8.1.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/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/webpack-dev-server/node_modules/ipaddr.js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/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/webpack-merge": { + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", + "dev": true, + "dependencies": { + "typed-assert": "^1.0.8" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 5.0.0-beta.1 < 6", + "webpack": "^5.12.0" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/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/webpack/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/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/windows-release": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-4.0.0.tgz", + "integrity": "sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==", + "dev": true, + "dependencies": { + "execa": "^4.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/windows-release/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "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/windows-release/node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true + }, + "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": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "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": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", + "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/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xml2js/node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlbuilder": { + "version": "9.0.7", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "integrity": "sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "dev": true, + "dependencies": { + "sax": "^1.2.1" + } + }, + "node_modules/xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "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/yargs-parser": { + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.0.0.tgz", + "integrity": "sha512-8eblPHTL7ZWRkyjIZJjnGf+TijiKJSwA24svzLRVvtgoi/RZiKa9fFQTrlx0OKLnyHSdt/enrdadji6WFfESVA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/zone.js": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.5.tgz", + "integrity": "sha512-D1/7VxEuQ7xk6z/kAROe4SUbd9CzxY4zOwVGnGHerd/SgLIVU5f4esDzQUsOCeArn933BZfWMKydH7l7dPEp0g==", + "dependencies": { + "tslib": "^2.3.0" + } + } + }, "dependencies": { "@aduh95/viz.js": { "version": "3.6.0", @@ -416,7 +23284,6 @@ "version": "13.3.10", "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-13.3.10.tgz", "integrity": "sha512-DEtdso89Q9lAGkSVpSf2GrMtGVTnCnenCwLhubYaeSaj4iA/CAnUfNlaYBf9E92ltuPd85Mg9bIJKaxYCRH8RQ==", - "dev": true, "requires": { "tslib": "^2.3.0" } @@ -576,7 +23443,7 @@ "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/calendar/-/calendar-5.43.0.tgz", "integrity": "sha512-lLutD6BgthBHbbdoQeuhsjX6CFir7WGatUHH9jZVY9delP9bqcD+Bx1NUhPWjsXfg8VmPGVQS409uYrPrp4eCw==", "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@awesome-cordova-plugins/core": { @@ -584,7 +23451,7 @@ "resolved": "https://registry.npmjs.org/@awesome-cordova-plugins/core/-/core-5.43.0.tgz", "integrity": "sha512-DDLzEYtP6fDqyVORwuzXH64VFYTcW5qoaXAvghWtc5O+wciqeX1hFO7WY7l+1Ytkf6J4IbyMhrsOgZb3bC1eMQ==", "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@babel/code-frame": { @@ -1829,17 +24696,20 @@ "@capacitor/android": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/@capacitor/android/-/android-3.5.1.tgz", - "integrity": "sha512-rjehS0+BQBlwoN8hUyrMuzexn/9QJsONb1kmN5uXcL8JuTEbv35fa7z0tSD4x1LKwUFd+3Zeuwt60QRuwijlmw==" + "integrity": "sha512-rjehS0+BQBlwoN8hUyrMuzexn/9QJsONb1kmN5uXcL8JuTEbv35fa7z0tSD4x1LKwUFd+3Zeuwt60QRuwijlmw==", + "requires": {} }, "@capacitor/app": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@capacitor/app/-/app-1.1.1.tgz", - "integrity": "sha512-8ADkldHnoE1xkWvPUsGlERVGm6/Zvcxy6hCI80AxydIKyaCG7kbDAvUclebbnw/eFRxj2zBoVatGLjmJNvTbYw==" + "integrity": "sha512-8ADkldHnoE1xkWvPUsGlERVGm6/Zvcxy6hCI80AxydIKyaCG7kbDAvUclebbnw/eFRxj2zBoVatGLjmJNvTbYw==", + "requires": {} }, "@capacitor/browser": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@capacitor/browser/-/browser-1.0.7.tgz", - "integrity": "sha512-ni8IjsPyFUYqQ2JxBwzI7VpJUZHPr7QiRds5hQWM/1cpfH0+DWvjWHwzxQXuSbW0h+QGXGSJ/vwqjRns7NzLfQ==" + "integrity": "sha512-ni8IjsPyFUYqQ2JxBwzI7VpJUZHPr7QiRds5hQWM/1cpfH0+DWvjWHwzxQXuSbW0h+QGXGSJ/vwqjRns7NzLfQ==", + "requires": {} }, "@capacitor/cli": { "version": "3.5.1", @@ -1894,67 +24764,80 @@ "@capacitor/device": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@capacitor/device/-/device-1.1.2.tgz", - "integrity": "sha512-1i6yvuSC7Ys7fs4JsUtfwG/00d2FF2TvWpbYs7YbkXhp1vOTL510gwjc5S6FTyhh8M9sAaUU5tKB68XwlSK/GA==" + "integrity": "sha512-1i6yvuSC7Ys7fs4JsUtfwG/00d2FF2TvWpbYs7YbkXhp1vOTL510gwjc5S6FTyhh8M9sAaUU5tKB68XwlSK/GA==", + "requires": {} }, "@capacitor/dialog": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@capacitor/dialog/-/dialog-1.0.7.tgz", - "integrity": "sha512-+B6lKlqlpZk9uDrHEYk2rj+b3DF1kxCqV+vGtKwNMr2tFvNppZVkYdZU+L503yAoFFejqgQ27n0A4vXg+BTcBQ==" + "integrity": "sha512-+B6lKlqlpZk9uDrHEYk2rj+b3DF1kxCqV+vGtKwNMr2tFvNppZVkYdZU+L503yAoFFejqgQ27n0A4vXg+BTcBQ==", + "requires": {} }, "@capacitor/filesystem": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@capacitor/filesystem/-/filesystem-1.1.0.tgz", - "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==" + "integrity": "sha512-8O3UuvL8HNUEJvZnmn8yUmvgB1evtXfcF0oxIo3YbSlylqywJwS3JTiuhKmsvSxCdpbTy8IaTsutVh3gZgWbKg==", + "requires": {} }, "@capacitor/geolocation": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@capacitor/geolocation/-/geolocation-1.3.1.tgz", - "integrity": "sha512-3u9Hu4E0VBMa6r0d2t9MENDIR+bv5Tf144uPmb2Bl7XLQeFwvu4BSp2neNq39x58PvcROPMNX1BOTSGpQep+1Q==" + "integrity": "sha512-3u9Hu4E0VBMa6r0d2t9MENDIR+bv5Tf144uPmb2Bl7XLQeFwvu4BSp2neNq39x58PvcROPMNX1BOTSGpQep+1Q==", + "requires": {} }, "@capacitor/haptics": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@capacitor/haptics/-/haptics-1.1.4.tgz", - "integrity": "sha512-+pJIb5X7xAcbrWj6rJaV+cwBlv8aFwB1/Ob6EV4atydThuuVSSsAL4hI4ZYlPNOxM6H5s+ZDLj7Pa2os4eFmtg==" + "integrity": "sha512-+pJIb5X7xAcbrWj6rJaV+cwBlv8aFwB1/Ob6EV4atydThuuVSSsAL4hI4ZYlPNOxM6H5s+ZDLj7Pa2os4eFmtg==", + "requires": {} }, "@capacitor/ios": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-3.5.1.tgz", - "integrity": "sha512-295L9dHe/QaejUpGI8Pxwb1i2yVgick1ExIDK26xk+tk1km3B1HVjsIS8qkf2SOp7tuwP9+W5T5p7rLMNN4v5g==" + "integrity": "sha512-295L9dHe/QaejUpGI8Pxwb1i2yVgick1ExIDK26xk+tk1km3B1HVjsIS8qkf2SOp7tuwP9+W5T5p7rLMNN4v5g==", + "requires": {} }, "@capacitor/keyboard": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@capacitor/keyboard/-/keyboard-1.2.2.tgz", - "integrity": "sha512-dOZSXJTY/tTbRQ+Neiny72BIXN2Hvf/2AgPpMdTErDfaQM7C2MMgtJrm+Mi+YUeT6AnJFmt68nHJGImAL4lzmA==" + "integrity": "sha512-dOZSXJTY/tTbRQ+Neiny72BIXN2Hvf/2AgPpMdTErDfaQM7C2MMgtJrm+Mi+YUeT6AnJFmt68nHJGImAL4lzmA==", + "requires": {} }, "@capacitor/local-notifications": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@capacitor/local-notifications/-/local-notifications-1.1.0.tgz", - "integrity": "sha512-l6S9rBylxGPq/U+xpJzZcOL4l2s8I2Igq7uDTidR4imIxxX3bLRz9nDSQREWsbQkFx7ALFm/5Y8PJGz2C6qKPw==" + "integrity": "sha512-l6S9rBylxGPq/U+xpJzZcOL4l2s8I2Igq7uDTidR4imIxxX3bLRz9nDSQREWsbQkFx7ALFm/5Y8PJGz2C6qKPw==", + "requires": {} }, "@capacitor/network": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@capacitor/network/-/network-1.0.7.tgz", - "integrity": "sha512-Le1pcXlBB6Vsz+9Y5jkwcoFONq93Fm06T+EXfH52khrIH61k5rOYRM1HGR5Q0hu6pDKqA9jM/tU06h2kqsJteA==" + "integrity": "sha512-Le1pcXlBB6Vsz+9Y5jkwcoFONq93Fm06T+EXfH52khrIH61k5rOYRM1HGR5Q0hu6pDKqA9jM/tU06h2kqsJteA==", + "requires": {} }, "@capacitor/share": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@capacitor/share/-/share-1.1.2.tgz", - "integrity": "sha512-FUTdjA7MAiD1tkGVZ+C3gs7a4fyEhXojDO2HkZ954oupG1cQ51dEJ1xTNnR9BAmCwUJO4sa91cxy7SMyCDPuGg==" + "integrity": "sha512-FUTdjA7MAiD1tkGVZ+C3gs7a4fyEhXojDO2HkZ954oupG1cQ51dEJ1xTNnR9BAmCwUJO4sa91cxy7SMyCDPuGg==", + "requires": {} }, "@capacitor/splash-screen": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@capacitor/splash-screen/-/splash-screen-1.2.2.tgz", - "integrity": "sha512-iGh9gc0rdS3R+Wr+bD/+tJl3qbmJZ5xVQAP5UsD6U6Y3ydCBo9KpA8DEqxaBZVsCDaLt67009hK5nxKBwjRn7Q==" + "integrity": "sha512-iGh9gc0rdS3R+Wr+bD/+tJl3qbmJZ5xVQAP5UsD6U6Y3ydCBo9KpA8DEqxaBZVsCDaLt67009hK5nxKBwjRn7Q==", + "requires": {} }, "@capacitor/status-bar": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@capacitor/status-bar/-/status-bar-1.0.8.tgz", - "integrity": "sha512-lhxa70K6vg0QjdddbT9RqFLfQ9a0Fk1OVE54MhUH30DWymv4h2LrC+mJgH6JS46WQbR2UCHRymfmVCq1PS2Qiw==" + "integrity": "sha512-lhxa70K6vg0QjdddbT9RqFLfQ9a0Fk1OVE54MhUH30DWymv4h2LrC+mJgH6JS46WQbR2UCHRymfmVCq1PS2Qiw==", + "requires": {} }, "@capacitor/storage": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@capacitor/storage/-/storage-1.2.5.tgz", - "integrity": "sha512-pWhnw4U7wN/zFV4lA4BLMypSufTktCbk548Yk4whSb0KAq3R0mLfSubRIHkGdcPqQWCsM6g/zUuszurhz6ncWQ==" + "integrity": "sha512-pWhnw4U7wN/zFV4lA4BLMypSufTktCbk548Yk4whSb0KAq3R0mLfSubRIHkGdcPqQWCsM6g/zUuszurhz6ncWQ==", + "requires": {} }, "@colors/colors": { "version": "1.5.0", @@ -2083,16 +24966,16 @@ "chokidar": "^3.5.2", "colors": "1.4.0", "connect": "^3.7.0", - "cors": "^2.8.5", + "cors": "latest", "event-stream": "4.0.1", "faye-websocket": "0.11.x", "http-auth": "4.1.9", "http-auth-connect": "^1.0.5", "morgan": "^1.10.0", - "object-assign": "^4.1.1", + "object-assign": "latest", "open": "8.4.0", - "proxy-middleware": "^0.15.0", - "send": "^0.18.0", + "proxy-middleware": "latest", + "send": "latest", "serve-index": "^1.9.1" }, "dependencies": { @@ -2220,7 +25103,8 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz", "integrity": "sha512-aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==", - "dev": true + "dev": true, + "requires": {} }, "@cypress/request": { "version": "2.88.10", @@ -2526,7 +25410,7 @@ "resolved": "https://registry.npmjs.org/@ionic-native/core/-/core-5.36.0.tgz", "integrity": "sha512-lOrkktadlKYbYf1LrDyAtsu1JnQ0oCCdkOU7iHQ8oXnNOkMwobFfD2m62F1CoOr0u9LIkpYnZSPjng8lZbmbNw==", "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic-native/file-opener": { @@ -2534,7 +25418,7 @@ "resolved": "https://registry.npmjs.org/@ionic-native/file-opener/-/file-opener-5.36.0.tgz", "integrity": "sha512-UKp3pbqvQXsAtLMJ5JE+KcTMxpjSZMFebf6nvy/KJvwy85JGIaCV4ZVM/H9CFUrHJMWBH6wDbY+WPygnsrl4Yg==", "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic-native/http": { @@ -2543,7 +25427,7 @@ "integrity": "sha512-3t7UhcqNxZuIX+HXuydlaDfA9AwDXiRFGs9GsHpJnXMTfbeKUcwzp0amqblrLslDA9tNfqSmJyFZFaMX6CRrog==", "optional": true, "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic-native/in-app-browser": { @@ -2552,7 +25436,7 @@ "integrity": "sha512-tX/FBT0jpkgEefZ8iorv5eDKfgP/ExbYr1AWg6okORQ0dwLfXsD5KDJgKHN9GFZvyuLNeaLpC1mN7CvwvLvmgA==", "optional": true, "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic-native/safari-view-controller": { @@ -2561,7 +25445,7 @@ "integrity": "sha512-pvqnzro3bBZ0bQOMjBRKhmjHDaLKfDS75QY7uqe9UzjufMnHtBUUWgMvTuL7MsjTXRj8iRhe1wnUv8aBkz4SVA==", "optional": true, "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic-native/secure-storage": { @@ -2570,7 +25454,7 @@ "integrity": "sha512-8wRH0bUMvJVnEu052cA1gi10cYJzNWMa67uRavay2UlDA5gDzOkUl5YsvWfg3BP6UW8ZQG/YDVIyzRWSp3Gevg==", "optional": true, "requires": { - "@types/cordova": "^0.0.34" + "@types/cordova": "latest" } }, "@ionic/angular": { @@ -2944,7 +25828,8 @@ "version": "13.3.7", "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-13.3.7.tgz", "integrity": "sha512-KtNMHOGZIU2oaNTzk97ZNwTnJLbvnSpwyG3/+VW9xN92b2yw8gG9tHPKW2fsFrfzF9Mz8kqJeF31ftvkYuKtuA==", - "dev": true + "dev": true, + "requires": {} }, "@ngx-translate/core": { "version": "14.0.0", @@ -3480,7 +26365,8 @@ "@transistorsoft/capacitor-background-fetch": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/@transistorsoft/capacitor-background-fetch/-/capacitor-background-fetch-0.0.6.tgz", - "integrity": "sha512-MnaPPuEzEty8jjnrd2blrifTG++/DrLeAcyxn8r42VYWD7p5Gv3xbNxOM81XOsLj1GpTJ571+msq8R7Z+gdqFg==" + "integrity": "sha512-MnaPPuEzEty8jjnrd2blrifTG++/DrLeAcyxn8r42VYWD7p5Gv3xbNxOM81XOsLj1GpTJ571+msq8R7Z+gdqFg==", + "requires": {} }, "@ts-morph/common": { "version": "0.12.3", @@ -4449,16 +27335,6 @@ "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -4488,12 +27364,14 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true + "dev": true, + "requires": {} }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==" + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "requires": {} }, "acorn-node": { "version": "1.8.2", @@ -4611,7 +27489,8 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "requires": {} }, "amdefine": { "version": "1.0.1", @@ -5566,7 +28445,8 @@ "capacitor-secure-storage-plugin": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/capacitor-secure-storage-plugin/-/capacitor-secure-storage-plugin-0.7.0.tgz", - "integrity": "sha512-F4y9Umv5j5sleXPRzAWkYHhmUHlIiPPSVebjTrw8lec3t2SZGO4sk91MbDlL+IO68N54LDqDxsD9Fa/02oNhmQ==" + "integrity": "sha512-F4y9Umv5j5sleXPRzAWkYHhmUHlIiPPSVebjTrw8lec3t2SZGO4sk91MbDlL+IO68N54LDqDxsD9Fa/02oNhmQ==", + "requires": {} }, "caseless": { "version": "0.12.0", @@ -5791,7 +28671,8 @@ "version": "5.2.2", "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", - "dev": true + "dev": true, + "requires": {} }, "clean-regexp": { "version": "1.0.0", @@ -6405,8 +29286,8 @@ "integrity": "sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==", "dev": true, "requires": { - "JSONStream": "^1.0.4", "is-text-path": "^1.0.1", + "JSONStream": "^1.0.4", "lodash": "^4.17.15", "meow": "^8.0.0", "split2": "^3.0.0", @@ -6710,7 +29591,8 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", - "dev": true + "dev": true, + "requires": {} }, "css-select": { "version": "4.3.0", @@ -7465,7 +30347,8 @@ "version": "8.2.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -7926,7 +30809,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-jsdoc": { "version": "39.3.2", @@ -9574,6 +32458,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "devOptional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -9582,7 +32467,8 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "requires": {} }, "ieee754": { "version": "1.2.1", @@ -9734,7 +32620,8 @@ "version": "0.6.4", "resolved": "https://registry.npmjs.org/capacitor-secure-storage-plugin/-/capacitor-secure-storage-plugin-0.6.4.tgz", "integrity": "sha512-Uv5uRRiPmvELmtsz89gSt9i/hyliM1H19T3S7ZsUeaxQTiWj1UOzhuADSA1zwTd7tMr8WTHja7Y12uies1hBjw==", - "optional": true + "optional": true, + "requires": {} }, "tslib": { "version": "1.14.1", @@ -10353,6 +33240,16 @@ "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.0.tgz", "integrity": "sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==" }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "jsprim": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", @@ -10569,7 +33466,8 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==", - "dev": true + "dev": true, + "requires": {} }, "karma-mocha-reporter": { "version": "2.2.5", @@ -10723,7 +33621,8 @@ "leaflet.markercluster": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz", - "integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==" + "integrity": "sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==", + "requires": {} }, "leek": { "version": "0.0.24", @@ -12995,13 +35894,15 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", - "dev": true + "dev": true, + "requires": {} }, "postcss-gap-properties": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.3.tgz", "integrity": "sha512-rPPZRLPmEKgLk/KlXMqRaNkYTUpE7YC+bOIQFN5xcu1Vp11Y4faIXv6/Jpft6FMnl6YRxZqDZG0qQOW80stzxQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-image-set-function": { "version": "4.0.6", @@ -13027,7 +35928,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-lab-function": { "version": "4.2.0", @@ -13054,19 +35956,22 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", - "dev": true + "dev": true, + "requires": {} }, "postcss-media-minmax": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -13111,13 +36016,15 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.3.tgz", "integrity": "sha512-CxZwoWup9KXzQeeIxtgOciQ00tDtnylYIlJBBODqkgS/PU2jISuWOL/mYLHmZb9ZhZiCaNKsCRiLp22dZUtNsg==", - "dev": true + "dev": true, + "requires": {} }, "postcss-page-break": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", - "dev": true + "dev": true, + "requires": {} }, "postcss-place": { "version": "7.0.4", @@ -13182,7 +36089,8 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", - "dev": true + "dev": true, + "requires": {} }, "postcss-selector-not": { "version": "5.0.0", @@ -14480,7 +37388,8 @@ "version": "0.0.2", "resolved": "https://registry.npmjs.org/rxjs-for-await/-/rxjs-for-await-0.0.2.tgz", "integrity": "sha512-IJ8R/ZCFMHOcDIqoABs82jal00VrZx8Xkgfe7TOKoaRPAW5nH/VFlG23bXpeGdrmtqI9UobFPgUKgCuFc7Lncw==", - "dev": true + "dev": true, + "requires": {} }, "safe-buffer": { "version": "5.2.1", @@ -15403,6 +38312,14 @@ "fs-extra": "^10.1.0" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -15413,14 +38330,6 @@ "strip-ansi": "^6.0.1" } }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, "strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -16856,7 +39765,8 @@ "version": "7.5.8", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.8.tgz", "integrity": "sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw==", - "dev": true + "dev": true, + "requires": {} } } }, @@ -17124,7 +40034,8 @@ "version": "8.8.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", - "dev": true + "dev": true, + "requires": {} }, "xml2js": { "version": "0.4.23", diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index a981d0e8..cdccd088 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -15,7 +15,9 @@ import {NgModule} from '@angular/core'; import {PreloadAllModules, RouterModule, Routes} from '@angular/router'; -const routes: Routes = [{path: '', redirectTo: '/news', pathMatch: 'full'}]; +const routes: Routes = [ + {path: '', redirectTo: '/dashboard', pathMatch: 'full'}, +]; /** * TODO @@ -25,6 +27,12 @@ const routes: Routes = [{path: '', redirectTo: '/news', pathMatch: 'full'}]; imports: [ RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules, + errorHandler: error => { + // Handle unknown routes, at the moment this can only be done via window.location + if (error.message.includes('Cannot match any routes')) { + window.location.href = '/dashboard'; + } + }, }), ], }) diff --git a/src/app/app.component.html b/src/app/app.component.html index 695ccd4f..b7d2183c 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,3 +1,3 @@ - + diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 485c2ccb..eb0bdbb9 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -37,12 +37,15 @@ import {TranslateHttpLoader} from '@ngx-translate/http-loader'; import moment from 'moment'; import 'moment/min/locales'; import {LoggerModule, NGXLogger, NgxLoggerLevel} from 'ngx-logger'; +import SwiperCore, {FreeMode, Navigation} from 'swiper'; + import {environment} from '../environments/environment'; import {AppRoutingModule} from './app-routing.module'; import {AppComponent} from './app.component'; import {CatalogModule} from './modules/catalog/catalog.module'; import {ConfigModule} from './modules/config/config.module'; import {ConfigProvider} from './modules/config/config.provider'; +import {DashboardModule} from './modules/dashboard/dashboard.module'; import {DataModule} from './modules/data/data.module'; import {HebisModule} from './modules/hebis/hebis.module'; import {MapModule} from './modules/map/map.module'; @@ -76,6 +79,8 @@ import {PAIAAuthService} from './modules/auth/paia/paia-auth.service'; registerLocaleData(localeDe); +SwiperCore.use([FreeMode, Navigation]); + /** * Initializes data needed on startup * @@ -84,6 +89,7 @@ registerLocaleData(localeDe); * @param settingsProvider provider of settings (e.g. language that has been set) * @param configProvider TODO * @param translateService TODO + * @param _routingStackService Just for init and to track the stack from the get go */ export function initializerFactory( storageProvider: StorageProvider, @@ -151,6 +157,7 @@ export function createTranslateLoader(http: HttpClient) { CatalogModule, CommonModule, ConfigModule, + DashboardModule, DataModule, HebisModule, IonicModule.forRoot(), diff --git a/src/app/modules/about/about-changelog.html b/src/app/modules/about/about-changelog.html index f7d9bfa3..7161d702 100644 --- a/src/app/modules/about/about-changelog.html +++ b/src/app/modules/about/about-changelog.html @@ -14,10 +14,12 @@ --> - + - - + Changelog diff --git a/src/app/modules/about/about-licenses.html b/src/app/modules/about/about-licenses.html index 74a55d6a..6e71a7b4 100644 --- a/src/app/modules/about/about-licenses.html +++ b/src/app/modules/about/about-licenses.html @@ -14,10 +14,12 @@ --> - + - - + Licenses @@ -37,7 +39,7 @@ {{ license.name }} - + @@ -46,7 +48,7 @@ - + {{ license.licenses }} License diff --git a/src/app/modules/about/about-page/about-page.html b/src/app/modules/about/about-page/about-page.html index 524296da..b08d0da5 100644 --- a/src/app/modules/about/about-page/about-page.html +++ b/src/app/modules/about/about-page/about-page.html @@ -14,10 +14,12 @@ --> - + - - + {{ 'title' | translateSimple: content diff --git a/src/app/modules/about/about.module.ts b/src/app/modules/about/about.module.ts index 77988b25..735006d6 100644 --- a/src/app/modules/about/about.module.ts +++ b/src/app/modules/about/about.module.ts @@ -28,6 +28,7 @@ import {DataModule} from '../data/data.module'; import {ScrollingModule} from '@angular/cdk/scrolling'; import {AboutLicenseModalComponent} from './about-license-modal.component'; import {AboutChangelogComponent} from './about-changelog.component'; +import {UtilModule} from '../../util/util.module'; const settingsRoutes: Routes = [ {path: 'about', component: AboutPageComponent}, @@ -59,6 +60,7 @@ const settingsRoutes: Routes = [ MarkdownModule, DataModule, ScrollingModule, + UtilModule, ], providers: [ConfigProvider], }) diff --git a/src/app/modules/assessments/detail/assessments-detail.html b/src/app/modules/assessments/detail/assessments-detail.html index 8cfe659e..49a6103a 100644 --- a/src/app/modules/assessments/detail/assessments-detail.html +++ b/src/app/modules/assessments/detail/assessments-detail.html @@ -13,10 +13,12 @@ ~ this program. If not, see . --> - + - - + {{ 'data.detail.TITLE' | translate }} diff --git a/src/app/modules/assessments/page/assessments-page.html b/src/app/modules/assessments/page/assessments-page.html index cb32fbb6..f349c1ce 100644 --- a/src/app/modules/assessments/page/assessments-page.html +++ b/src/app/modules/assessments/page/assessments-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'assessments.TITLE' | translate }} diff --git a/src/app/modules/calendar/add-event-review-modal.html b/src/app/modules/calendar/add-event-review-modal.html index b7890db0..a406ef18 100644 --- a/src/app/modules/calendar/add-event-review-modal.html +++ b/src/app/modules/calendar/add-event-review-modal.html @@ -28,7 +28,7 @@ {{ event.title }} - + diff --git a/src/app/modules/calendar/calendar.module.ts b/src/app/modules/calendar/calendar.module.ts index e5523117..7b135f1c 100644 --- a/src/app/modules/calendar/calendar.module.ts +++ b/src/app/modules/calendar/calendar.module.ts @@ -24,6 +24,7 @@ import {ThingTranslateModule} from '../../translation/thing-translate.module'; import {FormsModule} from '@angular/forms'; import {CommonModule} from '@angular/common'; import {MomentModule} from 'ngx-moment'; +import {UtilModule} from '../../util/util.module'; @NgModule({ declarations: [AddEventReviewModalComponent], @@ -34,6 +35,7 @@ import {MomentModule} from 'ngx-moment'; FormsModule, CommonModule, MomentModule, + UtilModule, ], exports: [], providers: [Calendar, CalendarService, ScheduleProvider], diff --git a/src/app/modules/calendar/calendar.service.ts b/src/app/modules/calendar/calendar.service.ts index f29a200e..5c76c764 100644 --- a/src/app/modules/calendar/calendar.service.ts +++ b/src/app/modules/calendar/calendar.service.ts @@ -16,9 +16,10 @@ import {Calendar} from '@awesome-cordova-plugins/calendar/ngx'; import {Injectable} from '@angular/core'; import {ICalEvent} from './ical/ical'; -import moment, {duration, unitOfTime} from 'moment'; +import moment, {duration, Moment, unitOfTime} from 'moment'; import {Dialog} from '@capacitor/dialog'; import {CalendarInfo} from './calendar-info'; +import {Subject} from 'rxjs'; const CALENDAR_NAME = 'StApps'; @@ -33,6 +34,10 @@ const RECURRENCE_PATTERNS: Partial< @Injectable() export class CalendarService { + goToDate = new Subject(); + + goToDateClicked = this.goToDate.asObservable(); + // eslint-disable-next-line @typescript-eslint/no-empty-function constructor(readonly calendar: Calendar) {} @@ -98,4 +103,14 @@ export class CalendarService { ); } } + + /** + * Emit the calendar index corresponding to the input date. + * + * @param date Moment - date the calendar should go to + */ + emitGoToDate(date: Moment) { + const index = date.diff(moment().startOf('day'), 'days'); + this.goToDate.next(index); + } } diff --git a/src/app/modules/catalog/catalog.component.html b/src/app/modules/catalog/catalog.component.html index 125e166d..33efdd04 100644 --- a/src/app/modules/catalog/catalog.component.html +++ b/src/app/modules/catalog/catalog.component.html @@ -1,8 +1,10 @@ - + - - + {{ 'catalog.title' | translate | titlecase }} diff --git a/src/app/modules/catalog/catalog.component.ts b/src/app/modules/catalog/catalog.component.ts index ace4aa7d..0c7beff5 100644 --- a/src/app/modules/catalog/catalog.component.ts +++ b/src/app/modules/catalog/catalog.component.ts @@ -129,13 +129,18 @@ export class CatalogComponent implements OnInit, OnDestroy { ); if (this.activeSemester && this.selectedSemesterUID === '') { this.selectedSemesterUID = this.activeSemester.uid; - this.updateLocation(this.selectedSemesterUID); } } // eslint-disable-next-line @typescript-eslint/no-explicit-any segmentChanged(event: any) { - this.updateLocation(event.detail.value as string); + if ( + this.activeSemester && + this.activeSemester.uid !== (event.detail.value as string) + ) { + this.updateLocation(event.detail.value as string); + } + this.activeSemester = this.availableSemesters.find( semester => semester.uid === (event.detail.value as string), ); diff --git a/src/app/modules/catalog/catalog.module.ts b/src/app/modules/catalog/catalog.module.ts index e0e4ca3e..f97850a0 100644 --- a/src/app/modules/catalog/catalog.module.ts +++ b/src/app/modules/catalog/catalog.module.ts @@ -22,6 +22,7 @@ import {MomentModule} from 'ngx-moment'; import {DataModule} from '../data/data.module'; import {SettingsProvider} from '../settings/settings.provider'; import {CatalogComponent} from './catalog.component'; +import {UtilModule} from '../../util/util.module'; const catalogRoutes: Routes = [ {path: 'catalog', component: CatalogComponent}, @@ -41,6 +42,7 @@ const catalogRoutes: Routes = [ CommonModule, MomentModule, DataModule, + UtilModule, ], providers: [SettingsProvider], }) diff --git a/src/app/modules/dashboard/dashboard.component.html b/src/app/modules/dashboard/dashboard.component.html new file mode 100644 index 00000000..64cd9f85 --- /dev/null +++ b/src/app/modules/dashboard/dashboard.component.html @@ -0,0 +1,46 @@ + + + {{ + 'dashboard.header.title' | daytimeKey | translate + }} + + + + + + + +
+ + + + + +
+
diff --git a/src/app/modules/dashboard/dashboard.component.scss b/src/app/modules/dashboard/dashboard.component.scss new file mode 100644 index 00000000..e37b3f54 --- /dev/null +++ b/src/app/modules/dashboard/dashboard.component.scss @@ -0,0 +1,224 @@ +@import '../../../theme/util/mixins'; + +:host ion-toolbar:last-of-type { + --padding-top: var(--spacing-md); + --padding-bottom: 0; + + ion-icon { + margin-right: var(--spacing-sm); + width: var(--font-size-xl); + height: var(--font-size-xl); + } + + ion-label { + font-family: var(--headline-font-family); + font-size: var(--font-size-md); + font-weight: 700; + } + + .logo { + width: 27vw; + max-width: 150px; + max-height: 80px; + aspect-ratio: 1/1; + object-position: right; + margin-left: auto; + margin-right: var(--spacing-sm); + + @include phoneLandscape { + width: auto; + height: 50px; + } + + @include phonePortraitSmall { + width: auto; + height: 50px; + } + } +} + +ion-content { + --background: var(--ion-color-light); + --overflow: hidden; + + .scrollable-container { + overflow: hidden auto; + height: 100%; + padding-top: 160px; + + @media (max-width: 440px) { + padding-top: 140px; + } + + @include ion-md-up { + padding-top: 0; + padding-bottom: 160px; + } + } + + @include phoneLandscape { + --overflow: hidden auto; + + .scrollable-container { + overflow: initial; + height: initial; + padding-top: 0; + padding-bottom: 0; + } + } +} + +.schedule { + position: fixed; + width: 100%; + z-index: 3; + background: var(--ion-color-primary); + display: flex; + justify-content: space-between; + gap: var(--spacing-md); + padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-xl); + + @include ion-md-up { + position: unset; + width: unset; + z-index: unset; + height: calc(var(--tablet-top-bar-height) + (2 * var(--spacing-xl))); + margin: 0; + padding: var(--spacing-xl); + } + + a { + display: flex; + flex-direction: column; + color: var(--ion-color-primary-contrast); + text-decoration: none; + height: auto; + padding: var(--spacing-lg); + border-radius: var(--border-radius-default); + } + + a:first-child { + border: 2px solid var(--ion-color-primary-tint); + text-align: center; + flex: 1 1 auto; + aspect-ratio: 1; + box-sizing: content-box; + max-height: 100px; + + @include phoneLandscape { + height: auto; + } + + ion-icon { + margin: auto auto var(--spacing-xs); + height: 40px; + width: 40px; + } + ion-label { + margin: 0 auto auto; + font-size: var(--font-size-xxs); + font-weight: var(--font-weight-semi-bold); + } + } + + a:last-child { + flex: 1 1 65%; + background: var(--linear-gradient); + justify-content: center; + + @include ion-md-up { + flex: 1 1 100%; + } + + @include phoneLandscape { + flex: 1 1 85%; + } + + ion-label { + font-size: var(--font-size-xxs); + font-weight: var(--font-weight-bold); + line-height: 1.4; + } + ion-label:first-child { + text-transform: uppercase; + color: var(--ion-color-secondary); + } + ion-label:nth-child(2n) { + font-size: var(--font-size-lg); + font-weight: var(--font-weight-semi-bold); + line-height: 1.2; + } + } +} + +.section { + padding: var(--spacing-md); + + &.section-extended { + padding-right: 0; + ion-icon[name='edit'] { + margin-right: var(--spacing-md); + } + } + + &:first-of-type { + padding-top: var(--spacing-lg); + } + + & > ion-label:first-child { + font-family: var(--headline-font-family); + font-size: var(--font-size-lg); + font-weight: var(--font-weight-semi-bold); + text-transform: uppercase; + margin-bottom: var(--spacing-md); + + width: 100%; + display: flex; + flex-direction: revert; + justify-content: space-between; + + ion-icon { + color: var(--ion-color-medium-shade); + width: 25px; + height: 25px; + } + } +} + + +.swiper { + background-color: var(--ion-color-primary-contrast); + border-radius: var(--border-radius-default); + padding: var(--spacing-lg); + width: 28%; + + display: flex; + flex-direction: column; + font-size: var(--font-size-xs); + font-weight: var(--font-weight-bold); + + ion-icon { + width: 40px; + height: 40px; + margin-bottom: var(--spacing-xs); + } +} + + +ion-searchbar { + padding: 0; + --background: var(--ion-color-primary-contrast); + + ::ng-deep .searchbar-input-container { + height: 100%; + + input { + padding: var(--spacing-lg); + } + ion-icon { + left: auto; + right: var(--spacing-lg); + width: 30px; + } + } +} diff --git a/src/app/modules/dashboard/dashboard.component.ts b/src/app/modules/dashboard/dashboard.component.ts new file mode 100644 index 00000000..03ae27d7 --- /dev/null +++ b/src/app/modules/dashboard/dashboard.component.ts @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, OnInit, OnDestroy} from '@angular/core'; +import {Router} from '@angular/router'; +import {Location} from '@angular/common'; +import {Subscription} from 'rxjs'; +import moment from 'moment'; +import {SCDateSeries, SCUuid} from '@openstapps/core'; +import {SplashScreen} from '@capacitor/splash-screen'; + +import {DataRoutingService} from '../data/data-routing.service'; +import {ScheduleProvider} from '../calendar/schedule.provider'; + +@Component({ + selector: 'app-dashboard', + templateUrl: './dashboard.component.html', + styleUrls: ['./dashboard.component.scss'], +}) +export class DashboardComponent implements OnInit, OnDestroy { + /** + * Array of all subscriptions to Observables + */ + subscriptions: Subscription[] = []; + + /** + * UUID subscription + */ + private _uuidSubscription: Subscription; + + /** + * The events to display + */ + private uuids: SCUuid[]; + + /** + * Next event in calendar + */ + nextEvent: SCDateSeries | undefined; + + /** + * Slider options + */ + quickNavigationOptions = { + slidesPerView: 'auto', + spaceBetween: 12, + freeMode: { + enabled: true, + sticky: true, + }, + }; + + constructor( + private readonly dataRoutingService: DataRoutingService, + private scheduleProvider: ScheduleProvider, + protected router: Router, + public location: Location, + ) { + this.subscriptions.push( + this.dataRoutingService.itemSelectListener().subscribe(item => { + void this.router.navigate(['data-detail', item.uid]); + }), + ); + } + + async ngOnInit() { + this._uuidSubscription = this.scheduleProvider.uuids$.subscribe( + async result => { + this.uuids = result; + await this.loadNextEvent(); + }, + ); + await SplashScreen.hide(); + } + + async loadNextEvent() { + const dataSeries = await this.scheduleProvider.getDateSeries( + this.uuids, + ['P1W', 'P2W', 'P3W', 'P4W'], + moment(moment.now()).startOf('week').toISOString(), + ); + + this.nextEvent = + (dataSeries && dataSeries.dates && dataSeries.dates[0]) || undefined; + } + + /** + * Remove subscriptions when the component is removed + */ + ngOnDestroy() { + for (const sub of this.subscriptions) { + sub.unsubscribe(); + } + this._uuidSubscription.unsubscribe(); + } +} diff --git a/src/app/modules/dashboard/dashboard.module.ts b/src/app/modules/dashboard/dashboard.module.ts new file mode 100644 index 00000000..10bff29a --- /dev/null +++ b/src/app/modules/dashboard/dashboard.module.ts @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {CommonModule} from '@angular/common'; +import {NgModule} from '@angular/core'; +import {FormsModule} from '@angular/forms'; +import {RouterModule, Routes} from '@angular/router'; +import {IonicModule} from '@ionic/angular'; +import {SwiperModule} from 'swiper/angular'; +import {TranslateModule} from '@ngx-translate/core'; +import {MomentModule} from 'ngx-moment'; +import {DataModule} from '../data/data.module'; +import {SettingsProvider} from '../settings/settings.provider'; +import {DashboardComponent} from './dashboard.component'; +import {EditModalComponent} from './edit-modal/edit-modal.component'; +import {SectionComponent} from './section/section.component'; +import {NavigationSectionComponent} from './sections/navigation-section/navigation-section.component'; +import {SearchSectionComponent} from './sections/search-section/search-section.component'; +import {NewsSectionComponent} from './sections/news-section/news-section.component'; +import {MensaSectionComponent} from './sections/mensa-section/mensa-section.component'; +import {MensaSectionContentComponent} from './sections/mensa-section/mensa-section-content.component'; +import {FavoritesSectionComponent} from './sections/favorites-section/favorites-section.component'; +import {ThingTranslateModule} from '../../translation/thing-translate.module'; +import {UtilModule} from '../../util/util.module'; + +const catalogRoutes: Routes = [ + { + path: 'dashboard', + component: DashboardComponent, + }, +]; + +/** + * Catalog Module + */ +@NgModule({ + declarations: [ + SectionComponent, + EditModalComponent, + NavigationSectionComponent, + SearchSectionComponent, + NewsSectionComponent, + MensaSectionComponent, + MensaSectionContentComponent, + FavoritesSectionComponent, + DashboardComponent, + ], + imports: [ + IonicModule.forRoot(), + FormsModule, + TranslateModule.forChild(), + RouterModule.forChild(catalogRoutes), + CommonModule, + MomentModule, + DataModule, + SwiperModule, + ThingTranslateModule.forChild(), + UtilModule, + ], + providers: [SettingsProvider], +}) +export class DashboardModule {} diff --git a/src/app/modules/dashboard/dashboard.provider.ts b/src/app/modules/dashboard/dashboard.provider.ts new file mode 100644 index 00000000..0f3bbcd5 --- /dev/null +++ b/src/app/modules/dashboard/dashboard.provider.ts @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Injectable} from '@angular/core'; +import { + SCBooleanFilterArguments, + SCMessage, + SCSearchBooleanFilter, + SCSearchFilter, + SCSearchQuery, +} from '@openstapps/core'; +import {DataProvider} from '../data/data.provider'; +/** + * Service for providing catalog and semester data + */ +@Injectable({ + providedIn: 'root', +}) +export class DashboardProvider { + constructor(private readonly dataProvider: DataProvider) {} + + /** + * Get news messages + * + * @param size How many messages/news to fetch + * @param from From which (results) page to start + * @param filters Additional filters to apply + */ + async getNews( + size: number, + from: number, + filters?: SCSearchFilter[], + ): Promise { + const query: SCSearchQuery = { + filter: { + type: 'boolean', + arguments: { + filters: [ + { + type: 'value', + arguments: { + field: 'type', + value: 'message', + }, + }, + ], + operation: 'and', + }, + }, + sort: [ + { + type: 'generic', + arguments: { + field: 'datePublished', + }, + order: 'desc', + }, + ], + size: size, + from: from, + }; + + if (typeof filters !== 'undefined') { + for (const filter of filters) { + ( + (query.filter as SCSearchBooleanFilter) + .arguments as SCBooleanFilterArguments + ).filters.push(filter); + } + } + + const result = await this.dataProvider.search(query); + + return result.data as SCMessage[]; + } +} diff --git a/src/app/modules/dashboard/edit-modal/edit-modal-type.enum.ts b/src/app/modules/dashboard/edit-modal/edit-modal-type.enum.ts new file mode 100644 index 00000000..5c3fb4ae --- /dev/null +++ b/src/app/modules/dashboard/edit-modal/edit-modal-type.enum.ts @@ -0,0 +1,4 @@ +export enum EditModalTypeEnum { + CHECKBOXES, + RADIOBOXES, +} diff --git a/src/app/modules/dashboard/edit-modal/edit-modal.component.html b/src/app/modules/dashboard/edit-modal/edit-modal.component.html new file mode 100644 index 00000000..f0f15c30 --- /dev/null +++ b/src/app/modules/dashboard/edit-modal/edit-modal.component.html @@ -0,0 +1,51 @@ + + + {{ 'modal.settings' | translate }} + + + + + + + + + + + + {{ item.label | translate }} + + + + + + + {{ + 'dashboard.canteens.choose_favorite' | translate + }} + + + {{ item.name }} + + + + + + + {{ + 'save' | translate + }} + {{ + 'abort' | translate + }} + diff --git a/src/app/modules/dashboard/edit-modal/edit-modal.component.scss b/src/app/modules/dashboard/edit-modal/edit-modal.component.scss new file mode 100644 index 00000000..8206b7d9 --- /dev/null +++ b/src/app/modules/dashboard/edit-modal/edit-modal.component.scss @@ -0,0 +1,3 @@ +:host { + --width: 100vw; +} diff --git a/src/app/modules/dashboard/edit-modal/edit-modal.component.ts b/src/app/modules/dashboard/edit-modal/edit-modal.component.ts new file mode 100644 index 00000000..cdab51f4 --- /dev/null +++ b/src/app/modules/dashboard/edit-modal/edit-modal.component.ts @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, Input, OnInit, ViewChild} from '@angular/core'; +import {IonReorderGroup, ModalController} from '@ionic/angular'; +import {ItemReorderEventDetail} from '@ionic/core'; +import {SCThings} from '@openstapps/core'; +import {MenuItemInterface} from '../sections/navigation-section/menu-item.interface'; +import {EditModalTypeEnum} from './edit-modal-type.enum'; + +/** + * Shows a modal window to sort and enable/disable menu items + */ +@Component({ + selector: 'stapps-edit-modal', + templateUrl: 'edit-modal.component.html', + styleUrls: ['edit-modal.component.scss'], +}) +export class EditModalComponent implements OnInit { + @ViewChild(IonReorderGroup) reorderGroup: IonReorderGroup; + + @Input() type: EditModalTypeEnum = EditModalTypeEnum.CHECKBOXES; + + @Input() items: MenuItemInterface[] | SCThings[]; + + @Input() selectedValue: string; + + reorderedItems: MenuItemInterface[] | SCThings[]; + + types = EditModalTypeEnum; + + constructor(public modalController: ModalController) {} + + ngOnInit() { + this.reorderedItems = this.items; + } + + ionViewWillLeave() { + this.dismissModal(); + } + + doReorder(event: CustomEvent) { + this.reorderedItems = event.detail.complete(this.reorderedItems); + } + + onSaveClick() { + this.modalController.dismiss({ + items: this.reorderedItems, + selectedValue: this.selectedValue, + }); + } + + dismissModal() { + this.modalController.dismiss(); + } +} diff --git a/src/app/modules/dashboard/section/section.component.html b/src/app/modules/dashboard/section/section.component.html new file mode 100644 index 00000000..007f653b --- /dev/null +++ b/src/app/modules/dashboard/section/section.component.html @@ -0,0 +1,10 @@ +{{ title }} + + + + diff --git a/src/app/modules/dashboard/section/section.component.scss b/src/app/modules/dashboard/section/section.component.scss new file mode 100644 index 00000000..3399b87e --- /dev/null +++ b/src/app/modules/dashboard/section/section.component.scss @@ -0,0 +1,55 @@ +@import '../../../../theme/util/mixins'; + +:host { + display: block; + padding: var(--spacing-md) var(--spacing-md) var(--spacing-sm); + + @include ion-md-up { + padding: var(--spacing-lg) var(--spacing-xxl) var(--spacing-sm); + } + + &.is-editable ::ng-deep { + .swiper-button-prev { + right: 65px; + } + + .swiper-button-next { + right: 35px; + } + } + + &.is-extended { + padding-right: 0; + ion-icon[name='edit'] { + margin-right: var(--spacing-md); + } + } + + // TODO + &:first-of-type { + padding-top: var(--spacing-lg); + } + + & > ion-label:first-child { + font-family: var(--headline-font-family); + font-size: var(--font-size-lg); + font-weight: var(--font-weight-bold); + font-stretch: condensed; + text-transform: uppercase; + margin-bottom: var(--spacing-xs); + + width: 100%; + display: flex; + flex-direction: revert; + justify-content: space-between; + + ion-icon { + color: var(--ion-color-medium-shade); + width: 25px; + height: 25px; + position: relative; + bottom: var(--spacing-sm); + cursor: pointer; + } + } +} diff --git a/src/app/modules/dashboard/section/section.component.ts b/src/app/modules/dashboard/section/section.component.ts new file mode 100644 index 00000000..20ee48b5 --- /dev/null +++ b/src/app/modules/dashboard/section/section.component.ts @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import { + Component, + EventEmitter, + HostBinding, + Input, + OnInit, + Output, +} from '@angular/core'; + +/** + * Shows a horizontal list of action chips + */ +@Component({ + selector: 'stapps-section', + templateUrl: 'section.component.html', + styleUrls: ['section.component.scss'], +}) +export class SectionComponent implements OnInit { + @HostBinding('class.is-extended') isExtendedClass = false; + + @HostBinding('class.is-editable') isEditableClass = false; + + @Input() title = ''; + + @Input() isSectionExtended = false; + + @Input() isEditable = false; + + @Input() customIcon?: string = undefined; + + // eslint-disable-next-line @angular-eslint/no-output-on-prefix + @Output() onEdit = new EventEmitter(); + + ngOnInit() { + this.isExtendedClass = this.isSectionExtended; + this.isEditableClass = this.isEditable; + } + + /** + * Action when edit is clicked + */ + onEditClick() { + this.onEdit.emit(); + } +} diff --git a/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.html b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.html new file mode 100644 index 00000000..6d851cee --- /dev/null +++ b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.html @@ -0,0 +1,31 @@ + +
+
+ + + + + {{ 'name' | thingTranslate: item }} + +
+
+ +
+ + {{ 'dashboard.favorites.no_favorite_prefix' | translate }} + {{ + 'dashboard.favorites.no_favorite_link' | translate + }} + {{ 'dashboard.favorites.no_favorite_suffix' | translate }} + +
+
+
diff --git a/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.scss b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.scss new file mode 100644 index 00000000..ed20180e --- /dev/null +++ b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.scss @@ -0,0 +1,36 @@ +.container { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); + gap: var(--spacing-sm); + --size: 60px; + + & > * { + display: inline-block; + position: relative; + overflow: hidden; + width: 100%; + min-height: var(--size); + margin-bottom: var(--spacing-sm); + + ion-thumbnail { + position: absolute; + bottom: 0; + right: 0; + z-index: 1; + transform: translate(10%, 20%); + margin: 0 auto var(--spacing-xs); + --size: 60px; + + ion-icon { + width: var(--size); + height: var(--size); + margin: auto; + --ion-color-base: var(--ion-color-light-icon) !important; + } + } + ion-label { + position: relative; + z-index: 2; + } + } +} diff --git a/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.ts b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.ts new file mode 100644 index 00000000..59453f10 --- /dev/null +++ b/src/app/modules/dashboard/sections/favorites-section/favorites-section.component.ts @@ -0,0 +1,145 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, OnInit} from '@angular/core'; +import {ActivatedRoute, Router} from '@angular/router'; +import {AlertController} from '@ionic/angular'; +import {combineLatest} from 'rxjs'; +import { + debounceTime, + distinctUntilChanged, + startWith, + take, +} from 'rxjs/operators'; +import {NGXLogger} from 'ngx-logger'; +import {SCThings} from '@openstapps/core'; + +import {DataProvider} from '../../../data/data.provider'; +import {DataRoutingService} from '../../../data/data-routing.service'; +import {SearchPageComponent} from '../../../data/list/search-page.component'; +import {PositionService} from '../../../map/position.service'; +import {SettingsProvider} from '../../../settings/settings.provider'; +import {FavoritesService} from '../../../favorites/favorites.service'; +import {ContextMenuService} from '../../../menu/context/context-menu.service'; +import {ConfigProvider} from '../../../config/config.provider'; + +/** + * Shows a section with meals of the chosen mensa + */ +@Component({ + selector: 'stapps-favorites-section', + templateUrl: 'favorites-section.component.html', + styleUrls: ['favorites-section.component.scss'], +}) +export class FavoritesSectionComponent + extends SearchPageComponent + implements OnInit +{ + constructor( + protected readonly alertController: AlertController, + protected dataProvider: DataProvider, + protected readonly contextMenuService: ContextMenuService, + protected readonly settingsProvider: SettingsProvider, + protected readonly logger: NGXLogger, + protected dataRoutingService: DataRoutingService, + protected router: Router, + route: ActivatedRoute, + positionService: PositionService, + private favoritesService: FavoritesService, + configProvider: ConfigProvider, + ) { + super( + alertController, + dataProvider, + contextMenuService, + settingsProvider, + logger, + dataRoutingService, + router, + route, + positionService, + configProvider, + ); + } + + async initialize() { + this.subscriptions.push( + combineLatest([ + this.queryTextChanged.pipe( + debounceTime(this.searchQueryDueTime), + distinctUntilChanged(), + startWith(this.queryText), + ), + this.favoritesService.favoritesChanged$, + ]).subscribe(async () => { + await this.fetchAndUpdateItems(); + this.queryChanged.next(); + }), + ); + } + + /** + * Fetches/updates the favorites (search page component's method override) + */ + async fetchAndUpdateItems() { + this.favoritesService + .search(this.queryText, this.filterQuery, this.sortQuery) + .pipe(take(1)) + .subscribe(result => { + this.items = new Promise(resolve => { + resolve( + result.data && result.data.filter(item => !this.isMensaThing(item)), + ); + }); + }); + } + + /** + * Helper function as 'typeof' is not accessible in HTML + * + * @param item TODO + */ + isMensaThing(item: SCThings): boolean { + return ( + this.hasCategories(item) && + ((item.categories as string[]).includes('canteen') || + (item.categories as string[]).includes('cafe') || + (item.categories as string[]).includes('student canteen') || + (item.categories as string[]).includes('restaurant')) + ); + } + + /** + * TODO + * + * @param item TODO + */ + hasCategories(item: SCThings): item is SCThings & {categories: string[]} { + return typeof (item as {categories: string[]}).categories !== 'undefined'; + } + + /** + * Emit event that an item was selected + */ + notifySelect(item: SCThings) { + this.dataRoutingService.emitChildEvent(item); + } + + /** + * Action when user clicked edit to this section + */ + onSectionEdit() { + void this.router.navigate(['/search']); + } +} diff --git a/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.html b/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.html new file mode 100644 index 00000000..99d9a3cb --- /dev/null +++ b/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.html @@ -0,0 +1,17 @@ + + + + {{ 'name' | thingTranslate: dish }} + + + +
+ + {{ 'dashboard.canteens.no_dishes_available' | translate }} + +
diff --git a/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.ts b/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.ts new file mode 100644 index 00000000..00e59796 --- /dev/null +++ b/src/app/modules/dashboard/sections/mensa-section/mensa-section-content.component.ts @@ -0,0 +1,77 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import { + Component, + Input, + OnInit, + OnChanges, + SimpleChanges, +} from '@angular/core'; +import {SCDish, SCPlace, SCThings} from '@openstapps/core'; +import {PlaceMensaService} from '../../../data/types/place/special/mensa/place-mensa-service'; + +/** + * Shows a section with meals of the chosen mensa + */ +@Component({ + selector: 'stapps-mensa-section-content', + templateUrl: 'mensa-section-content.component.html', + styleUrls: ['mensa-section.component.scss'], +}) +export class MensaSectionContentComponent implements OnInit, OnChanges { + /** + * Slider options + */ + sliderOptions = { + spaceBetween: 12, + freeMode: { + enabled: true, + sticky: true, + }, + width: 120, + }; + + /** + * Map of dishes for each day + */ + // eslint-disable-next-line unicorn/no-null + dishes: SCDish[] | null = []; + + @Input() items: SCThings[]; + + constructor(private readonly mensaService: PlaceMensaService) {} + + async ngOnInit() { + await this.getDishes(); + } + + async ngOnChanges(changes: SimpleChanges) { + if (typeof changes.items !== 'undefined') { + await this.getDishes(); + } + } + + /** + * Request dishes + */ + async getDishes() { + if (this.items) { + for (const item of this.items) { + const dishes = await this.mensaService.getAllDishes(item as SCPlace, 1); + this.dishes?.push(...dishes[Object.keys(dishes)[0]]); + } + } + } +} diff --git a/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.html b/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.html new file mode 100644 index 00000000..d93eee1e --- /dev/null +++ b/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.html @@ -0,0 +1,22 @@ + + + + + +
+ + {{ 'dashboard.canteens.no_favorite_prefix' | translate }} + {{ + 'dashboard.canteens.no_favorite_link' | translate + }} + {{ 'dashboard.canteens.no_favorite_suffix' | translate }} + +
+
+
diff --git a/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.scss b/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.scss new file mode 100644 index 00000000..e69de29b diff --git a/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.ts b/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.ts new file mode 100644 index 00000000..7a4d55ba --- /dev/null +++ b/src/app/modules/dashboard/sections/mensa-section/mensa-section.component.ts @@ -0,0 +1,148 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component} from '@angular/core'; +import {ActivatedRoute, Router} from '@angular/router'; +import {AlertController, ModalController} from '@ionic/angular'; +import {combineLatest, Subscription} from 'rxjs'; +import { + debounceTime, + distinctUntilChanged, + startWith, + take, +} from 'rxjs/operators'; +import {NGXLogger} from 'ngx-logger'; +import {SCThings} from '@openstapps/core'; + +import {DataProvider} from '../../../data/data.provider'; +import {DataRoutingService} from '../../../data/data-routing.service'; +import {FoodDataListComponent} from '../../../data/list/food-data-list.component'; +import {PositionService} from '../../../map/position.service'; +import {SettingsProvider} from '../../../settings/settings.provider'; +import {FavoritesService} from '../../../favorites/favorites.service'; +import {ContextMenuService} from '../../../menu/context/context-menu.service'; +import {ConfigProvider} from '../../../config/config.provider'; + +/** + * Shows a section with meals of the chosen mensa + */ +@Component({ + selector: 'stapps-mensa-section', + templateUrl: 'mensa-section.component.html', + styleUrls: ['mensa-section.component.scss'], +}) +export class MensaSectionComponent extends FoodDataListComponent { + sub: Subscription; + + constructor( + protected readonly alertController: AlertController, + protected dataProvider: DataProvider, + protected readonly contextMenuService: ContextMenuService, + protected readonly settingsProvider: SettingsProvider, + protected readonly logger: NGXLogger, + protected dataRoutingService: DataRoutingService, + protected router: Router, + route: ActivatedRoute, + protected positionService: PositionService, + public modalController: ModalController, + protected favoritesService: FavoritesService, + configProvider: ConfigProvider, + ) { + super( + alertController, + dataProvider, + contextMenuService, + settingsProvider, + logger, + dataRoutingService, + router, + route, + positionService, + configProvider, + ); + } + + async initialize() { + super.initialize(); + + this.subscriptions.push( + combineLatest([ + this.queryTextChanged.pipe( + debounceTime(this.searchQueryDueTime), + distinctUntilChanged(), + startWith(this.queryText), + ), + this.favoritesService.favoritesChanged$, + ]).subscribe(async query => { + this.queryText = query[0]; + this.from = 0; + if ( + typeof this.filterQuery !== 'undefined' || + this.queryText?.length > 0 || + this.showDefaultData + ) { + await this.fetchAndUpdateItems(); + this.queryChanged.next(); + } + }), + ); + } + + /** + * Fetches/updates the favorites (search page component's method override) + */ + async fetchAndUpdateItems() { + this.favoritesService + .search(this.queryText, this.filterQuery, this.sortQuery) + .pipe(take(1)) + .subscribe(result => { + this.items = new Promise(resolve => { + resolve( + result.data && result.data.filter(item => this.isMensaThing(item)), + ); + }); + }); + } + + /** + * Helper function as 'typeof' is not accessible in HTML + * + * @param item TODO + */ + isMensaThing(item: SCThings): boolean { + return ( + this.hasCategories(item) && + ((item.categories as string[]).includes('canteen') || + (item.categories as string[]).includes('cafe') || + (item.categories as string[]).includes('student canteen') || + (item.categories as string[]).includes('restaurant')) + ); + } + + /** + * TODO + * + * @param item TODO + */ + hasCategories(item: SCThings): item is SCThings & {categories: string[]} { + return typeof (item as {categories: string[]}).categories !== 'undefined'; + } + + /** + * Action when user clicked edit to this section + */ + onSectionEdit() { + void this.router.navigate(['/canteen']); + } +} diff --git a/src/app/modules/dashboard/sections/navigation-section/menu-item.interface.ts b/src/app/modules/dashboard/sections/navigation-section/menu-item.interface.ts new file mode 100644 index 00000000..4d231929 --- /dev/null +++ b/src/app/modules/dashboard/sections/navigation-section/menu-item.interface.ts @@ -0,0 +1,6 @@ +export interface MenuItemInterface { + icon: string; + label: string; + link: string; + active: boolean; +} diff --git a/src/app/modules/dashboard/sections/navigation-section/menu-items.config.ts b/src/app/modules/dashboard/sections/navigation-section/menu-items.config.ts new file mode 100644 index 00000000..ed9a76a8 --- /dev/null +++ b/src/app/modules/dashboard/sections/navigation-section/menu-items.config.ts @@ -0,0 +1,34 @@ +import {MenuItemInterface} from './menu-item.interface'; + +export const MenuItems: MenuItemInterface[] = [ + { + icon: 'book', + label: 'dashboard.navigation.item.catalog', + link: '/catalog', + active: true, + }, + { + icon: 'tools-kitchen', + label: 'dashboard.navigation.item.canteen', + link: '/canteen', + active: true, + }, + { + icon: 'map', + label: 'dashboard.navigation.item.map', + link: '/map', + active: true, + }, + { + icon: 'settings', + label: 'dashboard.navigation.item.settings', + link: '/settings', + active: true, + }, + { + icon: 'search', + label: 'dashboard.navigation.item.search', + link: '/search', + active: false, + }, +]; diff --git a/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.html b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.html new file mode 100644 index 00000000..4208341b --- /dev/null +++ b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.html @@ -0,0 +1,19 @@ + + + + + + {{ menuItem.label | translate }} + + + + diff --git a/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.scss b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.scss new file mode 100644 index 00000000..eb37fb2b --- /dev/null +++ b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.scss @@ -0,0 +1,21 @@ +.navigation-swiper.swiper { + + .swiper-slide { + + a { + font-family: var(--ion-font-family); + font-size: var(--font-size-xs); + font-weight: var(--font-weight-semi-bold); + text-align: center; + padding: var(--spacing-md) var(--spacing-lg); + justify-content: center; + } + + ion-icon { + display: block; + width: 40px; + height: 40px; + margin: auto; + } + } +} diff --git a/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.ts b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.ts new file mode 100644 index 00000000..bf788b97 --- /dev/null +++ b/src/app/modules/dashboard/sections/navigation-section/navigation-section.component.ts @@ -0,0 +1,111 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, OnInit, ViewEncapsulation} from '@angular/core'; +import {ModalController} from '@ionic/angular'; +import {EditModalComponent} from '../../edit-modal/edit-modal.component'; +import {MenuItems} from './menu-items.config'; +import {MenuItemInterface} from './menu-item.interface'; +import {EditModalTypeEnum} from '../../edit-modal/edit-modal-type.enum'; +import {StorageProvider} from '../../../storage/storage.provider'; + +const DASHBOARD_NAVIGATION = 'stapps.dashboard.navigation'; + +/** + * Shows a horizontal list of navigation items + */ +@Component({ + selector: 'stapps-navigation-section', + templateUrl: 'navigation-section.component.html', + styleUrls: ['navigation-section.component.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class NavigationSectionComponent implements OnInit { + /** + * Slider options + */ + sliderOptions = { + spaceBetween: 12, + freeMode: { + enabled: true, + sticky: true, + }, + width: 120, + }; + + menuItems: MenuItemInterface[] = MenuItems; + + activeMenuItems: MenuItemInterface[] = MenuItems; + + constructor( + public modalController: ModalController, + private storageProvider: StorageProvider, + ) {} + + ngOnInit() { + void this.getItems(); + } + + /** + * Get current order of items + */ + async getItems() { + if (await this.storageProvider.has(DASHBOARD_NAVIGATION)) { + const storedMenuItems: string = await this.storageProvider.get( + DASHBOARD_NAVIGATION, + ); + if (storedMenuItems) { + const parsedMenuItems = JSON.parse(storedMenuItems); + if (Array.isArray(parsedMenuItems)) { + this.menuItems = parsedMenuItems; + this.activeMenuItems = parsedMenuItems.filter(item => item.active); + } + } + } + } + + /** + * Save updated order of items + * + * @param items List of items + */ + setItems(items: MenuItemInterface[]) { + this.menuItems = items; + this.activeMenuItems = items.filter(item => item.active); + void this.storageProvider.put( + DASHBOARD_NAVIGATION, + JSON.stringify(items), + ); + } + + /** + * Action when user clicked edit to this section + */ + async onSectionEdit() { + const modal = await this.modalController.create({ + component: EditModalComponent, + componentProps: { + items: this.menuItems, + type: EditModalTypeEnum.CHECKBOXES, + }, + }); + await modal.present(); + + modal.onDidDismiss().then(result => { + if (result.data?.items) { + this.setItems(result.data.items); + } + }); + } +} diff --git a/src/app/modules/dashboard/sections/news-section/news-section.component.html b/src/app/modules/dashboard/sections/news-section/news-section.component.html new file mode 100644 index 00000000..076920d0 --- /dev/null +++ b/src/app/modules/dashboard/sections/news-section/news-section.component.html @@ -0,0 +1,32 @@ + + + + + + {{ newsItem.name }} + + + + + {{ + 'dashboard.news.moreNews' | translate | titlecase + }} + + + + + + + diff --git a/src/app/modules/dashboard/sections/news-section/news-section.component.scss b/src/app/modules/dashboard/sections/news-section/news-section.component.scss new file mode 100644 index 00000000..5ada1b1e --- /dev/null +++ b/src/app/modules/dashboard/sections/news-section/news-section.component.scss @@ -0,0 +1,48 @@ +.news-swiper.swiper { + + .swiper-slide { + padding: 0; + + .card { + padding: 0; + + ion-img { + border-radius: var(--border-radius-default) var(--border-radius-default) 0 0; + overflow: hidden; + } + + ion-label { + margin: var(--spacing-lg); + text-align: left; + font-size: var(--font-size-sm); + font-weight: var(--font-weight-bold); + display: -webkit-box; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + } + + &.more-news { + ion-label { + font-size: var(--font-size-lg); + } + + ion-thumbnail { + position: absolute; + bottom: 0; + right: 0; + z-index: 1; + margin: 0 auto var(--spacing-xs); + --size: 160px; + + ion-icon { + width: var(--size); + height: var(--size); + margin: auto; + --ion-color-base: var(--ion-color-light-icon) !important; + } + } + } + } + } +} diff --git a/src/app/modules/dashboard/sections/news-section/news-section.component.ts b/src/app/modules/dashboard/sections/news-section/news-section.component.ts new file mode 100644 index 00000000..6e9b3423 --- /dev/null +++ b/src/app/modules/dashboard/sections/news-section/news-section.component.ts @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, OnInit, ViewEncapsulation} from '@angular/core'; +import {Router} from '@angular/router'; +import {NewsPageComponent} from '../../../news/page/news-page.component'; +import {NewsProvider} from '../../../news/news.provider'; +import {SettingsProvider} from '../../../settings/settings.provider'; +import { + newsFilterSettingsFieldsMapping, + NewsFilterSettingsNames, +} from '../../../news/news-filter-settings'; +import {DataProvider} from '../../../data/data.provider'; +import {SCSearchValueFilter} from '@openstapps/core'; + +/** + * Shows a section with news + */ +@Component({ + selector: 'stapps-news-section', + templateUrl: 'news-section.component.html', + styleUrls: ['news-section.component.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class NewsSectionComponent extends NewsPageComponent implements OnInit { + /** + * Slider options + */ + sliderOptions = { + spaceBetween: 12, + freeMode: { + enabled: true, + sticky: true, + }, + width: 240, + breakpoints: { + 768: { + width: 280, + }, + }, + }; + + pageSize = 5; + + /** + * A map of the filters where the keys are settings names + */ + filtersMap = new Map(); + + constructor( + newsProvider: NewsProvider, + settingsProvider: SettingsProvider, + private router: Router, + ) { + super(newsProvider, settingsProvider); + } + + async ngOnInit() { + await super.ngOnInit(); + for (const setting of this.settings) { + this.filtersMap.set( + setting.name as NewsFilterSettingsNames, + DataProvider.createValueFilter( + newsFilterSettingsFieldsMapping[ + setting.name as NewsFilterSettingsNames + ], + setting.value as string, + ), + ); + } + + this.filters = [...this.filtersMap.values()]; + + try { + await this.fetchNews(); + } catch { + this.news = []; + } + } + + onMoreNewsClicked() { + void this.router.navigate(['/news']); + } +} diff --git a/src/app/modules/dashboard/sections/search-section/search-section.component.html b/src/app/modules/dashboard/sections/search-section/search-section.component.html new file mode 100644 index 00000000..066cc8d9 --- /dev/null +++ b/src/app/modules/dashboard/sections/search-section/search-section.component.html @@ -0,0 +1,19 @@ + + + diff --git a/src/app/modules/dashboard/sections/search-section/search-section.component.scss b/src/app/modules/dashboard/sections/search-section/search-section.component.scss new file mode 100644 index 00000000..3f50d742 --- /dev/null +++ b/src/app/modules/dashboard/sections/search-section/search-section.component.scss @@ -0,0 +1,24 @@ +.searchbar { + position: relative; + max-width: 700px; + + ion-input { + background: var(--ion-color-field-bg); + border-radius: var(--border-radius-default); + --padding-start: var(--spacing-md); + --padding-end: var(--spacing-md); + --padding-top: var(--spacing-xl); + --padding-bottom: var(--spacing-xl); + font-size: var(--font-size-xs); + box-shadow: var(--shadow-default); + } + ion-icon { + position: absolute; + top: 50%; + right: var(--spacing-md); + transform: translateY(-50%); + z-index: 2; + width: 25px; + height: 25px; + } +} diff --git a/src/app/modules/dashboard/sections/search-section/search-section.component.ts b/src/app/modules/dashboard/sections/search-section/search-section.component.ts new file mode 100644 index 00000000..1e0c395a --- /dev/null +++ b/src/app/modules/dashboard/sections/search-section/search-section.component.ts @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2022 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component} from '@angular/core'; +import {Router} from '@angular/router'; + +/** + * Shows a search input field + */ +@Component({ + selector: 'stapps-search-section', + templateUrl: 'search-section.component.html', + styleUrls: ['search-section.component.scss'], +}) +export class SearchSectionComponent { + searchTerm = ''; + + constructor(private router: Router) {} + + /** + * User submits search + */ + onSubmitSearch() { + this.router.navigate(['/search', this.searchTerm]); + } +} diff --git a/src/app/modules/data/chips/data/add-event-action-chip.scss b/src/app/modules/data/chips/data/add-event-action-chip.scss index 3c3deb99..04f80941 100644 --- a/src/app/modules/data/chips/data/add-event-action-chip.scss +++ b/src/app/modules/data/chips/data/add-event-action-chip.scss @@ -1,5 +1,10 @@ -:host ::ng-deep ion-skeleton-text { - width: 50px; +:host { + display: block; + padding: var(--spacing-sm); + + ::ng-deep ion-skeleton-text { + width: 50px; + } } .stack-children { diff --git a/src/app/modules/data/chips/filter/chip-filter.component.html b/src/app/modules/data/chips/filter/chip-filter.component.html index e76027f7..22027252 100644 --- a/src/app/modules/data/chips/filter/chip-filter.component.html +++ b/src/app/modules/data/chips/filter/chip-filter.component.html @@ -2,6 +2,6 @@ [attr.color]="active ? 'primary' : 'medium'" (click)="emitToggle(value)" > - + {{ displayValue }} diff --git a/src/app/modules/data/data-icon.pipe.ts b/src/app/modules/data/data-icon.pipe.ts index 582f3fde..a7f6c9ce 100644 --- a/src/app/modules/data/data-icon.pipe.ts +++ b/src/app/modules/data/data-icon.pipe.ts @@ -30,33 +30,33 @@ export class DataIconPipe implements PipeTransform { constructor() { this.typeIconMap = { 'academic event': 'school', - 'assessment': 'document-text', - 'article': 'document', + 'assessment': 'file-text', + 'article': 'file', 'book': 'book', 'building': 'location', 'catalog': 'folder', - 'contact point': 'call', + 'contact point': 'phone', 'course of study': 'school', 'date series': 'calendar', - 'dish': 'restaurant', + 'dish': 'tools-kitchen-2', 'favorite': 'heart', - 'floor': 'caret-up-circle', - 'message': 'newspaper', + 'floor': 'arrow-up-circle', + 'message': 'news', 'organization': 'briefcase', - 'periodical': 'newspaper', - 'person': 'person', + 'periodical': 'news', + 'person': 'user', 'point of interest': 'location', - 'publication event': 'megaphone', + 'publication event': 'speakerphone', 'room': 'location', 'semester': 'school', 'setting': 'settings', - 'sport course': 'football', + 'sport course': 'ball-football', 'study module': 'school', 'ticket': 'ticket', 'todo': 'checkbox', - 'tour': 'help-buoy', - 'video': 'videocam', - 'diff': 'swap-horizontal', + 'tour': 'lifebuoy', + 'video': 'video', + 'diff': 'arrows-left-right', }; } diff --git a/src/app/modules/data/data-routing.module.ts b/src/app/modules/data/data-routing.module.ts index 7b98560a..178def4b 100644 --- a/src/app/modules/data/data-routing.module.ts +++ b/src/app/modules/data/data-routing.module.ts @@ -20,6 +20,7 @@ import {SearchPageComponent} from './list/search-page.component'; const dataRoutes: Routes = [ {path: 'search', component: SearchPageComponent}, + {path: 'search/:term', component: SearchPageComponent}, {path: 'data-detail/:uid', component: DataDetailComponent}, {path: 'canteen', component: FoodDataListComponent}, ]; diff --git a/src/app/modules/data/detail/data-detail-content.component.ts b/src/app/modules/data/detail/data-detail-content.component.ts index ddd885e5..31e1ac46 100644 --- a/src/app/modules/data/detail/data-detail-content.component.ts +++ b/src/app/modules/data/detail/data-detail-content.component.ts @@ -15,6 +15,7 @@ import {Component, Input, TemplateRef} from '@angular/core'; import {SCThings} from '@openstapps/core'; import {DataListContext} from '../list/data-list.component'; +import {ModalController} from '@ionic/angular'; /** * TODO @@ -31,4 +32,10 @@ export class DataDetailContentComponent { @Input() item: SCThings; @Input() contentTemplateRef?: TemplateRef>; + + @Input() openAsModal = false; + + @Input() showModalHeader = false; + + constructor(readonly modalController: ModalController) {} } diff --git a/src/app/modules/data/detail/data-detail-content.html b/src/app/modules/data/detail/data-detail-content.html index 523090b0..27a8da89 100644 --- a/src/app/modules/data/detail/data-detail-content.html +++ b/src/app/modules/data/detail/data-detail-content.html @@ -1,4 +1,15 @@ - + + + {{ 'name' | thingTranslate: item }} + + {{ + 'app.ui.CLOSE' | translate + }} + + + + + - + diff --git a/src/app/modules/data/detail/data-detail-content.scss b/src/app/modules/data/detail/data-detail-content.scss index d8eea3c8..8d603e9e 100644 --- a/src/app/modules/data/detail/data-detail-content.scss +++ b/src/app/modules/data/detail/data-detail-content.scss @@ -31,4 +31,22 @@ padding-top: 0; padding-bottom: 0; } + + > div { + padding: 0 var(--spacing-md); + background-color: var(--ion-color-light); + + & > * { + display: block; + border-radius: var(--border-radius-default); + overflow: hidden; + position: relative; + top: calc((var(--header-spacing-bottom) - var(--spacing-xl)) * -1); + background-color: var(--ion-color-primary-contrast); + + & > ion-thumbnail { + background: var(--ion-color-primary); + } + } + } } diff --git a/src/app/modules/data/detail/data-detail.component.ts b/src/app/modules/data/detail/data-detail.component.ts index 6c61aafd..a08772af 100644 --- a/src/app/modules/data/detail/data-detail.component.ts +++ b/src/app/modules/data/detail/data-detail.component.ts @@ -123,7 +123,7 @@ export class DataDetailComponent implements ViewWillEnter { this.isDisconnected = new Promise(async resolve => { const isConnected = (await Network.getStatus()).connected; - resolve(isConnected); + resolve(!isConnected); }); } @@ -167,7 +167,7 @@ export class DataDetailComponent implements ViewWillEnter { .get(uid) .pipe(take(1)) .subscribe(item => { - if (typeof item !== undefined) { + if (typeof item !== 'undefined') { this.item = item; } }); diff --git a/src/app/modules/data/detail/data-detail.html b/src/app/modules/data/detail/data-detail.html index 88fdceeb..a3a7f1fb 100644 --- a/src/app/modules/data/detail/data-detail.html +++ b/src/app/modules/data/detail/data-detail.html @@ -14,18 +14,12 @@ --> - + - {{ 'data.detail.TITLE' | translate }} diff --git a/src/app/modules/data/elements/title-card.component.html b/src/app/modules/data/elements/title-card.component.html index da789dd0..3b1a49c1 100644 --- a/src/app/modules/data/elements/title-card.component.html +++ b/src/app/modules/data/elements/title-card.component.html @@ -25,7 +25,7 @@ }} -
+

- + diff --git a/src/app/modules/data/list/data-list-item.scss b/src/app/modules/data/list/data-list-item.scss index a0be2a73..42c6bc34 100644 --- a/src/app/modules/data/list/data-list-item.scss +++ b/src/app/modules/data/list/data-list-item.scss @@ -1,4 +1,13 @@ -:host ::ng-deep { +ion-item { + --border-color: transparent; + border-radius: var(--border-radius-default); + overflow: hidden; + --inner-padding-end: 0; + + ion-thumbnail { + --ion-margin: var(--spacing-xs); + } + ion-label { width: 100%; diff --git a/src/app/modules/data/list/data-list.scss b/src/app/modules/data/list/data-list.scss index ff579655..f6539af5 100644 --- a/src/app/modules/data/list/data-list.scss +++ b/src/app/modules/data/list/data-list.scss @@ -1,7 +1,10 @@ - cdk-virtual-scroll-viewport { height: 100%; width: 100%; + + ion-list { + background: transparent; + } } ::ng-deep { diff --git a/src/app/modules/data/list/food-data-list.component.ts b/src/app/modules/data/list/food-data-list.component.ts index 9bdf2035..59fe9d88 100644 --- a/src/app/modules/data/list/food-data-list.component.ts +++ b/src/app/modules/data/list/food-data-list.component.ts @@ -20,8 +20,13 @@ import {SearchPageComponent} from './search-page.component'; */ @Component({ templateUrl: 'search-page.html', + styleUrls: ['../../data/list/search-page.scss'], }) export class FoodDataListComponent extends SearchPageComponent { + title = 'canteens.title'; + + showNavigation = false; + /** * Sets the forced filter to present only places for eating/drinking */ diff --git a/src/app/modules/data/list/search-page.component.ts b/src/app/modules/data/list/search-page.component.ts index 9345c4e5..3fb37433 100644 --- a/src/app/modules/data/list/search-page.component.ts +++ b/src/app/modules/data/list/search-page.component.ts @@ -13,11 +13,12 @@ * this program. If not, see . */ import {Component, Input, OnInit, OnDestroy} from '@angular/core'; -import {Router} from '@angular/router'; +import {ActivatedRoute, Router} from '@angular/router'; import {Keyboard} from '@capacitor/keyboard'; import {AlertController} from '@ionic/angular'; import { SCFacet, + SCFeatureConfiguration, SCSearchFilter, SCSearchQuery, SCSearchSort, @@ -31,6 +32,7 @@ import {SettingsProvider} from '../../settings/settings.provider'; import {DataRoutingService} from '../data-routing.service'; import {DataProvider} from '../data.provider'; import {PositionService} from '../../map/position.service'; +import {ConfigProvider} from '../../config/config.provider'; /** * SearchPageComponent queries things and shows list of things as search results and filter as context menu @@ -38,14 +40,24 @@ import {PositionService} from '../../map/position.service'; @Component({ selector: 'stapps-search-page', templateUrl: 'search-page.html', + styleUrls: ['search-page.scss'], providers: [ContextMenuService], }) export class SearchPageComponent implements OnInit, OnDestroy { + title = 'search.title'; + + isHebisAvailable = false; + /** * Signalizes that the data is being loaded */ loading = false; + /** + * Display the navigation between default and library search + */ + @Input() showNavigation = true; + /** * Show default data (e.g. when there is user interaction) */ @@ -56,6 +68,11 @@ export class SearchPageComponent implements OnInit, OnDestroy { */ @Input() showDrawer = true; + /** + * Show "universal search" toolbar + */ + @Input() showTopToolbar = true; + /** * Api query filter */ @@ -131,7 +148,9 @@ export class SearchPageComponent implements OnInit, OnDestroy { * @param logger An angular logger * @param dataRoutingService DataRoutingService * @param router Router + * @param route ActivatedRoute * @param positionService PositionService + * @param configProvider ConfigProvider */ constructor( protected readonly alertController: AlertController, @@ -141,7 +160,9 @@ export class SearchPageComponent implements OnInit, OnDestroy { protected readonly logger: NGXLogger, protected dataRoutingService: DataRoutingService, protected router: Router, + private readonly route: ActivatedRoute, protected positionService: PositionService, + private readonly configProvider: ConfigProvider, ) {} /** @@ -314,10 +335,29 @@ export class SearchPageComponent implements OnInit, OnDestroy { ), this.dataRoutingService.itemSelectListener().subscribe(item => { if (this.itemRouting) { - void this.router.navigate(['data-detail', item.uid]); + void this.router.navigate(['/data-detail', item.uid]); } }), ); + try { + const features = this.configProvider.getValue( + 'features', + ) as SCFeatureConfiguration; + this.isHebisAvailable = !!features.plugins?.['hebis-plugin']?.urlPath; + } catch (error) { + this.logger.error(error); + } + } + + /** + * Initialize + */ + async ionViewWillEnter() { + const term = this.route.snapshot.paramMap.get('term') || undefined; + if (term) { + this.queryText = term; + this.searchStringChanged(term); + } } ngOnDestroy() { diff --git a/src/app/modules/data/list/search-page.html b/src/app/modules/data/list/search-page.html index 0e27f829..f40ce4e0 100644 --- a/src/app/modules/data/list/search-page.html +++ b/src/app/modules/data/list/search-page.html @@ -1,29 +1,51 @@ - + - - - - - - - + + {{ title | translate }} + + + + + + + + {{ + 'search.type' | translate + }} + {{ 'hebisSearch.type' | translate }} + + + - +
diff --git a/src/app/modules/data/list/search-page.scss b/src/app/modules/data/list/search-page.scss index e69de29b..a903bbaa 100644 --- a/src/app/modules/data/list/search-page.scss +++ b/src/app/modules/data/list/search-page.scss @@ -0,0 +1,37 @@ +:host { + display: flex; + flex-direction: column; + flex: 1 1 100%; + height: 100%; +} + +ion-toolbar:first-of-type { + padding: 0 var(--spacing-md) var(--spacing-xs); +} + +.category-tab { + ion-buttons { + gap: var(--spacing-md); + + ion-button { + width: 50%; + margin: 0; + text-transform: none; + } + } +} + +ion-content { + --background: var(--ion-color-light); +} + +.content > div { + height: 100%; + + ion-label.centeredMessageContainer { + min-height: unset; + height: 100%; + margin-top: 0; + margin-bottom: 0; + } +} diff --git a/src/app/modules/data/list/simple-data-list.component.ts b/src/app/modules/data/list/simple-data-list.component.ts index 1c151e76..0f885cd6 100644 --- a/src/app/modules/data/list/simple-data-list.component.ts +++ b/src/app/modules/data/list/simple-data-list.component.ts @@ -75,7 +75,7 @@ export class SimpleDataListComponent implements OnInit, OnDestroy { if (!this.autoRouting) return; this.subscriptions.push( this.dataRoutingService.itemSelectListener().subscribe(item => { - void this.router.navigate(['data-detail', item.uid]); + void this.router.navigate(['/data-detail', item.uid]); }), ); } diff --git a/src/app/modules/data/types/article/article-list-item.html b/src/app/modules/data/types/article/article-list-item.html index 180d8694..fbe5b64a 100644 --- a/src/app/modules/data/types/article/article-list-item.html +++ b/src/app/modules/data/types/article/article-list-item.html @@ -1,7 +1,7 @@ -

{{ 'name' | thingTranslate: item }}

+ {{ 'name' | thingTranslate: item }}

- -

- {{ 'name' | thingTranslate: item }} -

+ + {{ 'name' | thingTranslate: item }} - {{ - item.academicTerm.name - }} +

+ {{ item.academicTerm.name }} +

diff --git a/src/app/modules/data/types/date-series/date-series-list-item.html b/src/app/modules/data/types/date-series/date-series-list-item.html index 74dfe48f..be6cad35 100644 --- a/src/app/modules/data/types/date-series/date-series-list-item.html +++ b/src/app/modules/data/types/date-series/date-series-list-item.html @@ -2,7 +2,7 @@
-

{{ 'name' | thingTranslate: item }}

+ {{ 'name' | thingTranslate: item }}

diff --git a/src/app/modules/data/types/dish/dish-list-item.html b/src/app/modules/data/types/dish/dish-list-item.html index 5d5f5817..30e19772 100644 --- a/src/app/modules/data/types/dish/dish-list-item.html +++ b/src/app/modules/data/types/dish/dish-list-item.html @@ -2,8 +2,8 @@

-

{{ 'name' | thingTranslate: item }}

-

+ {{ 'name' | thingTranslate: item }} +

{{ 'description' | thingTranslate: item }}

{{ 'categories' | thingTranslate: item | join: ', ' }}

diff --git a/src/app/modules/data/types/event/event-list-item.html b/src/app/modules/data/types/event/event-list-item.html index 30b02e82..a1a66915 100644 --- a/src/app/modules/data/types/event/event-list-item.html +++ b/src/app/modules/data/types/event/event-list-item.html @@ -2,18 +2,22 @@
-

{{ item.name }}

-

{{ item.description }}

-

{{ item.academicTerms[0].name }}

+ {{ item.name }} +

{{ item.description }}

+

+ {{ item.academicTerms[0].name }} +

{{ item.type }} ({{ item.categories.join(', ') }})
-

{{ item.name }}

-

{{ item.description }}

-

{{ item.academicTerms[0].name }}

+ {{ item.name }} +

{{ item.description }}

+

+ {{ item.academicTerms[0].name }} +

{{ item.type }}
diff --git a/src/app/modules/data/types/favorite/favorite-list-item.html b/src/app/modules/data/types/favorite/favorite-list-item.html index 9e4f76bb..3b018797 100644 --- a/src/app/modules/data/types/favorite/favorite-list-item.html +++ b/src/app/modules/data/types/favorite/favorite-list-item.html @@ -2,11 +2,11 @@
-

+ {{ 'name' | thingTranslate: item }}: {{ 'name' | thingTranslate: item.data }} -

-

+ +

@@ -44,7 +47,7 @@ {{ item.name }} + >{{ item.name }} diff --git a/src/app/modules/data/types/message/message-detail-content.scss b/src/app/modules/data/types/message/message-detail-content.scss index aff5a181..13622255 100644 --- a/src/app/modules/data/types/message/message-detail-content.scss +++ b/src/app/modules/data/types/message/message-detail-content.scss @@ -36,4 +36,10 @@ margin: 0 auto; } } + + .date-published { + --ion-card-color: var(--ion-color-medium-shade); + text-transform: uppercase; + font-weight: var(--font-weight-semi-bold); + } } diff --git a/src/app/modules/data/types/message/message-list-item.html b/src/app/modules/data/types/message/message-list-item.html index 0132c6f1..27d43f43 100644 --- a/src/app/modules/data/types/message/message-list-item.html +++ b/src/app/modules/data/types/message/message-list-item.html @@ -2,7 +2,7 @@

-

{{ 'name' | thingTranslate: item }}

+ {{ 'name' | thingTranslate: item }}

-

{{ 'name' | thingTranslate: item }}

-

+ {{ 'name' | thingTranslate: item }} +

{{ 'description' | thingTranslate: item }}

{{ 'type' | thingTranslate: item }} diff --git a/src/app/modules/data/types/person/person-list-item.html b/src/app/modules/data/types/person/person-list-item.html index 9578abf1..c6b68007 100644 --- a/src/app/modules/data/types/person/person-list-item.html +++ b/src/app/modules/data/types/person/person-list-item.html @@ -2,10 +2,10 @@
-

+ {{ 'name' | thingTranslate: item }} , {{ item.honorificPrefix }} -

+

 {{ diff --git a/src/app/modules/data/types/place/place-detail-content.component.ts b/src/app/modules/data/types/place/place-detail-content.component.ts index 6ffa1e62..324c2644 100644 --- a/src/app/modules/data/types/place/place-detail-content.component.ts +++ b/src/app/modules/data/types/place/place-detail-content.component.ts @@ -38,6 +38,8 @@ export class PlaceDetailContentComponent implements OnInit { */ @Input() item: SCBuilding | SCRoom | SCPointOfInterest | SCFloor; + @Input() openAsModal = false; + /** * Does it have valid location or not (for showing in in a map widget) */ diff --git a/src/app/modules/data/types/place/place-detail-content.html b/src/app/modules/data/types/place/place-detail-content.html index 0f676725..c8aa8255 100644 --- a/src/app/modules/data/types/place/place-detail-content.html +++ b/src/app/modules/data/types/place/place-detail-content.html @@ -1,5 +1,6 @@ diff --git a/src/app/modules/data/types/place/place-list-item.html b/src/app/modules/data/types/place/place-list-item.html index d4146272..11a2cac3 100644 --- a/src/app/modules/data/types/place/place-list-item.html +++ b/src/app/modules/data/types/place/place-list-item.html @@ -2,12 +2,10 @@

- {{ 'name' | thingTranslate: item }} + {{ 'name' | thingTranslate: item }} -

- - {{ item.openingHours | openingHours }} - +

+ {{ item.openingHours | openingHours }}

{ - void this.router.navigate(['data-detail', item.uid]); - }), - ); + if (!this.openAsModal) { + this.subscriptions.push( + this.dataRoutingService.itemSelectListener().subscribe(item => { + void this.router.navigate(['/data-detail', item.uid]); + }), + ); + } } /** diff --git a/src/app/modules/data/types/place/special/mensa/place-mensa.html b/src/app/modules/data/types/place/special/mensa/place-mensa.html index 600f417e..e03e70f7 100644 --- a/src/app/modules/data/types/place/special/mensa/place-mensa.html +++ b/src/app/modules/data/types/place/special/mensa/place-mensa.html @@ -16,10 +16,27 @@

- + + + + + + + +
diff --git a/src/app/modules/data/types/semester/semester-list-item.html b/src/app/modules/data/types/semester/semester-list-item.html index 863a2d23..4390753a 100644 --- a/src/app/modules/data/types/semester/semester-list-item.html +++ b/src/app/modules/data/types/semester/semester-list-item.html @@ -2,8 +2,8 @@
-

{{ 'name' | thingTranslate: item }}

-

+ {{ 'name' | thingTranslate: item }} +

{{ item.startDate | dateFormat }} - diff --git a/src/app/modules/data/types/video/video-list-item.html b/src/app/modules/data/types/video/video-list-item.html index 863a039c..abfe344e 100644 --- a/src/app/modules/data/types/video/video-list-item.html +++ b/src/app/modules/data/types/video/video-list-item.html @@ -2,8 +2,8 @@

-

{{ 'name' | thingTranslate: item }}

-

+ {{ 'name' | thingTranslate: item }} +

- + - - + {{ 'feedback.page.TITLE' | translate }} diff --git a/src/app/modules/feedback/feedback.module.ts b/src/app/modules/feedback/feedback.module.ts index 044accaf..5a39cf35 100644 --- a/src/app/modules/feedback/feedback.module.ts +++ b/src/app/modules/feedback/feedback.module.ts @@ -20,6 +20,7 @@ import {FeedbackPageComponent} from './feedback-page.component'; import {RouterModule, Routes} from '@angular/router'; import {TranslateModule} from '@ngx-translate/core'; import {MarkdownModule} from 'ngx-markdown'; +import {UtilModule} from '../../util/util.module'; const feedbackRoutes: Routes = [ { @@ -36,6 +37,7 @@ const feedbackRoutes: Routes = [ RouterModule.forChild(feedbackRoutes), TranslateModule, MarkdownModule, + UtilModule, ], declarations: [FeedbackPageComponent], }) diff --git a/src/app/modules/hebis/hebis-detail/hebis-detail-content.html b/src/app/modules/hebis/hebis-detail/hebis-detail-content.html index 5d1287a1..14cb9475 100644 --- a/src/app/modules/hebis/hebis-detail/hebis-detail-content.html +++ b/src/app/modules/hebis/hebis-detail/hebis-detail-content.html @@ -14,7 +14,7 @@ - + diff --git a/src/app/modules/hebis/hebis-detail/hebis-detail.html b/src/app/modules/hebis/hebis-detail/hebis-detail.html index 75859e20..02e1f449 100644 --- a/src/app/modules/hebis/hebis-detail/hebis-detail.html +++ b/src/app/modules/hebis/hebis-detail/hebis-detail.html @@ -1,31 +1,48 @@ + + - + - - + {{ 'data.detail.TITLE' | translate }}

- -
- + +
+ {{ 'data.detail.COULD_NOT_CONNECT' | translate }}
-
- +
+ {{ 'data.detail.NOT_FOUND' | translate }} diff --git a/src/app/modules/hebis/hebis-routing.module.ts b/src/app/modules/hebis/hebis-routing.module.ts index 338e7d47..48764484 100644 --- a/src/app/modules/hebis/hebis-routing.module.ts +++ b/src/app/modules/hebis/hebis-routing.module.ts @@ -19,6 +19,7 @@ import {HebisSearchPageComponent} from './list/hebis-search-page.component'; const hebisRoutes: Routes = [ {path: 'hebis-search', component: HebisSearchPageComponent}, + {path: 'hebis-search/:term', component: HebisSearchPageComponent}, {path: 'hebis-detail/:uid', component: HebisDetailComponent}, ]; diff --git a/src/app/modules/hebis/list/hebis-search-page.component.ts b/src/app/modules/hebis/list/hebis-search-page.component.ts index 054d4e9b..ee2a7ca1 100644 --- a/src/app/modules/hebis/list/hebis-search-page.component.ts +++ b/src/app/modules/hebis/list/hebis-search-page.component.ts @@ -13,7 +13,7 @@ * this program. If not, see . */ import {Component, Input, OnInit, OnDestroy} from '@angular/core'; -import {Router} from '@angular/router'; +import {ActivatedRoute, Router} from '@angular/router'; import {AlertController} from '@ionic/angular'; import {NGXLogger} from 'ngx-logger'; import {combineLatest} from 'rxjs'; @@ -24,6 +24,7 @@ import {DataRoutingService} from '../../data/data-routing.service'; import {SearchPageComponent} from '../../data/list/search-page.component'; import {HebisDataProvider} from '../hebis-data.provider'; import {PositionService} from '../../map/position.service'; +import {ConfigProvider} from '../../config/config.provider'; /** * HebisSearchPageComponent queries things and shows list of things as search results and filter as context menu @@ -31,6 +32,7 @@ import {PositionService} from '../../map/position.service'; @Component({ selector: 'stapps-hebissearch-page', templateUrl: 'hebis-search-page.html', + styleUrls: ['../../data/list/search-page.scss'], }) export class HebisSearchPageComponent extends SearchPageComponent @@ -56,7 +58,9 @@ export class HebisSearchPageComponent * @param logger An angular logger * @param dataRoutingService DataRoutingService * @param router Router + * @param route Active Route * @param positionService PositionService + * @param configProvider ConfigProvider */ constructor( protected readonly alertController: AlertController, @@ -66,7 +70,9 @@ export class HebisSearchPageComponent protected readonly logger: NGXLogger, protected dataRoutingService: DataRoutingService, protected router: Router, + route: ActivatedRoute, protected positionService: PositionService, + configProvider: ConfigProvider, ) { super( alertController, @@ -76,7 +82,9 @@ export class HebisSearchPageComponent logger, dataRoutingService, router, + route, positionService, + configProvider, ); } diff --git a/src/app/modules/hebis/list/hebis-search-page.html b/src/app/modules/hebis/list/hebis-search-page.html index f02ee4e0..fc548e71 100644 --- a/src/app/modules/hebis/list/hebis-search-page.html +++ b/src/app/modules/hebis/list/hebis-search-page.html @@ -1,19 +1,19 @@ - - + - - - - - - - + + {{ 'hebisSearch.title' | translate }} + + + + + {{ 'search.type' | translate }} + + {{ + 'hebisSearch.type' | translate + }} + + diff --git a/src/app/modules/library/account/account.page.html b/src/app/modules/library/account/account.page.html index 0e89587c..6c46c2f3 100644 --- a/src/app/modules/library/account/account.page.html +++ b/src/app/modules/library/account/account.page.html @@ -1,8 +1,10 @@ - + - - + {{ 'library.account.title' | translate | titlecase }} @@ -18,11 +20,11 @@

- {{ 'library.account.pages.profile.title' | translate | titlecase }} - {{ 'library.account.pages.holds.title' | translate | titlecase }} @@ -30,7 +32,7 @@ >{{ 'library.account.pages.checked_out.title' | translate | titlecase }} - {{ 'library.account.pages.fines.title' | translate | titlecase }}
diff --git a/src/app/modules/library/account/checked-out/checked-out-page.html b/src/app/modules/library/account/checked-out/checked-out-page.html index 8aecccb7..86744fbe 100644 --- a/src/app/modules/library/account/checked-out/checked-out-page.html +++ b/src/app/modules/library/account/checked-out/checked-out-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'library.account.pages.checked_out.title' | translate | titlecase diff --git a/src/app/modules/library/account/fines/fines-page.html b/src/app/modules/library/account/fines/fines-page.html index bcbe5a13..41e532e1 100644 --- a/src/app/modules/library/account/fines/fines-page.html +++ b/src/app/modules/library/account/fines/fines-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'library.account.pages.fines.title' | translate | titlecase diff --git a/src/app/modules/library/account/holds-and-reservations/holds-and-reservations-page.html b/src/app/modules/library/account/holds-and-reservations/holds-and-reservations-page.html index 2176be45..45e6f448 100644 --- a/src/app/modules/library/account/holds-and-reservations/holds-and-reservations-page.html +++ b/src/app/modules/library/account/holds-and-reservations/holds-and-reservations-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'library.account.pages.holds.title' | translate | titlecase diff --git a/src/app/modules/library/account/profile/profile-page.html b/src/app/modules/library/account/profile/profile-page.html index 32a5a182..52674166 100644 --- a/src/app/modules/library/account/profile/profile-page.html +++ b/src/app/modules/library/account/profile/profile-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'library.account.pages.profile.title' | translate | titlecase diff --git a/src/app/modules/library/library.module.ts b/src/app/modules/library/library.module.ts index 3b89d5e6..6f25a311 100644 --- a/src/app/modules/library/library.module.ts +++ b/src/app/modules/library/library.module.ts @@ -16,6 +16,7 @@ import {ProtectedRoutes} from '../auth/protected.routes'; import {MomentModule} from 'ngx-moment'; import {FeeItemComponent} from './account/elements/fee-item/fee-item.component'; import {DataModule} from '../data/data.module'; +import {UtilModule} from '../../util/util.module'; const routes: ProtectedRoutes | Routes = [ { @@ -59,6 +60,7 @@ const routes: ProtectedRoutes | Routes = [ TranslateModule, MomentModule, DataModule, + UtilModule, ], declarations: [ LibraryAccountPageComponent, diff --git a/src/app/modules/map/item/map-item.component.html b/src/app/modules/map/item/map-item.component.html index 7090ffa9..c1995b30 100644 --- a/src/app/modules/map/item/map-item.component.html +++ b/src/app/modules/map/item/map-item.component.html @@ -8,6 +8,7 @@ trigger="show-more" [presentingElement]="routerOutlet.nativeEl" swipeToClose="true" + class="modal-large" > @@ -15,36 +16,35 @@ + + + - - - - - - {{ $any(item).inPlace.name }}, - {{ address.streetAddress }}, {{ address.addressLocality }} - - - - - More  - - - - - - - - - + + + {{ $any(item).inPlace.name }}, + {{ address.streetAddress }}, {{ address.addressLocality }} + + + {{ + 'map.page.buttons.MORE' | translate + }} + + + + + + diff --git a/src/app/modules/map/item/map-item.component.scss b/src/app/modules/map/item/map-item.component.scss index e8941db6..3c542e64 100644 --- a/src/app/modules/map/item/map-item.component.scss +++ b/src/app/modules/map/item/map-item.component.scss @@ -1,8 +1,57 @@ -ion-col:nth-child(2) { - display: flex; - justify-content: flex-end; +@import '../../../../theme/util/mixins'; - ion-button { - margin-top: auto; +:host { + display: block; + max-width: 100%; + + ion-card { + padding: 0; + overflow: visible; + + ion-card-header{ + padding: 0; + border-bottom: var(--border-width-default) solid var(--border-color-default); + + stapps-data-list-item { + --ion-margin: 0; + + &::ng-deep ion-item { + --padding-start: 0; + --padding-end: 0; + + ion-label { + white-space: break-spaces; + } + } + } + + .close { + position: absolute; + top: -15px; + right: -15px; + z-index: 1; + --padding-top: 0; + --padding-bottom: 0; + --padding-start: 0; + --padding-end: 0; + + ion-icon { + width: 30px; + height: 30px; + } + } + } + + ion-card-content { + padding: var(--spacing-md); + display: flex; + flex-direction: row; + + #show-more-button { + text-transform: uppercase; + margin-left: auto; + } + } } + } diff --git a/src/app/modules/map/item/map-item.component.ts b/src/app/modules/map/item/map-item.component.ts index 6a9c116c..856339ab 100644 --- a/src/app/modules/map/item/map-item.component.ts +++ b/src/app/modules/map/item/map-item.component.ts @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -import {Component, Input} from '@angular/core'; +import {Component, EventEmitter, Input, Output} from '@angular/core'; import {SCPlace} from '@openstapps/core'; import {IonRouterOutlet} from '@ionic/angular'; @@ -27,5 +27,15 @@ export class MapItemComponent { */ @Input() item: SCPlace; + // eslint-disable-next-line @angular-eslint/no-output-on-prefix + @Output() onClose = new EventEmitter(); + constructor(readonly routerOutlet: IonRouterOutlet) {} + + /** + * Action when edit is clicked + */ + onCloseClick() { + this.onClose.emit(); + } } diff --git a/src/app/modules/map/map.module.ts b/src/app/modules/map/map.module.ts index 4e40eea7..366a1749 100644 --- a/src/app/modules/map/map.module.ts +++ b/src/app/modules/map/map.module.ts @@ -33,6 +33,7 @@ import {MapListModalComponent} from './page/modals/map-list-modal.component'; import {MapSingleModalComponent} from './page/modals/map-single-modal.component'; import {MapItemComponent} from './item/map-item.component'; import {NgModule} from '@angular/core'; +import {UtilModule} from '../../util/util.module'; /** * Initializes the default area to show in advance (before components are initialized) @@ -78,6 +79,7 @@ const mapRoutes: Routes = [ DataModule, FormsModule, ThingTranslateModule, + UtilModule, ], providers: [ Geolocation, diff --git a/src/app/modules/map/map.provider.ts b/src/app/modules/map/map.provider.ts index 21fd37b7..ebc80b0f 100644 --- a/src/app/modules/map/map.provider.ts +++ b/src/app/modules/map/map.provider.ts @@ -76,7 +76,7 @@ export class MapProvider { ? ` ` - : '', + : '', iconSize: [iconSize, iconSize], }), zIndexOffset: 1000, diff --git a/src/app/modules/map/page/map-page.component.ts b/src/app/modules/map/page/map-page.component.ts index 12d5fa38..c647f7fd 100644 --- a/src/app/modules/map/page/map-page.component.ts +++ b/src/app/modules/map/page/map-page.component.ts @@ -13,6 +13,7 @@ * this program. If not, see . */ import {Location} from '@angular/common'; +import {trigger, style, animate, transition} from '@angular/animations'; import { ChangeDetectorRef, Component, @@ -59,6 +60,24 @@ import {Capacitor} from '@capacitor/core'; styleUrls: ['./map-page.scss'], templateUrl: './map-page.html', providers: [ContextMenuService], + animations: [ + trigger('fadeInOut', [ + transition(':enter', [ + style({transform: 'translateY(200%)', opacity: 0}), + animate( + '500ms ease-in-out', + style({transform: 'translateY(0%)', opacity: 1}), + ), + ]), + transition(':leave', [ + style({transform: 'translateY(0%)', opacity: 1}), + animate( + '500ms ease-in-out', + style({transform: 'translateY(200%)', opacity: 0}), + ), + ]), + ]), + ], }) export class MapPageComponent { /** @@ -242,13 +261,17 @@ export class MapPageComponent { /** * Fetches items with set query configuration * + * @param fetchAll Should fetch all items * @param animate Should the fly animation be used */ - async fetchAndUpdateItems(animate?: boolean): Promise { + async fetchAndUpdateItems( + fetchAll = false, + animate?: boolean, + ): Promise { try { const result = await this.mapProvider.searchPlaces( this.filterQuery, - this.queryText, + fetchAll ? '' : this.queryText, ); if (result.data.length === 0) { const alert = await this.alertController.create({ @@ -353,7 +376,7 @@ export class MapPageComponent { this.subscriptions.push( this.contextMenuService.filterQueryChanged$.subscribe(query => { this.filterQuery = query; - this.fetchAndUpdateItems(true); + this.fetchAndUpdateItems(false, true); }), ); @@ -414,7 +437,7 @@ export class MapPageComponent { */ async resetView() { this.location.go('/map'); - await this.fetchAndUpdateItems(); + await this.fetchAndUpdateItems(this.items.length > 0); this.ref.detectChanges(); } @@ -437,7 +460,7 @@ export class MapPageComponent { */ searchStringChanged(queryText?: string) { this.queryText = queryText || ''; - void this.fetchAndUpdateItems(true); + void this.fetchAndUpdateItems(false, true); } /** @@ -451,7 +474,7 @@ export class MapPageComponent { this.distance = this.positionService.getDistance(this.items[0].geo.point); this.addToMap(this.items, true); this.ref.detectChanges(); - const url = this.router.createUrlTree([[], uid]).toString(); + const url = this.router.createUrlTree(['/map', uid]).toString(); this.location.go(url); // center the selected place this.focus(geoJSON(this.items[0].geo.point).getBounds().getCenter()); diff --git a/src/app/modules/map/page/map-page.html b/src/app/modules/map/page/map-page.html index 05ebcc1d..08bd3c99 100644 --- a/src/app/modules/map/page/map-page.html +++ b/src/app/modules/map/page/map-page.html @@ -16,31 +16,39 @@ - + + - + {{ 'map.page.TITLE' | translate }} + + - - - + - + @@ -61,6 +69,7 @@
- +
- +
diff --git a/src/app/modules/map/page/map-page.scss b/src/app/modules/map/page/map-page.scss index d64f3efc..d66465de 100644 --- a/src/app/modules/map/page/map-page.scss +++ b/src/app/modules/map/page/map-page.scss @@ -1,22 +1,3 @@ -ion-header { - ion-toolbar { - --background: transparent; - --ion-color-base: transparent; - - ion-buttons { - ion-back-button::part(native), ion-menu-button::part(native) { - box-shadow: var(--map-box-shadow); - //padding: 2px; - } - } - } - ion-searchbar { - --background: white; - // important for iOS - --box-shadow: var(--map-box-shadow); - } -} - ion-content { // fixes the unexpected issue that the content is not fullscreen (behind the header) position: absolute; @@ -24,12 +5,13 @@ ion-content { width: 100%; height: 100%; } + & > div { + overflow: hidden; + } } -ion-back-button, ion-menu-button { - --background: white; - --background-hover: whitesmoke; - --background-focused: whitesmoke; +ion-toolbar:first-of-type { + padding: 0 var(--spacing-md) var(--spacing-xs); } ::ng-deep { @@ -50,14 +32,20 @@ ion-back-button, ion-menu-button { } div.floating-content { - display: grid; + display: block; position: absolute; - bottom: 15px; + left: 0; + right: 0; + bottom: 0; z-index: 1000; width: 100%; - padding: 0 20px; + padding: 0 var(--spacing-md) 8vh; justify-content: center; + ion-card { + margin: 0; + } + div.map-buttons { display: flex; justify-content: flex-end; @@ -67,7 +55,7 @@ ion-back-button, ion-menu-button { width: 550px; position: center; justify-self: center; - margin: 2px; + margin: var(--spacing-sm) auto; } } } diff --git a/src/app/modules/map/page/modals/map-list.html b/src/app/modules/map/page/modals/map-list.html index 2715b706..7da284ee 100644 --- a/src/app/modules/map/page/modals/map-list.html +++ b/src/app/modules/map/page/modals/map-list.html @@ -15,7 +15,7 @@
- + {{ 'map.modals.list.TITLE' | translate }} {{ diff --git a/src/app/modules/map/page/modals/map-single.html b/src/app/modules/map/page/modals/map-single.html index 99140ef4..118a7b0f 100644 --- a/src/app/modules/map/page/modals/map-single.html +++ b/src/app/modules/map/page/modals/map-single.html @@ -1,5 +1,5 @@ - + {{ 'map.modals.single.TITLE' | translate }} {{ @@ -9,5 +9,8 @@ - + diff --git a/src/app/modules/map/page/modals/map-single.scss b/src/app/modules/map/page/modals/map-single.scss index e69de29b..4cef8a0c 100644 --- a/src/app/modules/map/page/modals/map-single.scss +++ b/src/app/modules/map/page/modals/map-single.scss @@ -0,0 +1,4 @@ +:host { + display: flex; + flex-direction: column; +} diff --git a/src/app/modules/map/widget/map-widget.component.ts b/src/app/modules/map/widget/map-widget.component.ts index a3dd5540..550d8d3a 100644 --- a/src/app/modules/map/widget/map-widget.component.ts +++ b/src/app/modules/map/widget/map-widget.component.ts @@ -13,6 +13,7 @@ * this program. If not, see . */ import {Component, ElementRef, Input, OnInit, ViewChild} from '@angular/core'; +import {Router} from '@angular/router'; import {SCPlace} from '@openstapps/core'; import {geoJSON, Map, MapOptions, tileLayer} from 'leaflet'; import {MapProvider} from '../map.provider'; @@ -46,6 +47,13 @@ export class MapWidgetComponent implements OnInit { */ @Input() place: SCPlace; + /** + * Indicates if the expand button should be visible + */ + showExpandButton = true; + + constructor(private router: Router) {} + /** * Prepare the map */ @@ -69,6 +77,9 @@ export class MapWidgetComponent implements OnInit { zoom: 16, zoomControl: false, }; + if (this.router) { + this.showExpandButton = !this.router.url.startsWith('/map'); + } } /** diff --git a/src/app/modules/map/widget/map-widget.html b/src/app/modules/map/widget/map-widget.html index c3f7dd81..026be7a8 100644 --- a/src/app/modules/map/widget/map-widget.html +++ b/src/app/modules/map/widget/map-widget.html @@ -5,13 +5,13 @@ #mapContainer [leafletOptions]="options" >
-
+
- +
diff --git a/src/app/modules/menu/context/context-menu.html b/src/app/modules/menu/context/context-menu.html index 6ead8e14..65125c6c 100644 --- a/src/app/modules/menu/context/context-menu.html +++ b/src/app/modules/menu/context/context-menu.html @@ -4,9 +4,11 @@ contentId="{{ contentId }}" side="end" > - + -

{{ 'menu.context.title' | translate | titlecase }}

+

+ {{ 'menu.context.title' | translate | titlecase }} +

@@ -14,7 +16,7 @@ - + {{ 'menu.context.sort.title' | translate | titlecase }} @@ -29,12 +31,9 @@ - + @@ -44,7 +43,7 @@
- + {{ 'menu.context.filter.title' | translate | titlecase }} diff --git a/src/app/modules/menu/menu.module.ts b/src/app/modules/menu/menu.module.ts index 1118c4f9..0d9a6c6a 100644 --- a/src/app/modules/menu/menu.module.ts +++ b/src/app/modules/menu/menu.module.ts @@ -16,12 +16,14 @@ import {CommonModule} from '@angular/common'; import {NgModule} from '@angular/core'; import {FormsModule} from '@angular/forms'; import {RouterModule} from '@angular/router'; +import {LayoutModule} from '@angular/cdk/layout'; import {IonicModule} from '@ionic/angular'; import {TranslateModule} from '@ngx-translate/core'; import {SettingsModule} from '../settings/settings.module'; import {ContextMenuComponent} from './context/context-menu.component'; import {ContextMenuService} from './context/context-menu.service'; import {NavigationComponent} from './navigation/navigation.component'; +import {TabsModule} from './tabs/tabs.module'; /** * Menu module @@ -36,6 +38,8 @@ import {NavigationComponent} from './navigation/navigation.component'; RouterModule, SettingsModule, TranslateModule.forChild(), + TabsModule, + LayoutModule, ], providers: [ContextMenuService], }) diff --git a/src/app/modules/menu/navigation/navigation.component.ts b/src/app/modules/menu/navigation/navigation.component.ts index 025c5656..8d6370c3 100644 --- a/src/app/modules/menu/navigation/navigation.component.ts +++ b/src/app/modules/menu/navigation/navigation.component.ts @@ -23,6 +23,7 @@ import { import {NavigationService} from './navigation.service'; import config from 'capacitor.config'; import {SettingsProvider} from '../../settings/settings.provider'; +import {BreakpointObserver} from '@angular/cdk/layout'; /** * Generated class for the MenuPage page. @@ -36,6 +37,8 @@ import {SettingsProvider} from '../../settings/settings.provider'; templateUrl: 'navigation.html', }) export class NavigationComponent implements OnInit { + showTabbar = true; + /** * Name of the app */ @@ -60,11 +63,16 @@ export class NavigationComponent implements OnInit { public translateService: TranslateService, private navigationService: NavigationService, private settingsProvider: SettingsProvider, + private responsive: BreakpointObserver, ) { translateService.onLangChange.subscribe((event: LangChangeEvent) => { this.language = event.lang as keyof SCTranslations; this.translator = new SCThingTranslator(this.language); }); + + this.responsive.observe(['(min-width: 768px)']).subscribe(result => { + this.showTabbar = !result.matches; + }); } async ngOnInit() { diff --git a/src/app/modules/menu/navigation/navigation.html b/src/app/modules/menu/navigation/navigation.html index 085ca19f..280379a6 100644 --- a/src/app/modules/menu/navigation/navigation.html +++ b/src/app/modules/menu/navigation/navigation.html @@ -1,13 +1,20 @@ - - + + - - - - - - - {{ appName }} + + + + @@ -19,7 +26,10 @@ - + {{ item.translations[language].title | titlecase }} @@ -31,3 +41,4 @@ + diff --git a/src/app/modules/menu/navigation/navigation.scss b/src/app/modules/menu/navigation/navigation.scss index 36ca20ad..a0d8d0c3 100644 --- a/src/app/modules/menu/navigation/navigation.scss +++ b/src/app/modules/menu/navigation/navigation.scss @@ -1,11 +1,34 @@ -ion-title { - span.text { - vertical-align: middle; - font-size: 20px; - padding-left: 5px; +@import '../../../../theme/util/mixins'; + +:host { + + ion-split-pane { + margin-bottom: calc(var(--ion-tabbar-height) + env(safe-area-inset-bottom)); + + @include phoneLandscape { + margin-bottom: 0; + } + + @include ion-md-up { + margin-bottom: 0; + } } - img { - height: 25px; - vertical-align: middle + + ion-toolbar.in-toolbar { + padding-bottom: 0; + + ion-title { + position: relative; + padding: var(--spacing-xl) var(--spacing-md); + + .logo { + object-position: left; + height: 80px; + + @include ion-md-up { + height: var(--tablet-top-bar-height); + } + } + } } } diff --git a/src/app/modules/menu/tabs/tabs-routing.module.ts b/src/app/modules/menu/tabs/tabs-routing.module.ts new file mode 100644 index 00000000..fe136b93 --- /dev/null +++ b/src/app/modules/menu/tabs/tabs-routing.module.ts @@ -0,0 +1,16 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; + +const routes: Routes = [ + { + path: '', + redirectTo: '/dashboard', + pathMatch: 'full', + }, +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule], +}) +export class TabsRoutingModule {} diff --git a/src/app/modules/menu/tabs/tabs.component.scss b/src/app/modules/menu/tabs/tabs.component.scss new file mode 100644 index 00000000..7f2cbeb0 --- /dev/null +++ b/src/app/modules/menu/tabs/tabs.component.scss @@ -0,0 +1,39 @@ +:host { + display: flex; + flex-direction: row; + background: var(--ion-color-primary-contrast); + justify-content: space-between; + position: absolute; + bottom: 0; + left: 0; + right: 0; + border-top: 1px solid var(--ion-color-medium); + max-height: calc(var(--ion-tabbar-height) + env(safe-area-inset-bottom)); + padding-bottom: env(safe-area-inset-bottom); + + a { + display: flex; + flex-direction: column; + flex: 1 1 25%; + align-items: center; + padding: var(--spacing-xs); + + color: var(--ion-color-medium); + background: var(--ion-color-primary-contrast); + text-decoration: none; + + &:focus, + &.active{ + color: var(--ion-color-medium-contrast); + } + + ion-icon { + font-size: 28px; + } + ion-label { + text-transform: uppercase; + font-size: var(--font-size-xs); + font-weight: var(--font-weight-semi-bold); + } + } +} diff --git a/src/app/modules/menu/tabs/tabs.component.ts b/src/app/modules/menu/tabs/tabs.component.ts new file mode 100644 index 00000000..13278ab9 --- /dev/null +++ b/src/app/modules/menu/tabs/tabs.component.ts @@ -0,0 +1,63 @@ +import {Component} from '@angular/core'; +import { + SCAppConfigurationMenuCategory, + SCLanguage, + SCThingTranslator, + SCTranslations, +} from '@openstapps/core'; +import {ConfigProvider} from '../../config/config.provider'; +import {LangChangeEvent, TranslateService} from '@ngx-translate/core'; +import {NGXLogger} from 'ngx-logger'; + +@Component({ + selector: 'stapps-navigation-tabs', + templateUrl: 'tabs.template.html', + styleUrls: ['./tabs.component.scss'], +}) +export class TabsComponent { + /** + * Possible languages to be used for translation + */ + language: keyof SCTranslations = 'en'; + + /** + * Menu entries from config module + */ + menu: SCAppConfigurationMenuCategory; + + /** + * Core translator + */ + translator: SCThingTranslator; + + constructor( + private readonly configProvider: ConfigProvider, + public translateService: TranslateService, + private readonly logger: NGXLogger, + ) { + void this.loadMenuEntries(); + translateService.onLangChange?.subscribe((event: LangChangeEvent) => { + this.language = event.lang as keyof SCTranslations; + this.translator = new SCThingTranslator(this.language); + }); + this.translator = new SCThingTranslator('en'); + } + + /** + * Loads menu entries from configProvider + */ + async loadMenuEntries() { + try { + const menus = (await this.configProvider.getValue( + 'menus', + )) as SCAppConfigurationMenuCategory[]; + + const menu = menus.find(menu => menu.id === 'main'); + if (menu) { + this.menu = menu; + } + } catch (error) { + this.logger.error(`error from loading menu entries: ${error}`); + } + } +} diff --git a/src/app/modules/menu/tabs/tabs.module.ts b/src/app/modules/menu/tabs/tabs.module.ts new file mode 100644 index 00000000..92d4a34b --- /dev/null +++ b/src/app/modules/menu/tabs/tabs.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule} from '@angular/router'; +import {IonicModule} from '@ionic/angular'; + +import {TabsComponent} from './tabs.component'; + +import {TranslateModule} from '@ngx-translate/core'; + +@NgModule({ + imports: [CommonModule, IonicModule, TranslateModule, RouterModule], + declarations: [TabsComponent], + exports: [TabsComponent], +}) +export class TabsModule {} diff --git a/src/app/modules/menu/tabs/tabs.spec.ts b/src/app/modules/menu/tabs/tabs.spec.ts new file mode 100644 index 00000000..7483e0e7 --- /dev/null +++ b/src/app/modules/menu/tabs/tabs.spec.ts @@ -0,0 +1,101 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ +/* + * Copyright (C) 2018, 2019 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {CUSTOM_ELEMENTS_SCHEMA} from '@angular/core'; +import {TestBed, waitForAsync} from '@angular/core/testing'; + +import {TabsComponent} from './tabs.component'; +import {ConfigProvider} from '../../config/config.provider'; +import {sampleAuthConfiguration} from '../../../_helpers/data/sample-configuration'; +import {TranslateModule, TranslateService} from '@ngx-translate/core'; +import {NGXLogger} from 'ngx-logger'; +import {Platform} from '@ionic/angular'; +import {ThingTranslateService} from '../../../translation/thing-translate.service'; +import {SettingsProvider} from '../../settings/settings.provider'; +import {ScheduleSyncService} from '../../background/schedule/schedule-sync.service'; +import {StorageProvider} from '../../storage/storage.provider'; + +describe('Tabs', () => { + let platformReadySpy: any; + let platformSpy: jasmine.SpyObj; + let translateServiceSpy: jasmine.SpyObj; + let thingTranslateServiceSpy: jasmine.SpyObj; + let settingsProvider: jasmine.SpyObj; + let configProvider: jasmine.SpyObj; + let ngxLogger: jasmine.SpyObj; + let scheduleSyncServiceSpy: jasmine.SpyObj; + let platformIsSpy; + let storageProvider: jasmine.SpyObj; + beforeEach(waitForAsync(() => { + platformReadySpy = Promise.resolve(); + platformIsSpy = Promise.resolve(); + platformSpy = jasmine.createSpyObj('Platform', { + ready: platformReadySpy, + is: platformIsSpy, + }); + translateServiceSpy = jasmine.createSpyObj('TranslateService', [ + 'setDefaultLang', + 'use', + ]); + thingTranslateServiceSpy = jasmine.createSpyObj('ThingTranslateService', [ + 'init', + ]); + settingsProvider = jasmine.createSpyObj('SettingsProvider', [ + 'getSettingValue', + 'provideSetting', + 'setCategoriesOrder', + ]); + scheduleSyncServiceSpy = jasmine.createSpyObj('ScheduleSyncService', [ + 'getDifferences', + 'postDifferencesNotification', + ]); + configProvider = jasmine.createSpyObj('ConfigProvider', [ + 'init', + 'getAnyValue', + ]); + configProvider.getAnyValue = jasmine.createSpy().and.callFake(function () { + return sampleAuthConfiguration; + }); + ngxLogger = jasmine.createSpyObj('NGXLogger', ['log', 'error', 'warn']); + storageProvider = jasmine.createSpyObj('StorageProvider', [ + 'init', + 'get', + 'has', + 'put', + ]); + + TestBed.configureTestingModule({ + declarations: [TabsComponent], + schemas: [CUSTOM_ELEMENTS_SCHEMA], + imports: [TranslateModule.forRoot()], + providers: [ + {provide: Platform, useValue: platformSpy}, + {provide: TranslateService, useValue: translateServiceSpy}, + {provide: ThingTranslateService, useValue: thingTranslateServiceSpy}, + {provide: ScheduleSyncService, useValue: scheduleSyncServiceSpy}, + {provide: SettingsProvider, useValue: settingsProvider}, + {provide: ConfigProvider, useValue: configProvider}, + {provide: NGXLogger, useValue: ngxLogger}, + {provide: StorageProvider, useValue: storageProvider}, + ], + }).compileComponents(); + })); + + it('should create the tabs page', () => { + const fixture = TestBed.createComponent(TabsComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); +}); diff --git a/src/app/modules/menu/tabs/tabs.template.html b/src/app/modules/menu/tabs/tabs.template.html new file mode 100644 index 00000000..76eecb0d --- /dev/null +++ b/src/app/modules/menu/tabs/tabs.template.html @@ -0,0 +1,36 @@ + + + {{ 'tabs.home' | translate }} + + + + {{ 'tabs.canteens' | translate }} + + + + {{ 'tabs.schedule' | translate }} + + + + {{ 'tabs.map' | translate }} + + + + {{ 'tabs.profile' | translate }} + diff --git a/src/app/modules/news/item/news-item.html b/src/app/modules/news/item/news-item.html index ae9d6ede..569af76a 100644 --- a/src/app/modules/news/item/news-item.html +++ b/src/app/modules/news/item/news-item.html @@ -7,7 +7,7 @@ (ionError)="$event.target.nextSibling.style.display = 'block'" alt="" > - + diff --git a/src/app/modules/news/news.module.ts b/src/app/modules/news/news.module.ts index ea67a27e..90a14c45 100644 --- a/src/app/modules/news/news.module.ts +++ b/src/app/modules/news/news.module.ts @@ -27,6 +27,7 @@ import {SkeletonNewsItemComponent} from './item/skeleton-news-item.component'; import {ChipFilterComponent} from '../data/chips/filter/chip-filter.component'; import {SettingsModule} from '../settings/settings.module'; import {NewsSettingsFilterComponent} from './elements/news-filter-settings/news-settings-filter.component'; +import {UtilModule} from '../../util/util.module'; const newsRoutes: Routes = [{path: 'news', component: NewsPageComponent}]; @@ -51,6 +52,7 @@ const newsRoutes: Routes = [{path: 'news', component: NewsPageComponent}]; DataModule, ThingTranslateModule, SettingsModule, + UtilModule, ], providers: [SettingsProvider], }) diff --git a/src/app/modules/news/page/news-item.html b/src/app/modules/news/page/news-item.html index 4941c897..16de6165 100644 --- a/src/app/modules/news/page/news-item.html +++ b/src/app/modules/news/page/news-item.html @@ -7,7 +7,7 @@ (ionError)="$event.target.nextSibling.style.display = 'block'" alt="" > - + @@ -18,7 +18,7 @@ (ionError)="$event.target.nextSibling.style.display = 'block'" alt="" > - + @@ -30,7 +30,7 @@ >{{ item.name }} {{ item.name }} diff --git a/src/app/modules/news/page/news-page.html b/src/app/modules/news/page/news-page.html index 3571220e..3bab7c07 100644 --- a/src/app/modules/news/page/news-page.html +++ b/src/app/modules/news/page/news-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'news.title' | translate }} diff --git a/src/app/modules/profile/page/profile-page.component.html b/src/app/modules/profile/page/profile-page.component.html index ff60da52..5b9bf42e 100644 --- a/src/app/modules/profile/page/profile-page.component.html +++ b/src/app/modules/profile/page/profile-page.component.html @@ -1,77 +1,146 @@ - + - - + {{ 'profile.title' | translate | titlecase }} - -
- - - - - - - - - - - - - - - {{ userInfo.givenName }} - {{ userInfo.familyName }} - - - {{ userInfo.email }} - {{ - 'profile.userInfo.studentId' | translate | titlecase - }}: {{ userInfo.studentId }} - - - - - - - - - -
+
+ +
- {{ i + hoursRange.from }}:00 -
+
+ +
+ {{ i + hoursRange.from }} +
+
+
+ + + + + + +
diff --git a/src/app/modules/schedule/page/calendar-view.scss b/src/app/modules/schedule/page/calendar-view.scss index d8da0377..40ab8523 100644 --- a/src/app/modules/schedule/page/calendar-view.scss +++ b/src/app/modules/schedule/page/calendar-view.scss @@ -12,71 +12,3 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ - -.header-swiper { - width: 100%; - height: 100%; -} - -.header { - position: relative; - - .left-button, .right-button { - position: absolute; - top: 0; - bottom: 0; - margin: auto; - z-index: 5; - } - - .left-button { - left: 0; - } - - .right-button { - right: 0; - } -} - -// phantom element -.phantom { - position: absolute; - visibility: hidden; - height: 0 !important; -} - -.day-labels { - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - - ion-button { - width: 100%; - height: 100%; - - text-transform: none; - ion-label { - overflow: visible !important; - } - } -} - -.hour-lines { - top: 0; - position: absolute; - display: flex; - flex-direction: row; - width: 100%; - - ion-label { - padding: 0 20px 20px; - } - - .horizontal-line { - width: 100%; - top: 0; - border-top: 1px solid #dbdbdb; - } -} diff --git a/src/app/modules/schedule/page/components/calendar-component.html b/src/app/modules/schedule/page/components/calendar-component.html new file mode 100644 index 00000000..e69de29b diff --git a/src/app/modules/schedule/page/components/calendar-component.scss b/src/app/modules/schedule/page/components/calendar-component.scss new file mode 100644 index 00000000..590a3a5c --- /dev/null +++ b/src/app/modules/schedule/page/components/calendar-component.scss @@ -0,0 +1,123 @@ +/*! + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +$header-height: 50px; +$hours-width: 40px; + +.header { + height: $header-height; + background-color: var(--ion-color-light); + position: relative; + + .left-button, .right-button { + color: var(--ion-color-medium-shade); + position: absolute; + z-index: 99; + height: 100%; + margin: 0; + --padding-start: 0; + --padding-end: 0; + } + .left-button { + left: 0; + padding: 0 var(--spacing-sm); + } + .right-button { + right: 0; + padding: 0 var(--spacing-sm); + } + + .day-labels { + ion-button { + width: unset; + color: var(--ion-color-light-contrast); + overflow: visible !important; + } + } + + .header-swiper { + background-color: var(--ion-color-light); + } +} + +.full-height { + height: 100%; +} + +.day-labels { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + + ion-button { + width: 100%; + height: 100%; + + text-transform: none; + ion-label { + overflow: visible !important; + } + } +} + +ion-content { + overflow-y: auto; +} + +.schedule-wrapper { + display: grid; + grid-template-columns: 40px calc(100% - 40px); // swiper.js can't calculate width when using 1fr instead of 100% + height: 100%; + + .hours-wrapper { + z-index: 100; + background-color: var(--ion-color-primary-contrast); + + .hour-lines { + width: 40px; + height: 70px; + border-right: 1px solid var(--ion-color-light); + text-align: center; + top: 0; + position: absolute; + font-weight: var(--font-weight-bold); + background-color: var(--calender-background-color); + } + } + + .infinite-swiper-wrapper { + width: 100%; + } +} + +.date-header { + border-bottom: 1px solid var(--calender-date-line-gray); + padding: var(--spacing-sm) auto; + height: fit-content; + font-weight: var(--font-weight-bold); + text-transform: uppercase; + text-align: center; +} + +.day-labels > ion-button[disabled] { + opacity: 1; +} + + +div { + height: 100%; +} diff --git a/src/app/modules/schedule/page/components/calendar.component.ts b/src/app/modules/schedule/page/components/calendar.component.ts new file mode 100644 index 00000000..da242f5f --- /dev/null +++ b/src/app/modules/schedule/page/components/calendar.component.ts @@ -0,0 +1,264 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +import {Component, Input, OnDestroy, OnInit} from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {SCISO8601Date, SCUuid} from '@openstapps/core'; +import moment, {Moment} from 'moment'; +import { + materialFade, + materialManualFade, + materialSharedAxisX, +} from '../../../../animation/material-motion'; +import {ScheduleProvider} from '../../../calendar/schedule.provider'; +import {ScheduleEvent, ScheduleResponsiveBreakpoint} from '../schema/schema'; +import {SwiperComponent} from 'swiper/angular'; +import {InfiniteSwiperComponent} from '../grid/infinite-swiper.component'; +import {IonDatetime} from '@ionic/angular'; +import {Subscription} from 'rxjs'; +import {CalendarService} from '../../../calendar/calendar.service'; + +/** + * Component that displays the schedule + */ +@Component({ + selector: 'stapps-calendar-component', + templateUrl: 'calendar-component.html', + styleUrls: ['calendar-component.scss'], + animations: [materialFade, materialSharedAxisX, materialManualFade], +}) +export class CalendarComponent implements OnInit, OnDestroy { + /** + * The day that the schedule started out on + */ + @Input() baselineDate: Moment; + + /** + * Range of date of the slides shown on screen. + */ + dateRange: { + startDate: string; + endDate: string; + } = { + startDate: '', + endDate: '', + }; + + calendarServiceSubscription: Subscription; + + prevHeaderIndex = 0; + + /** + * Hours for grid + */ + @Input() hours: number[]; + + /** + * Range of hours to display + */ + @Input() readonly hoursRange = { + from: 5, + to: 22, + }; + + todaySlideIndex: number; + + initialSlideIndex?: Promise; + + /** + * Layout of the schedule + */ + @Input() layout: ScheduleResponsiveBreakpoint; + + /** + * Route fragment + */ + routeFragment = 'schedule/calendar'; + + /** + * Vertical scale of the schedule (distance between hour lines) + */ + @Input() scale = 70; + + /** + * unix -> (uid -> event) + */ + @Input() testSchedule: Record> = + {}; + + /** + * UUIDs + */ + @Input() uuids: SCUuid[]; + + /** + * UUID subscription + */ + uuidSubscription: Subscription; + + @Input() useInfiniteSwiper = true; + + @Input() weekDates: Array; + + constructor( + protected readonly activatedRoute: ActivatedRoute, + protected readonly calendarService: CalendarService, + protected readonly scheduleProvider: ScheduleProvider, + ) {} + + ngOnInit() { + this.onInit(); + } + + ngOnDestroy() { + this.onDestroy(); + } + + onInit() { + this.dateRange.startDate = this.calculateDateFromIndex(0, 0, 'DD.MM.YY'); + this.dateRange.endDate = this.calculateDateFromIndex( + 0, + this.layout.days - 1, + 'DD.MM.YY', + ); + + let dayString: string | number | null = + this.activatedRoute.snapshot.paramMap.get('date'); + if (dayString == undefined || dayString === 'now') { + const fragments = window.location.href.split('/'); + const urlFragment: string = fragments[fragments.length - 1] ?? ''; + + dayString = /^\d{4}-\d{2}-\d{2}$/.test(urlFragment) + ? urlFragment + : moment.now(); + } + + this.baselineDate = moment(dayString).startOf('day'); + + this.initialSlideIndex = new Promise(resolve => { + this.uuidSubscription = this.scheduleProvider.uuids$.subscribe( + async result => { + this.uuids = result; + resolve(await this.loadEvents()); + }, + ); + }); + } + + onDestroy() { + this.uuidSubscription.unsubscribe(); + if (this.calendarServiceSubscription) { + this.calendarServiceSubscription.unsubscribe(); + } + } + + /** + * Get date from baseline date and index of current slide. + * + * @param index number + * @param delta number - is added to index + * @param dateFormat string + */ + calculateDateFromIndex(index: number, delta = 0, dateFormat = 'YYYY-MM-DD') { + return moment(this.baselineDate) + .add(index + delta, 'days') + .format(dateFormat); + } + + /** + * Change page + */ + onPageChange(index: number) { + this.setDateRange(index); + + window.history.replaceState( + {}, + '', + `${this.routeFragment}/${this.calculateDateFromIndex(index)}`, + ); + } + + setDateRange(index: number) { + this.dateRange.startDate = this.calculateDateFromIndex( + index, + 0, + 'DD.MM.YY', + ); + this.dateRange.endDate = this.calculateDateFromIndex( + index, + this.layout.days - 1, + 'DD.MM.YY', + ); + } + + onHeaderSwipe(index: number, infiniteController: InfiniteSwiperComponent) { + if (index < this.prevHeaderIndex) { + infiniteController?.pageBackwards(); + } + if (index > this.prevHeaderIndex) { + infiniteController?.pageForward(); + } + this.prevHeaderIndex = index; + } + + syncSwiper(self: SwiperComponent, other: SwiperComponent) { + other.swiperRef.slideTo(self.swiperRef.activeIndex); + } + + presentDatePopover( + mainSwiper: InfiniteSwiperComponent, + headerSwiper: InfiniteSwiperComponent, + index: number, + popoverDateTime: IonDatetime, + ) { + const nextIndex = + moment(popoverDateTime.value).diff(this.baselineDate, 'days') - + headerSwiper.virtualIndex - + index; + + mainSwiper.goToIndex(nextIndex).then(() => { + this.setDateRange(nextIndex); + }); + popoverDateTime.confirm(true); + } + + /** + * Load events + */ + async loadEvents(): Promise { + const dateSeries = await this.scheduleProvider.getDateSeries(this.uuids); + + this.testSchedule = {}; + + for (const series of dateSeries.dates) { + for (const date of series.dates) { + const index = moment(date) + .startOf('day') + .diff(this.baselineDate, 'days'); + + // fall back to default + (this.testSchedule[index] ?? (this.testSchedule[index] = {}))[ + series.uid + ] = { + dateSeries: series, + time: { + start: moment(date).hours(), + duration: series.duration, + }, + }; + } + } + return this.todaySlideIndex; + } +} diff --git a/src/app/modules/schedule/page/grid/infinite-swiper.component.ts b/src/app/modules/schedule/page/grid/infinite-swiper.component.ts index 711e0407..7161e510 100644 --- a/src/app/modules/schedule/page/grid/infinite-swiper.component.ts +++ b/src/app/modules/schedule/page/grid/infinite-swiper.component.ts @@ -73,6 +73,8 @@ export class InfiniteSwiperComponent @Output() indexChange = new EventEmitter(); + @Output() indexChangeStart = new EventEmitter(); + slidesArray: number[]; @ViewChild('swiper', {static: true}) @@ -158,6 +160,12 @@ export class InfiniteSwiperComponent this.indexChange.emit(this.virtualIndex); this.preventControllerCallback = false; }); + + this.swiper.on('slideChangeTransitionStart', swiper => { + this.indexChangeStart.emit( + this.virtualIndex + swiper.activeIndex - swiper.previousIndex, + ); + }); } clearSlides() { diff --git a/src/app/modules/schedule/page/grid/infinite-swiper.scss b/src/app/modules/schedule/page/grid/infinite-swiper.scss index 47cd69aa..a61126e4 100644 --- a/src/app/modules/schedule/page/grid/infinite-swiper.scss +++ b/src/app/modules/schedule/page/grid/infinite-swiper.scss @@ -17,3 +17,7 @@ height: 100%; width: 100%; } + +.swiper, .swiper-wrapper, .swiper-slide { + overflow: unset; +} diff --git a/src/app/modules/schedule/page/grid/range-overlap.ts b/src/app/modules/schedule/page/grid/range-overlap.ts index ea09699c..2357398c 100644 --- a/src/app/modules/schedule/page/grid/range-overlap.ts +++ b/src/app/modules/schedule/page/grid/range-overlap.ts @@ -51,11 +51,18 @@ function within(a: number, b: number, c: number): boolean { return a > b && a < c; } +/** + * + */ +function equals(start1: number, end1: number, start2: number, end2: number) { + return start1 === start2 && end1 === end2; +} + /** * */ function hasOverlap(a1: number, b1: number, a2: number, b2: number): boolean { - return within(a1, a2, b2) || within(b1, a2, b2); + return within(a1, a2, b2) || within(b1, a2, b2) || equals(a1, b1, a2, b2); } /** diff --git a/src/app/modules/schedule/page/grid/schedule-card.component.ts b/src/app/modules/schedule/page/grid/schedule-card.component.ts index 19c66b01..f1be8c60 100644 --- a/src/app/modules/schedule/page/grid/schedule-card.component.ts +++ b/src/app/modules/schedule/page/grid/schedule-card.component.ts @@ -26,6 +26,12 @@ import {ScheduleEvent} from '../schema/schema'; styleUrls: ['../../../data/list/data-list-item.scss', 'schedule-card.scss'], }) export class ScheduleCardComponent implements OnInit { + cardColor = { + isBlack: false, + isBlue: false, + isDefault: false, + }; + /** * The hour from which on the schedule is displayed */ @@ -56,6 +62,11 @@ export class ScheduleCardComponent implements OnInit { */ @Input() scheduleEvent: ScheduleEvent; + /** + * Card shows the name of the place the event takes place + */ + @Input() showPlaceName = false; + /** * The title of the event */ @@ -67,8 +78,8 @@ export class ScheduleCardComponent implements OnInit { * Get the note text */ getNote(): string | undefined { - return 'categories' in this.scheduleEvent.dateSeries.event - ? this.scheduleEvent.dateSeries.event.categories?.join(', ') + return this.scheduleEvent?.dateSeries?.name + ? this.scheduleEvent.dateSeries.name : undefined; } @@ -80,6 +91,27 @@ export class ScheduleCardComponent implements OnInit { this.height = moment.duration(this.scheduleEvent.time.duration).asHours(); this.title = this.scheduleEvent.dateSeries.event.name; + + this.cardColor = { + isBlack: false, + isBlue: false, + isDefault: false, + }; + + switch ( + 'categories' in this.scheduleEvent.dateSeries.event + ? this.scheduleEvent.dateSeries.event?.categories[0] + : '' + ) { + case 'lecture': + this.cardColor.isBlue = true; + break; + case 'exercise': + this.cardColor.isBlack = true; + break; + default: + this.cardColor.isDefault = true; + } } /** diff --git a/src/app/modules/schedule/page/grid/schedule-card.html b/src/app/modules/schedule/page/grid/schedule-card.html index a8baa1e5..2f4f4d2f 100644 --- a/src/app/modules/schedule/page/grid/schedule-card.html +++ b/src/app/modules/schedule/page/grid/schedule-card.html @@ -13,41 +13,30 @@ ~ this program. If not, see . --> + {{ - this.scheduleEvent.dateSeries.event.name - | nullishCoalesce: this.scheduleEvent.dateSeries.name + this.scheduleEvent?.dateSeries?.event?.name + | nullishCoalesce: this.scheduleEvent?.dateSeries?.name }} - - - - {{ 'schedule.card.forEach' | translate }} - {{ - scheduleEvent.dateSeries.repeatFrequency - | durationLocalized: true - | sentencecase - }} - {{ 'schedule.card.until' | translate }} - {{ - scheduleEvent.dateSeries.dates | last | amDateFormat: 'DD. MMM YYYY' - }} - - {{ getNote() }} + {{ + scheduleEvent?.dateSeries?.inPlace?.name + }} -
diff --git a/src/app/modules/schedule/page/grid/schedule-card.scss b/src/app/modules/schedule/page/grid/schedule-card.scss index 3eb7c5a9..31b659d9 100644 --- a/src/app/modules/schedule/page/grid/schedule-card.scss +++ b/src/app/modules/schedule/page/grid/schedule-card.scss @@ -1,13 +1,84 @@ ion-card { width: inherit; z-index: 2; + margin-left: 0; + margin-right: 0; + border-radius: 0; + + &.blueCard { + --background: var(--calender-blue-card); + + ion-card-title, ion-card-subtitle span, ion-card-content ion-note, ion-card-content ion-text { + color: var(--ion-color-primary-contrast); + } + + &:after { + background: linear-gradient(rgba(var(--calender-blue-card-rgb), 0%), rgba(var(--calender-blue-card-rgb), 100%)); + } + } + &.blackCard { + --background: var(--calender-black-card); + + ion-card-title, ion-card-subtitle span, ion-card-content ion-note, ion-card-content ion-text { + color: var(--ion-color-primary-contrast); + } + + &:after { + background: linear-gradient(rgba(var(--calender-black-card-rgb), 0%), rgba(var(--calender-black-card-rgb), 100%)); + } + } + &.defaultCard { + --background: var(--calender-default-card); + + ion-card-title, ion-card-subtitle span, ion-card-content ion-note, ion-card-content ion-text { + color: var(--ion-color-light-contrast); + } + + &:after { + background: linear-gradient(rgba(var(--calender-light-card-rgb), 0%), rgba(var(--calender-light-card-rgb), 100%)); + } + } + + &:after { + content: ''; + position: absolute; + bottom: 0; + height: 33%; + width: 100%; + background: linear-gradient(rgba(var(--calender-blue-card-rgb), 0%), rgba(var(--calender-blue-card-rgb), 100%)); + } ion-card-header { height: available; + padding-bottom: var(--spacing-xs); ion-card-title { overflow-wrap: break-word; } + + ion-card-subtitle { + display: flex; + ion-icon.icon-white { + color: var(--ion-color-primary-contrast); + margin-right: var(--spacing-xs); + } + } + } + + ion-card-header, ion-card-title, ion-card-subtitle span, ion-card-content ion-note { + font-size: var(--font-size-sm); + font-weight: var(--font-weight-bold); + font-family: var(--headline-font-family); + text-overflow: ellipsis; + } + + ion-card-content .place-name { + display: block; + font-family: var(--headline-font-family); + } + + ion-card-content .place-name { + display: block; } div { diff --git a/src/app/modules/schedule/page/grid/schedule-cursor.html b/src/app/modules/schedule/page/grid/schedule-cursor.html index 06048b32..76fcfd90 100644 --- a/src/app/modules/schedule/page/grid/schedule-cursor.html +++ b/src/app/modules/schedule/page/grid/schedule-cursor.html @@ -1,4 +1,4 @@ -
+

diff --git a/src/app/modules/schedule/page/grid/schedule-cursor.scss b/src/app/modules/schedule/page/grid/schedule-cursor.scss index 422c14d5..6e016687 100644 --- a/src/app/modules/schedule/page/grid/schedule-cursor.scss +++ b/src/app/modules/schedule/page/grid/schedule-cursor.scss @@ -21,7 +21,7 @@ div { flex-direction: row; width: 100%; top: 4px; - z-index: 0; + z-index: 2; div { width: 100%; @@ -33,7 +33,7 @@ div { margin-right: 16px; margin-top: 8px; height: 2px; - border-top: 2px solid var(--ion-color-primary); + border-top: 2px solid var(--ion-color-danger); margin-block-start: 0; margin-block-end: 0; } @@ -45,7 +45,7 @@ div { top: -3px; border-radius: 50% 0 50% 50%; transform: rotateZ(45deg); - background-color: var(--ion-color-primary); + background-color: var(--ion-color-danger); } } } diff --git a/src/app/modules/schedule/page/grid/schedule-day.component.ts b/src/app/modules/schedule/page/grid/schedule-day.component.ts index 50830880..31046728 100644 --- a/src/app/modules/schedule/page/grid/schedule-day.component.ts +++ b/src/app/modules/schedule/page/grid/schedule-day.component.ts @@ -12,9 +12,13 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -import {Component, Input} from '@angular/core'; +import {Component, HostListener, Input, OnInit} from '@angular/core'; import moment from 'moment'; -import {Range, ScheduleEvent} from '../schema/schema'; +import { + Range, + ScheduleEvent, + ScheduleResponsiveBreakpoint, +} from '../schema/schema'; import {ScheduleProvider} from '../../../calendar/schedule.provider'; import {SCISO8601Duration, SCUuid} from '@openstapps/core'; import {materialFade} from '../../../../animation/material-motion'; @@ -26,7 +30,7 @@ import {groupRangeOverlaps} from './range-overlap'; styleUrls: ['schedule-day.scss'], animations: [materialFade], }) -export class ScheduleDayComponent { +export class ScheduleDayComponent implements OnInit { @Input() day: moment.Moment; @Input() hoursRange: Range; @@ -37,6 +41,10 @@ export class ScheduleDayComponent { @Input() frequencies?: SCISO8601Duration[]; + @Input() layout: ScheduleResponsiveBreakpoint; + + @Input() isLeftmost = false; + dateSeriesGroups?: ScheduleEvent[][]; @Input() set dateSeries(value: Record) { @@ -52,8 +60,28 @@ export class ScheduleDayComponent { ).map(it => it.elements); } + dateFormat = 'dd'; + constructor(protected readonly scheduleProvider: ScheduleProvider) {} + ngOnInit() { + this.determineDateFormat(); + } + + @HostListener('window:resize', ['$event']) + _onResize() { + this.determineDateFormat(); + } + + private determineDateFormat() { + this.dateFormat = + this.layout && + window.innerWidth > 1024 && + window.innerWidth <= this.layout?.until + ? 'dddd' + : 'dd'; + } + // TODO: backend bug results in the wrong date series being returned /* async fetchDateSeries(): Promise { const dateSeries = await this.scheduleProvider.getDateSeries( diff --git a/src/app/modules/schedule/page/grid/schedule-day.html b/src/app/modules/schedule/page/grid/schedule-day.html index cd97ad40..f20e5aea 100644 --- a/src/app/modules/schedule/page/grid/schedule-day.html +++ b/src/app/modules/schedule/page/grid/schedule-day.html @@ -12,7 +12,10 @@ ~ You should have received a copy of the GNU General Public License along with ~ this program. If not, see . --> -
+
+
+ {{ day | amDateFormat: dateFormat }} +
-
. */ -.schedule-card { - overflow: hidden; -} - -div { - height: 100%; - width: 100%; -} - -.horizontal-group { - position: absolute; - top: 13px; - left: 0; - grid-column: 1; - grid-row: 1; - width: 100%; - - box-sizing: border-box; - max-width: inherit; - - display: flex; - flex-direction: row; - align-items: flex-start; -} - -.vertical-line { - position: absolute; - top: 0; - left: 0; - width: 1px; - height: 100%; - background-color: #dbdbdb; +:host { + .day-wrapper { + border-left: 1px solid var(--calender-date-line-gray); + border-right: 1px solid var(--calender-date-line-gray); + + &.leftmost { + border-left: unset; + } + + .day-header { + position: sticky; + top: 0; + left: 0; + height: fit-content; + padding: var(--spacing-md); + border-bottom: 2px solid var(--ion-color-light); + font-size: var(--font-size-md); + font-weight: var(--font-weight-bold); + text-align: center; + text-transform: uppercase; + background-color: var(--ion-color-primary-contrast); + z-index: 3; + + &.leftmost { + border-left: 1px solid var(--ion-color-light); + } + } + } + + .schedule-card { + overflow: hidden; + } + + div { + height: 100%; + width: 100%; + } + + .horizontal-group { + position: absolute; + top: 10px; + left: 0; + grid-column: 1; + grid-row: 1; + width: 100%; + + box-sizing: border-box; + max-width: inherit; + + display: flex; + flex-direction: row; + align-items: flex-start; + } + + .vertical-line { + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 100%; + background-color: var(--calender-date-line-gray); + } } diff --git a/src/app/modules/schedule/page/modal/modal-event-creator.html b/src/app/modules/schedule/page/modal/modal-event-creator.html index 943976a7..643d8208 100644 --- a/src/app/modules/schedule/page/modal/modal-event-creator.html +++ b/src/app/modules/schedule/page/modal/modal-event-creator.html @@ -13,7 +13,7 @@ ~ this program. If not, see . --> - + {{ 'schedule.addEventModal.addEvent' | translate | titlecase }} @@ -29,5 +29,7 @@ [showDrawer]="false" [forcedFilter]="filter" [itemRouting]="false" + [showTopToolbar]="false" + [showNavigation]="false" > diff --git a/src/app/modules/schedule/page/modal/modal-event-creator.scss b/src/app/modules/schedule/page/modal/modal-event-creator.scss index 7facf36d..2e12b0b8 100644 --- a/src/app/modules/schedule/page/modal/modal-event-creator.scss +++ b/src/app/modules/schedule/page/modal/modal-event-creator.scss @@ -1,3 +1,10 @@ +:host { + height: 100%; + display: flex; + flex-direction: column; + flex: 1 1 20%; +} + ion-button { ion-label { color: var(--ion-color-light); diff --git a/src/app/modules/schedule/page/schedule-page.component.ts b/src/app/modules/schedule/page/schedule-page.component.ts index f86eba7c..d4b5fff4 100644 --- a/src/app/modules/schedule/page/schedule-page.component.ts +++ b/src/app/modules/schedule/page/schedule-page.component.ts @@ -16,6 +16,7 @@ import { AfterViewInit, Component, HostListener, + Input, OnInit, ViewChild, } from '@angular/core'; @@ -25,6 +26,8 @@ import {IonRouterOutlet} from '@ionic/angular'; import {SharedAxisChoreographer} from '../../../animation/animation-choreographer'; import {materialSharedAxisX} from '../../../animation/material-motion'; import {ScheduleResponsiveBreakpoint} from './schema/schema'; +import {CalendarService} from '../../calendar/calendar.service'; +import moment from 'moment'; /** * This needs to be sorted by break point low -> high @@ -34,7 +37,7 @@ import {ScheduleResponsiveBreakpoint} from './schema/schema'; const responsiveConfig: ScheduleResponsiveBreakpoint[] = [ { until: 768, - days: 1, + days: 3, startOf: 'day', }, { @@ -69,6 +72,10 @@ export class SchedulePageComponent implements OnInit, AfterViewInit { */ actualSegmentValue?: string | null; + /** + * Trigger event to go to today in calendar component + */ + /** * Layout */ @@ -76,18 +83,25 @@ export class SchedulePageComponent implements OnInit, AfterViewInit { this.currentWindowWidth, ); - /** - * Vertical scale of the schedule (distance between hour lines) - */ - scale = 60; - @ViewChild('segment') segmentView!: HTMLIonSegmentElement; + /** + * Show the navigation drawer + */ + @Input() showDrawer = true; + + /** + * Search value from search bar + */ + queryText: string; + /** * Choreographer for the tab switching */ tabChoreographer: SharedAxisChoreographer; + isModalOpen = false; + /** * Amount of days that should be shown according to current display width */ @@ -104,22 +118,36 @@ export class SchedulePageComponent implements OnInit, AfterViewInit { constructor( private readonly activatedRoute: ActivatedRoute, + private calendarService: CalendarService, readonly routerOutlet: IonRouterOutlet, private router: Router, private location: Location, ) {} ngOnInit() { - this.tabChoreographer = new SharedAxisChoreographer( - this.activatedRoute.snapshot.paramMap.get('mode'), - ['calendar', 'recurring', 'single'], - ); + this.onInit(); + } + + /** + * ngOnInit is not reliably called after first navigation to app/schedule. This leads to URL and segmentView being out of sync. + * ionViewWillEnter is called on second, third, ... navigation to app/schedule + */ + ionViewWillEnter() { + this.onInit(); + this.segmentView.value = this.tabChoreographer.currentValue; } ngAfterViewInit() { this.segmentView.value = this.tabChoreographer.currentValue; } + onInit() { + this.tabChoreographer = new SharedAxisChoreographer( + this.activatedRoute.snapshot.paramMap.get('mode'), + ['calendar', 'recurring', 'single'], + ); + } + /** * Resize callback * @@ -144,9 +172,21 @@ export class SchedulePageComponent implements OnInit, AfterViewInit { */ onSegmentChange() { const url = this.router - .createUrlTree([[], this.segmentView.value]) + .createUrlTree([[], 'schedule', this.segmentView.value]) .toString(); this.location.go(url); this.tabChoreographer.changeViewForState(this.segmentView.value); } + + onTodayClick() { + this.calendarService.emitGoToDate(moment().startOf('day')); + } + + onFABClick() { + this.isModalOpen = true; + } + + onModalDismiss() { + this.isModalOpen = false; + } } diff --git a/src/app/modules/schedule/page/schedule-page.html b/src/app/modules/schedule/page/schedule-page.html index 350b6093..8d5b6c38 100644 --- a/src/app/modules/schedule/page/schedule-page.html +++ b/src/app/modules/schedule/page/schedule-page.html @@ -14,13 +14,35 @@ --> - + - - + - - + {{ + 'schedule.calendar' | translate | titlecase + }} + {{ + 'schedule.recurring' | translate | titlecase + }} + {{ + 'schedule.single' | translate | titlecase + }} + + + {{ 'schedule.view.today' | translate | uppercase }} + + + + + {{ 'schedule.calendar' | translate }} @@ -34,35 +56,43 @@ -
- - - - -
+ +
+ + + + +
- - - - - + + + + + - - - - - + + + + + +
diff --git a/src/app/modules/schedule/page/schedule-page.scss b/src/app/modules/schedule/page/schedule-page.scss index 6aa3458a..dfc23470 100644 --- a/src/app/modules/schedule/page/schedule-page.scss +++ b/src/app/modules/schedule/page/schedule-page.scss @@ -13,6 +13,49 @@ * this program. If not, see . */ +ion-header { + ion-toolbar { + ion-back-button { + --padding-start: 0; + --padding-end: var(--spacing-lg); + } + + &.tabs-toolbar { + --min-height: 44px; + } + + ion-segment.tabs { + position: absolute; + bottom: 0; + min-height: unset; + margin-left: 15%; + margin-right: 15%; + max-width: 70%; + left: 50%; + transform: translateX(-50%); + + @media (max-width: 420px) { + width: 300px; + max-width: unset; + margin-left: auto; + margin-right: auto; + } + + ion-segment-button { + min-height: 44px; + + ion-label { + line-height: unset; + margin: var(--spacing-sm) 0; + } + } + } + } +} + +ion-content { + --background: var(--ion-color-light); +} div { height: 100%; diff --git a/src/app/modules/schedule/page/schedule-single-events.component.ts b/src/app/modules/schedule/page/schedule-single-events.component.ts index 26ee98f3..71c2c37a 100644 --- a/src/app/modules/schedule/page/schedule-single-events.component.ts +++ b/src/app/modules/schedule/page/schedule-single-events.component.ts @@ -90,7 +90,9 @@ export class ScheduleSingleEventsComponent implements OnInit, OnDestroy { // tslint:disable-next-line:no-magic-numbers .minute() / 60, + startAsString: moment(date).format('LT'), duration: event.duration, + endAsString: moment(date).add(event.duration).format('LT'), }, }, })), @@ -118,9 +120,10 @@ export class ScheduleSingleEventsComponent implements OnInit, OnDestroy { ); // TODO: replace with filter - return ScheduleSingleEventsComponent.groupDateSeriesToDays( + const test = ScheduleSingleEventsComponent.groupDateSeriesToDays( dateSeries.dates.filter(it => !it.repeatFrequency), ); + return test; } /** diff --git a/src/app/modules/schedule/page/schedule-single-events.html b/src/app/modules/schedule/page/schedule-single-events.html index 958262b8..2b35893a 100644 --- a/src/app/modules/schedule/page/schedule-single-events.html +++ b/src/app/modules/schedule/page/schedule-single-events.html @@ -5,14 +5,21 @@ {{ day[0].day | amDateFormat: 'LL' }} - - {{ event.event.dateSeries.dates[0] | amDateFormat: 'HH:mm' }} - +
+ + {{ event.event.time.startAsString }} + + + {{ + event.event.time.endAsString + }} +
diff --git a/src/app/modules/schedule/page/schedule-single-events.scss b/src/app/modules/schedule/page/schedule-single-events.scss index 0b6c1487..4172f74c 100644 --- a/src/app/modules/schedule/page/schedule-single-events.scss +++ b/src/app/modules/schedule/page/schedule-single-events.scss @@ -1,17 +1,35 @@ -ion-content { - height: 100%; -} +:host { + ion-content { + height: 100%; + } -.hour-label { - width: fit-content; -} + .hour-wrapper { + display: flex; + flex-direction: column; + align-items: center; + margin-right: var(--spacing-md); -.day-label { - padding: 16px; - font-size: large; - font-weight: bold; -} + .hour-label { + width: fit-content; + display: inline-block; + text-align: center; + } + .hour-line { + width: 1px; + height: 20px; + border-left: 1px solid var(--ion-color-primary); + margin: var(--spacing-xs) 0; + } + } -.event-card { - width: 100% + .day-label { + padding: 16px; + font-size: large; + font-weight: bold; + } + + .event-card { + width: 100%; + max-width: 600px; + } } diff --git a/src/app/modules/schedule/page/schedule-single-events.spec.ts b/src/app/modules/schedule/page/schedule-single-events.spec.ts index b395dc3b..3562ae20 100644 --- a/src/app/modules/schedule/page/schedule-single-events.spec.ts +++ b/src/app/modules/schedule/page/schedule-single-events.spec.ts @@ -46,7 +46,11 @@ describe('ScheduleSingleEvents', () => { dateSeries: series as SCDateSeries, time: { start: time.hour() + time.minute() / 60, + startAsString: moment(time).format('LT'), duration: series.duration as string, + endAsString: moment(time) + .add(series.duration?.[index]) + .format('LT'), }, }, }; diff --git a/src/app/modules/schedule/page/schedule-view.component.ts b/src/app/modules/schedule/page/schedule-view.component.ts index ff334c31..8a1e0e8d 100644 --- a/src/app/modules/schedule/page/schedule-view.component.ts +++ b/src/app/modules/schedule/page/schedule-view.component.ts @@ -12,18 +12,27 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -import {Component} from '@angular/core'; +import { + AfterViewInit, + Component, + Input, + OnDestroy, + OnInit, + ViewChild, +} from '@angular/core'; import {ActivatedRoute} from '@angular/router'; -import {Platform} from '@ionic/angular'; -import moment from 'moment'; -import {DateFormatPipe} from 'ngx-moment'; +import moment, {Moment} from 'moment'; import { materialFade, materialManualFade, materialSharedAxisX, } from '../../../animation/material-motion'; import {ScheduleProvider} from '../../calendar/schedule.provider'; -import {CalendarViewComponent} from './calendar-view.component'; +import {SCISO8601Date, SCUuid} from '@openstapps/core'; +import {ScheduleEvent, ScheduleResponsiveBreakpoint} from './schema/schema'; +import {CalendarService} from '../../calendar/calendar.service'; +import {CalendarComponent} from './components/calendar.component'; +import {IonDatetime} from '@ionic/angular'; import {SwiperComponent} from 'swiper/angular'; /** @@ -32,49 +41,105 @@ import {SwiperComponent} from 'swiper/angular'; @Component({ selector: 'stapps-schedule-view', templateUrl: 'schedule-view.html', - styleUrls: ['calendar-view.scss', 'schedule-view.scss'], + styleUrls: ['schedule-view.scss', './components/calendar-component.scss'], animations: [materialFade, materialSharedAxisX, materialManualFade], }) -export class ScheduleViewComponent extends CalendarViewComponent { +export class ScheduleViewComponent + extends CalendarComponent + implements OnInit, AfterViewInit, OnDestroy +{ + @ViewChild('mainSwiper') mainSwiper: SwiperComponent; + + @ViewChild('headerSwiper') headerSwiper: SwiperComponent; + + /** + * The day that the schedule started out on + */ + baselineDate: Moment; + + /** + * Hours for grid + */ + readonly hours: number[]; + + /** + * Range of hours to display + */ + @Input() readonly hoursRange = { + from: 5, + to: 22, + }; + + /** + * Layout of the schedule + */ + @Input() layout: ScheduleResponsiveBreakpoint; + + schedule: Record> = {}; + + /** + * unix -> (uid -> event) + */ + @Input() testSchedule: Record> = + {}; + /** * Route Fragment */ // @Override routeFragment = 'schedule/recurring'; + // start at sunday weekDates = Array.from({length: 7}).map( - /* eslint-disable-next-line unicorn/consistent-function-scoping */ - (_, i) => moment(new Date(2022, 0, 2 + i)), // 02/01/2022 is a Sunday + // eslint-disable-next-line unicorn/consistent-function-scoping + (_, i) => + moment() + .startOf('week') + .add(i - 1, 'days'), ); constructor( - scheduleProvider: ScheduleProvider, activatedRoute: ActivatedRoute, - datePipe: DateFormatPipe, - platform: Platform, + calendarService: CalendarService, + scheduleProvider: ScheduleProvider, ) { - super(scheduleProvider, activatedRoute, datePipe, platform); - } - - syncSwiper(self: SwiperComponent, other: SwiperComponent) { - other.swiperRef.slideTo(self.swiperRef.activeIndex); + super(activatedRoute, calendarService, scheduleProvider); + const hoursAmount = this.hoursRange.to - this.hoursRange.from + 1; + this.hours = [...Array.from({length: hoursAmount}).keys()]; } /** - * Determine displayed dates according to display size + * Initialize */ - // @Override - determineDisplayDates() { - // let's boldly assume that we at least display one day - - const out = [moment(moment.now()).startOf(this.layout.startOf)]; - for (let i = 1; i < this.layout.days; i++) { - out.push(out[0].clone().add(i, 'day')); + ngOnInit() { + super.onInit(); + if (this.calendarServiceSubscription) { + this.calendarServiceSubscription.unsubscribe(); } + this.calendarServiceSubscription = + this.calendarService.goToDateClicked.subscribe(() => { + this.slideToToday(); + }); + } - this.displayDates = [out]; + ngAfterViewInit() { + this.slideToToday(); + } - // void this.mainSlides.slideTo(this.mode === 'schedule' ? 0 : 1, 0, false); + /** + * OnDestroy + */ + ngOnDestroy(): void { + super.onDestroy(); + } + + /** + * Slide today into view. + */ + slideToToday() { + const todayIndex = Number(moment().startOf('week').format('d')) + 1; + this.mainSwiper?.swiperRef.slideTo(todayIndex); + this.setDateRange(todayIndex); } /** @@ -113,4 +178,15 @@ export class ScheduleViewComponent extends CalendarViewComponent { return this.todaySlideIndex; } + + presentScheduleDatePopover(index: number, popoverDateTime: IonDatetime) { + const nextIndex = + moment(popoverDateTime.value).diff(this.baselineDate, 'days') - + this.headerSwiper.swiperRef.realIndex - + index; + + this.mainSwiper.swiperRef.slideTo(nextIndex); + this.setDateRange(nextIndex); + popoverDateTime.confirm(true); + } } diff --git a/src/app/modules/schedule/page/schedule-view.html b/src/app/modules/schedule/page/schedule-view.html index f95ffc3b..de538b76 100644 --- a/src/app/modules/schedule/page/schedule-view.html +++ b/src/app/modules/schedule/page/schedule-view.html @@ -6,72 +6,101 @@ ~ ~ This program is distributed in the hope that it will be useful, but WITHOUT ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + ~ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public Licens for ~ more details. ~ ~ You should have received a copy of the GNU General Public License along with ~ this program. If not, see . --> -
- + - + - - - -
- - - {{ date | amDateFormat: 'dddd' }} - - -
-
-
-
-
- - - +
- + + {{ dateRange.startDate }} - {{ dateRange.endDate }} + + + + + + + + +
+
+ +
- {{ i + hoursRange.from }}:00 -
+
+ +
+ {{ i + hoursRange.from }} +
+
+
+ + + + + + +
diff --git a/src/app/modules/schedule/page/schedule-view.scss b/src/app/modules/schedule/page/schedule-view.scss index 6398e1a9..72433d07 100644 --- a/src/app/modules/schedule/page/schedule-view.scss +++ b/src/app/modules/schedule/page/schedule-view.scss @@ -13,18 +13,6 @@ * this program. If not, see . */ -.full-height { - height: 100%; -} - -.day-labels > ion-button[disabled] { - opacity: 1; -} - -.day-labels { - ion-button { - ion-label { - overflow: visible !important; - } - } +.swiper, .swiper-wrapper, .swiper-slide { + overflow: unset; } diff --git a/src/app/modules/schedule/page/schema/schema.ts b/src/app/modules/schedule/page/schema/schema.ts index 92fd9488..faafb114 100644 --- a/src/app/modules/schedule/page/schema/schema.ts +++ b/src/app/modules/schedule/page/schema/schema.ts @@ -19,6 +19,8 @@ import {unitOfTime} from 'moment'; interface DateRange { duration: SCISO8601Duration; start: number; + startAsString?: string; + endAsString?: string; } export interface Range { diff --git a/src/app/modules/schedule/schedule.module.ts b/src/app/modules/schedule/schedule.module.ts index 341a903b..da3369ea 100644 --- a/src/app/modules/schedule/schedule.module.ts +++ b/src/app/modules/schedule/schedule.module.ts @@ -36,6 +36,7 @@ import {ScheduleDayComponent} from './page/grid/schedule-day.component'; import {ThingTranslateModule} from '../../translation/thing-translate.module'; import {InfiniteSwiperComponent} from './page/grid/infinite-swiper.component'; import {FileOpener} from '@ionic-native/file-opener/ngx'; +import {CalendarComponent} from './page/components/calendar.component'; const settingsRoutes: Routes = [ {path: 'schedule', redirectTo: 'schedule/calendar/now'}, @@ -51,6 +52,7 @@ const settingsRoutes: Routes = [ */ @NgModule({ declarations: [ + CalendarComponent, CalendarViewComponent, ModalEventCreatorComponent, ScheduleCardComponent, diff --git a/src/app/modules/settings/item/settings-item.html b/src/app/modules/settings/item/settings-item.html index 1bb980b3..e5b75d77 100644 --- a/src/app/modules/settings/item/settings-item.html +++ b/src/app/modules/settings/item/settings-item.html @@ -12,7 +12,7 @@ {{ vals.name }} diff --git a/src/app/modules/settings/page/calendar-sync-settings.html b/src/app/modules/settings/page/calendar-sync-settings.html index 0748719d..298279e7 100644 --- a/src/app/modules/settings/page/calendar-sync-settings.html +++ b/src/app/modules/settings/page/calendar-sync-settings.html @@ -66,7 +66,7 @@ (click)="syncCalendar(true)" > Sync Now - + @@ -97,7 +97,7 @@ {{ 'settings.calendar.export.backup' | translate }} - + {{ diff --git a/src/app/modules/settings/page/settings-page.html b/src/app/modules/settings/page/settings-page.html index 12b36dff..ca0c6c3f 100644 --- a/src/app/modules/settings/page/settings-page.html +++ b/src/app/modules/settings/page/settings-page.html @@ -1,8 +1,10 @@ - + - - + {{ 'settings.title' | translate | titlecase }} @@ -43,6 +45,6 @@ (click)="presentResetAlert()" > {{ 'settings.resetSettings' | translate }} - + diff --git a/src/app/modules/settings/settings.module.ts b/src/app/modules/settings/settings.module.ts index 03c4f57f..dcc41454 100644 --- a/src/app/modules/settings/settings.module.ts +++ b/src/app/modules/settings/settings.module.ts @@ -33,6 +33,7 @@ import {ScheduleSyncService} from '../background/schedule/schedule-sync.service' import {CalendarService} from '../calendar/calendar.service'; import {CalendarModule} from '../calendar/calendar.module'; import {BackgroundModule} from '../background/background.module'; +import {UtilModule} from '../../util/util.module'; const settingsRoutes: Routes = [ {path: 'settings', component: SettingsPageComponent}, @@ -58,6 +59,7 @@ const settingsRoutes: Routes = [ TranslateModule.forChild(), ThingTranslateModule.forChild(), RouterModule.forChild(settingsRoutes), + UtilModule, ], providers: [ ScheduleSyncService, diff --git a/src/app/translation/i18n.spec.ts b/src/app/translation/i18n.spec.ts index c6e7e105..b957a42e 100644 --- a/src/app/translation/i18n.spec.ts +++ b/src/app/translation/i18n.spec.ts @@ -28,6 +28,10 @@ const exceptions = new Set([ 'ejournal', 'backup', 'export', + 'dashboard', + 'home', + 'email', + 'logins', ]); const languages = [ diff --git a/src/app/util/daytime-key.pipe.ts b/src/app/util/daytime-key.pipe.ts new file mode 100644 index 00000000..5aa8f6e6 --- /dev/null +++ b/src/app/util/daytime-key.pipe.ts @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +import {Injectable, Pipe, PipeTransform} from '@angular/core'; +import moment from 'moment'; + +/** + * Return the extended translation key by the current daytime key + */ +@Injectable() +@Pipe({ + name: 'daytimeKey', +}) +export class DaytimeKeyPipe implements PipeTransform { + /** + * Transform + */ + transform(translationKey: string): string { + const hour = Number.parseInt(moment().format('HH'), 10); + let key = ''; + if (hour >= 5 && hour <= 10) { + key = 'morning'; + } else if (hour >= 11 && hour <= 18) { + key = 'day'; + } else if (hour >= 19 && hour <= 23) { + key = 'evening'; + } else { + key = 'night'; + } + + return `${translationKey}_${key}`; + } +} diff --git a/src/app/util/ion-back-button.directive.ts b/src/app/util/ion-back-button.directive.ts new file mode 100644 index 00000000..aca2f7fb --- /dev/null +++ b/src/app/util/ion-back-button.directive.ts @@ -0,0 +1,59 @@ +import {Directive, HostListener, Input, Optional} from '@angular/core'; +import { + AnimationBuilder, + Config, + IonBackButtonDelegate, + IonRouterOutlet, + NavController, +} from '@ionic/angular'; + +/** + * Overrides the default ion-back-button directive. + * + * @see https://github.com/ionic-team/ionic-framework/blob/main/angular/src/directives/navigation/ion-back-button.ts + */ +@Directive({ + selector: 'ion-back-button', +}) +export class IonBackButtonOverrideDirective { + @Input() + defaultHref: string | undefined | null; + + @Input() + routerAnimation?: AnimationBuilder; + + constructor( + @Optional() private routerOutlet: IonRouterOutlet, + private navCtrl: NavController, + private config: Config, + private ionBackButton: IonBackButtonDelegate, + ) { + this.ionBackButton.onClick = () => { + // Override default onClick to prevent double execution and errors + }; + } + + @HostListener('click', ['$event']) + onClick(event: Event): void { + const defaultHref = + this.defaultHref || this.config.get('backButtonDefaultHref'); + + // Handle back via angular navCtrl.back() + // (which is animated, instead of location.back) + if (defaultHref === '..') { + this.navCtrl.back(); + } else if (this.routerOutlet?.canGoBack()) { + this.navCtrl.setDirection( + 'back', + undefined, + undefined, + this.routerAnimation, + ); + this.routerOutlet.pop(); + event.preventDefault(); + } else if (defaultHref != undefined) { + this.navCtrl.navigateBack(defaultHref, {animation: this.routerAnimation}); + event.preventDefault(); + } + } +} diff --git a/src/app/util/next-date-in-list.pipe.ts b/src/app/util/next-date-in-list.pipe.ts new file mode 100644 index 00000000..17efc92b --- /dev/null +++ b/src/app/util/next-date-in-list.pipe.ts @@ -0,0 +1,41 @@ +/* + * Copyright (C) 2021 StApps + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, version 3. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ + +import {Injectable, Pipe, PipeTransform} from '@angular/core'; +import moment from 'moment'; + +/** + * Get the last value of an array + */ +@Injectable() +@Pipe({ + name: 'nextDateInList', + pure: false, // pure pipe can break in some change detection scenarios, + // specifically, on the calendar view it causes it to stay true even when you navigate +}) +export class NextDateInListPipe implements PipeTransform { + /** + * Transform + */ + // tslint:disable-next-line:prefer-function-over-method + transform(dates: string[]): string { + const nextDate = dates + .sort((a, b) => moment(a).unix() - moment(b).unix()) + .find(date => { + return moment(date).unix() > moment().unix(); + }); + return nextDate || ''; + } +} diff --git a/src/app/util/util.module.ts b/src/app/util/util.module.ts index c0ad4a6a..a357d840 100644 --- a/src/app/util/util.module.ts +++ b/src/app/util/util.module.ts @@ -18,7 +18,10 @@ import {ArrayLastPipe} from './array-last.pipe'; import {DateIsThisPipe} from './date-is-today.pipe'; import {NullishCoalescingPipe} from './nullish-coalecing.pipe'; import {DateFromIndexPipe} from './date-from-index.pipe'; +import {DaytimeKeyPipe} from './daytime-key.pipe'; import {LazyPipe} from './lazy.pipe'; +import {NextDateInListPipe} from './next-date-in-list.pipe'; +import {IonBackButtonOverrideDirective} from './ion-back-button.directive'; @NgModule({ declarations: [ @@ -27,6 +30,9 @@ import {LazyPipe} from './lazy.pipe'; NullishCoalescingPipe, LazyPipe, DateFromIndexPipe, + DaytimeKeyPipe, + NextDateInListPipe, + IonBackButtonOverrideDirective, ], exports: [ ArrayLastPipe, @@ -34,6 +40,9 @@ import {LazyPipe} from './lazy.pipe'; NullishCoalescingPipe, LazyPipe, DateFromIndexPipe, + DaytimeKeyPipe, + NextDateInListPipe, + IonBackButtonOverrideDirective, ], }) export class UtilModule {} diff --git a/src/assets/i18n/de.json b/src/assets/i18n/de.json index 9fab6acf..41c4a277 100644 --- a/src/assets/i18n/de.json +++ b/src/assets/i18n/de.json @@ -1,10 +1,14 @@ { "ok": "Ok", "abort": "Abbrechen", + "save": "Speichern", + "back" : "Zurück", "export": "Exportieren", "share": "Teilen", + "timeSuffix": "Uhr", "modal": { - "DISMISS": "Schließen" + "DISMISS": "Schließen", + "settings": "Einstellungen" }, "app": { "ui": { @@ -16,6 +20,13 @@ "UNKNOWN": "Unbekannter Fehler." } }, + "tabs": { + "home": "Home", + "canteens": "Mensa", + "schedule": "Studium", + "map": "Karte", + "profile": "Profil" + }, "assessments": { "TITLE": "Noten", "courseOfStudyAssessments": { @@ -45,6 +56,47 @@ "opening_soon": "Öffnet" } }, + "dashboard": { + "header": { + "title_morning": "Guten Morgen", + "title_day": "Guten Tag", + "title_evening": "Guten Abend", + "title_night": "Hallo" + }, + "navigation": { + "title": "Dashboard", + "item": { + "catalog": "Vorlesungsv.", + "canteen": "Mensa", + "map": "Campus", + "settings": "Einstellungen", + "search": "Suche" + } + }, + "news": { + "title": "Aktuelles", + "moreNews": "Mehr Nachrichten" + }, + "schedule": { + "title": "Nächste Einheit", + "noEvent": "Kein Eintrag gefunden", + "noEventLink": "Jetzt Termine im Stundenplan hinzufügen." + }, + "canteens": { + "title": "Deine Mensa", + "no_favorite_prefix": "Du hast noch keine Mensa als deinen Favoriten markiert. Nutze die", + "no_favorite_link": "Übersicht der Mensen", + "no_favorite_suffix": "um einen Favorit zu wählen.", + "choose_favorite": "Wähle einen Favorit", + "no_dishes_available": "Aktuell sind keine Gerichte verfügbar." + }, + "favorites": { + "title": "Deine Favoriten", + "no_favorite_prefix": "Du hast noch keine Favoriten markiert. Nutze die", + "no_favorite_link": "Suche", + "no_favorite_suffix": "um Favoriten zu wählen." + } + }, "data": { "REFRESH_ACTION": "Aktualisieren", "REFRESHING": "Aktualisierung läuft...", @@ -268,16 +320,24 @@ } }, "news": { - "title": "Aktuelles" + "title": "Aktuelles", + "publishedOn": "News vom" + }, + "canteens": { + "title": "Mensa" }, "search": { + "title": "Universal Suche", + "type": "Suche", "search_bar": { - "placeholder": "Suche ..." + "placeholder": "Suche nach News, Räumen, Personen ..." }, "instruction": "Starte oben zu tippen, um Veranstaltungen, Veranstaltungstermine, Personen, Orte, Essen und mehr zu finden ...", "nothing_found": "Keine Ergebnisse" }, "hebisSearch": { + "title": "Bibliothekssuche", + "type": "Bibliothek", "search_bar": { "placeholder": "Suche ..." }, @@ -334,6 +394,9 @@ } } }, + "view": { + "today": "Heute" + }, "recurring": "Stundenplan", "calendar": "Kalender", "single": "Einzeltermine", @@ -354,6 +417,9 @@ }, "profile": { "title": "Profil", + "titleLogins": "Logins", + "titleCourses": "Meine Kurse", + "role_guest": "Gastnutzer", "buttons": { "default": { "log_in": "Login", @@ -365,7 +431,14 @@ } }, "userInfo": { - "studentId": "Matrikelnr." + "studentId": "Matrikelnr.", + "username": "Nutzer Name", + "email": "Email", + "logInPrompt": "Bitte loggen Sie sich ein, um Ihre Nutzerdaten sehen zu können." + }, + "courses": { + "today": "Heute", + "no_courses": "Heute stehen keine Termine mehr an." } }, "settings": { diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index 9d31fcbf..aaf12186 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -1,10 +1,14 @@ { "ok": "Ok", "abort": "Abort", + "save": "Save", + "back" : "back", "export": "Export", "share": "Share", + "timeSuffix": "", "modal": { - "DISMISS": "Close" + "DISMISS": "Close", + "settings": "Settings" }, "app": { "ui": { @@ -16,6 +20,13 @@ "UNKNOWN": "Unknown problem." } }, + "tabs": { + "home": "Home", + "canteens": "Canteens", + "schedule": "Study", + "map": "Map", + "profile": "Profile" + }, "assessments": { "TITLE": "Grades", "courseOfStudyAssessments": { @@ -45,6 +56,47 @@ "opening_soon": "Opens" } }, + "dashboard": { + "header": { + "title_morning": "Good Morning", + "title_day": "Good Day", + "title_evening": "Good Evening", + "title_night": "Hello" + }, + "navigation": { + "title": "Dashboard", + "item": { + "catalog": "Course Catalog", + "canteen": "Canteens", + "map": "Map", + "settings": "Settings", + "search": "Search" + } + }, + "news": { + "title": "News", + "moreNews": "More News" + }, + "schedule": { + "title": "Next Unit", + "noEvent": "No entry found", + "noEventLink": "Add appointments to the timetable now." + }, + "canteens": { + "title": "Your canteen", + "no_favorite_prefix": "You haven't yet marked a canteen as your favorite. Use the", + "no_favorite_link": "overview of the canteens", + "no_favorite_suffix": "to mark a favorite.", + "choose_favorite": "Mark a favorite", + "no_dishes_available": "There are currently no dishes available." + }, + "favorites": { + "title": "Your favorites", + "no_favorite_prefix": "You have not yet marked any favorites. Use the", + "no_favorite_link": "Search", + "no_favorite_suffix": "to choose favorites." + } + }, "data": { "REFRESH_ACTION": "Refresh", "REFRESHING": "Refreshing...", @@ -268,16 +320,24 @@ } }, "news": { - "title": "News" + "title": "News", + "publishedOn": "News of" + }, + "canteens": { + "title": "Canteens" }, "search": { + "title": "Universal Search", + "type": "Search", "search_bar": { - "placeholder": "Search ..." + "placeholder": "Search for news, rooms, persons ..." }, "instruction": "Start typing above to find events, persons, places, food and more ...", "nothing_found": "No results" }, "hebisSearch": { + "title": "Library Search", + "type": "Library", "search_bar": { "placeholder": "Search ..." }, @@ -334,6 +394,9 @@ } } }, + "view": { + "today": "Today" + }, "recurring": "Recurring", "calendar": "Calendar", "single": "Single Events", @@ -354,6 +417,9 @@ }, "profile": { "title": "Profile", + "titleLogins": "Logins", + "titleCourses": "My Courses", + "role_guest": "guest user", "buttons": { "default": { "log_in": "Log In", @@ -365,7 +431,14 @@ } }, "userInfo": { - "studentId": "Matriculation Nr." + "studentId": "Matriculation Nr.", + "username": "Username", + "email": "Email", + "logInPrompt": "Please log in to view your user data." + }, + "courses": { + "today": "Today", + "no_courses": "There are no more appointments scheduled today." } }, "settings": { diff --git a/src/assets/imgs/profile-card-head.jpeg b/src/assets/imgs/profile-card-head.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..df9b4360960030f60a6cccab67bf64ca8d9a43d0 GIT binary patch literal 103708 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

J zM?ZVg$7_2#ewN*^mQx8)k}E$vMnk_o<9~aBve-J-B(ZjCmVEtRFUo)D2(^ohHR-MU zw7(S3p@u@)sLn(#S<^q21W&BXlkNqe=r?%uUb-bb!??jxVYrF_u^aNm)~~-l6>0%n z=3OduCP!GytPd3vqqX<9THA4YXZ&p3#Hfvg<dw57^I{-Xd{^} zd{PgIpNUBk`NB__=n{}>RV^-hEm~bEsNc@~0-u0QJhz>+%{i984=>@}zjlk*+XE-$ zG!-lx7q0`HP=kgbXAgt0%v{fM;u3>EmcWzhdq zFI#GmR+j;Dc0?X8e}FRoB6wO5vqhO0t#Y5Kb8+QC$9!ET+EEPp@Gfkmf0z3QI(=d2 ztkeT(?F56EyaX<8v}C>b!EKe9L+s#jiPvL$F17x2y46YE;3hkj+`bddU?o7!+Y$7= zobk^unxIP|!;>laI(CP;3f!(w&3*Z2N3^6Qt4oc`Yv}@GG}y>!R$m?^1sB3zol8fb zw^M?_snFvaK3W?0S1$P}&b{wcX{e*#7nls-k@QvoAHXP#2Pr}9a70Hn=;yfMt1D!b zl?jgyxI?;o^pAPd(6DZ*MTvd0fLY&04cTXuw7bHtP^5SnKI zrd*j;F4I>Fs@W1kslDpQ-

e`bIq&I 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

    y$ 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

    J zM?ZVg$7_2#ewN*^mQx8)k}E$vMnk_o<9~aBve-J-B(ZjCmVEtRFUo)D2(^ohHR-MU zw7(S3p@u@)sLn(#S<^q21W&BXlkNqe=r?%uUb-bb!??jxVYrF_u^aNm)~~-l6>0%n z=3OduCP!GytPd3vqqX<9THA4YXZ&p3#Hfvg<dw57^I{-Xd{^} zd{PgIpNUBk`NB__=n{}>RV^-hEm~bEsNc@~0-u0QJhz>+%{i984=>@}zjlk*+XE-$ zG!-lx7q0`HP=kgbXAgt0%v{fM;u3>EmcWzhdq zFI#GmR+j;Dc0?X8e}FRoB6wO5vqhO0t#Y5Kb8+QC$9!ET+EEPp@Gfkmf0z3QI(=d2 ztkeT(?F56EyaX<8v}C>b!EKe9L+s#jiPvL$F17x2y46YE;3hkj+`bddU?o7!+Y$7= zobk^unxIP|!;>laI(CP;3f!(w&3*Z2N3^6Qt4oc`Yv}@GG}y>!R$m?^1sB3zol8fb zw^M?_snFvaK3W?0S1$P}&b{wcX{e*#7nls-k@QvoAHXP#2Pr}9a70Hn=;yfMt1D!b zl?jgyxI?;o^pAPd(6DZ*MTvd0fLY&04cTXuw7bHtP^5SnKI zrd*j;F4I>Fs@W1kslDpQ-

    e`bIq&I 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

      y$ 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 Y8o8A~UFBkz09{8lh6O>UxexvS02SHl8vp + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/tabler-icons/arrow-loop-left.svg b/src/assets/tabler-icons/arrow-loop-left.svg index bc1cbcaa..70ea7929 100644 --- a/src/assets/tabler-icons/arrow-loop-left.svg +++ b/src/assets/tabler-icons/arrow-loop-left.svg @@ -1,7 +1,7 @@ - + diff --git a/src/assets/tabler-icons/arrow-loop-right.svg b/src/assets/tabler-icons/arrow-loop-right.svg index 351fac07..4f69ae6b 100644 --- a/src/assets/tabler-icons/arrow-loop-right.svg +++ b/src/assets/tabler-icons/arrow-loop-right.svg @@ -1,7 +1,7 @@ - + diff --git a/src/assets/tabler-icons/brand-vk.svg b/src/assets/tabler-icons/brand-vk.svg index 1ecee228..d7e81e3f 100644 --- a/src/assets/tabler-icons/brand-vk.svg +++ b/src/assets/tabler-icons/brand-vk.svg @@ -1,6 +1,8 @@ - + + + diff --git a/src/assets/tabler-icons/bulb-off.svg b/src/assets/tabler-icons/bulb-off.svg index 86b1433b..68e79900 100644 --- a/src/assets/tabler-icons/bulb-off.svg +++ b/src/assets/tabler-icons/bulb-off.svg @@ -1,9 +1,7 @@ - - - - + + diff --git a/src/assets/tabler-icons/cardboards.svg b/src/assets/tabler-icons/cardboards.svg index 490074bd..4b0cd7bb 100644 --- a/src/assets/tabler-icons/cardboards.svg +++ b/src/assets/tabler-icons/cardboards.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/assets/tabler-icons/cloud.svg b/src/assets/tabler-icons/cloud.svg index a5345f6d..1bda7e15 100644 --- a/src/assets/tabler-icons/cloud.svg +++ b/src/assets/tabler-icons/cloud.svg @@ -1,6 +1,6 @@ - + diff --git a/src/assets/tabler-icons/currency-bath.svg b/src/assets/tabler-icons/currency-bath.svg new file mode 100644 index 00000000..4051da0e --- /dev/null +++ b/src/assets/tabler-icons/currency-bath.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/tabler-icons/device-mobile-rotated.svg b/src/assets/tabler-icons/device-mobile-rotated.svg index 491d7758..6c9bc749 100644 --- a/src/assets/tabler-icons/device-mobile-rotated.svg +++ b/src/assets/tabler-icons/device-mobile-rotated.svg @@ -1,8 +1,10 @@ - - - + + + + + diff --git a/src/assets/tabler-icons/device-mobile-vibration.svg b/src/assets/tabler-icons/device-mobile-vibration.svg index d0ea731e..a53750a5 100644 --- a/src/assets/tabler-icons/device-mobile-vibration.svg +++ b/src/assets/tabler-icons/device-mobile-vibration.svg @@ -1,9 +1,9 @@ - - + + - + diff --git a/src/assets/tabler-icons/device-mobile.svg b/src/assets/tabler-icons/device-mobile.svg index 378e2053..667bd813 100644 --- a/src/assets/tabler-icons/device-mobile.svg +++ b/src/assets/tabler-icons/device-mobile.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/assets/tabler-icons/directions.svg b/src/assets/tabler-icons/directions.svg index 819c6e71..b036bfab 100644 --- a/src/assets/tabler-icons/directions.svg +++ b/src/assets/tabler-icons/directions.svg @@ -1,11 +1,10 @@ - - - - - - + + + + + diff --git a/src/assets/tabler-icons/edit.svg b/src/assets/tabler-icons/edit.svg index 07540044..316a8a8d 100644 --- a/src/assets/tabler-icons/edit.svg +++ b/src/assets/tabler-icons/edit.svg @@ -1,8 +1,8 @@ - - - + + + diff --git a/src/assets/tabler-icons/eraser.svg b/src/assets/tabler-icons/eraser.svg index 36a2cc5a..1e4ff1e8 100644 --- a/src/assets/tabler-icons/eraser.svg +++ b/src/assets/tabler-icons/eraser.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/assets/tabler-icons/file-download.svg b/src/assets/tabler-icons/file-download.svg index 942b215a..1f5d958a 100644 --- a/src/assets/tabler-icons/file-download.svg +++ b/src/assets/tabler-icons/file-download.svg @@ -2,8 +2,8 @@ - - + + diff --git a/src/assets/tabler-icons/file-upload.svg b/src/assets/tabler-icons/file-upload.svg index f86ab859..f062fd80 100644 --- a/src/assets/tabler-icons/file-upload.svg +++ b/src/assets/tabler-icons/file-upload.svg @@ -2,8 +2,8 @@ - - + + diff --git a/src/assets/tabler-icons/hammer.svg b/src/assets/tabler-icons/hammer.svg index cd517425..63942ebf 100644 --- a/src/assets/tabler-icons/hammer.svg +++ b/src/assets/tabler-icons/hammer.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/assets/tabler-icons/hanger.svg b/src/assets/tabler-icons/hanger.svg index 59fdc04c..7c88b1f4 100644 --- a/src/assets/tabler-icons/hanger.svg +++ b/src/assets/tabler-icons/hanger.svg @@ -1,6 +1,6 @@ - + diff --git a/src/assets/tabler-icons/heart-broken.svg b/src/assets/tabler-icons/heart-broken.svg index 0afc1847..79fa2b93 100644 --- a/src/assets/tabler-icons/heart-broken.svg +++ b/src/assets/tabler-icons/heart-broken.svg @@ -1,7 +1,7 @@ - - + + diff --git a/src/assets/tabler-icons/heart.svg b/src/assets/tabler-icons/heart.svg index 8747966f..56211a9b 100644 --- a/src/assets/tabler-icons/heart.svg +++ b/src/assets/tabler-icons/heart.svg @@ -1,6 +1,6 @@ - + diff --git a/src/assets/tabler-icons/letters-case.svg b/src/assets/tabler-icons/letters-case.svg new file mode 100644 index 00000000..e8e16df8 --- /dev/null +++ b/src/assets/tabler-icons/letters-case.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/tabler-icons/miliraty-award.svg b/src/assets/tabler-icons/miliraty-award.svg new file mode 100644 index 00000000..53c2cd79 --- /dev/null +++ b/src/assets/tabler-icons/miliraty-award.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/assets/tabler-icons/plug.svg b/src/assets/tabler-icons/plug.svg index 6ea4a764..63c4b2d5 100644 --- a/src/assets/tabler-icons/plug.svg +++ b/src/assets/tabler-icons/plug.svg @@ -1,9 +1,9 @@ - - - - + + + + diff --git a/src/assets/tabler-icons/smart-home.svg b/src/assets/tabler-icons/smart-home.svg index b340c22a..7c3e1cc8 100644 --- a/src/assets/tabler-icons/smart-home.svg +++ b/src/assets/tabler-icons/smart-home.svg @@ -1,6 +1,7 @@ + diff --git a/src/assets/tabler-icons/test-pipe.svg b/src/assets/tabler-icons/test-pipe.svg index 0b7b3d61..14c00e6b 100644 --- a/src/assets/tabler-icons/test-pipe.svg +++ b/src/assets/tabler-icons/test-pipe.svg @@ -1,9 +1,8 @@ - - - - + + + diff --git a/src/assets/tabler-icons/vector-beizer-2.svg b/src/assets/tabler-icons/vector-beizer-2.svg new file mode 100644 index 00000000..1697d014 --- /dev/null +++ b/src/assets/tabler-icons/vector-beizer-2.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/global.scss b/src/global.scss index 984392f2..51255ffc 100644 --- a/src/global.scss +++ b/src/global.scss @@ -37,7 +37,7 @@ ion-item { font-weight: bold; } ion-thumbnail { - background: var(--placeholder-gray); + background: transparent; --size: 36px; display: flex; align-items: center; diff --git a/src/index.html b/src/index.html index 7046d987..c39e6c12 100644 --- a/src/index.html +++ b/src/index.html @@ -24,7 +24,7 @@ - + diff --git a/src/theme/_fonts.scss b/src/theme/_fonts.scss new file mode 100644 index 00000000..f6ac0dbe --- /dev/null +++ b/src/theme/_fonts.scss @@ -0,0 +1,37 @@ +@font-face { + font-family: 'Barlow'; + src: url('../assets/fonts/barlow/Barlow-Regular.ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'Barlow'; + src: url('../assets/fonts/barlow/Barlow-SemiBold.ttf'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: 'Barlow'; + src: url('../assets/fonts/barlow/Barlow-Bold.ttf'); + font-weight: 800; + font-style: normal; +} +@font-face { + font-family: 'Barlow Condensed'; + src: url('../assets/fonts/barlow_condensed/BarlowCondensed-Regular.ttf'); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'Barlow Condensed'; + src: url('../assets/fonts/barlow_condensed/BarlowCondensed-SemiBold.ttf'); + font-weight: 700; + font-style: normal; +} +@font-face { + font-family: 'Barlow Condensed'; + src: url('../assets/fonts/barlow_condensed/BarlowCondensed-Bold.ttf'); + font-weight: 800; + font-style: normal; +} + diff --git a/src/theme/common/_helper.scss b/src/theme/common/_helper.scss new file mode 100644 index 00000000..418e274f --- /dev/null +++ b/src/theme/common/_helper.scss @@ -0,0 +1,11 @@ +.no-padding-right { + padding-right: 0 !important; +} + +.display-flex { + display: flex; +} + +.clickable { + cursor: pointer; +} diff --git a/src/theme/common/_ion-button.scss b/src/theme/common/_ion-button.scss new file mode 100644 index 00000000..338e9e69 --- /dev/null +++ b/src/theme/common/_ion-button.scss @@ -0,0 +1,42 @@ + + +app-root { + // Change default border radius + ion-buttons ion-button.button, + .button { + &:not(.button-round) { + --border-radius: var(--border-radius-default); + } + } + + .button { + font-size: var(--font-size-sm); + font-weight: var(--font-weight-semi-bold); + --padding-top: var(--spacing-sm); + --padding-bottom: var(--spacing-sm); + height: auto; + + + // Add default border, so buttons have the same size + &:not([fill='outline'])::part(native) { + border: var(--border-width-default) solid transparent; + } + + &[fill='outline']::part(native) { + border: var(--border-width-default) solid rgba(var(--ion-color-primary-contrast-rgb), 0.2); + } + + &.button-active { + font-weight: var(--font-weight-bold); + --background: var(--ion-color-tertiary); + + ion-icon { + color: var(--ion-color-secondary); + } + } + } + + ion-menu-button.button { + font-size: var(--font-size-lg); + } +} diff --git a/src/theme/common/_ion-header.scss b/src/theme/common/_ion-header.scss new file mode 100644 index 00000000..b08d3731 --- /dev/null +++ b/src/theme/common/_ion-header.scss @@ -0,0 +1,5 @@ +app-root ion-header[class*='header-'] { + &:after { + background-image: unset; + } +} diff --git a/src/theme/common/_ion-img.scss b/src/theme/common/_ion-img.scss new file mode 100644 index 00000000..5d088c38 --- /dev/null +++ b/src/theme/common/_ion-img.scss @@ -0,0 +1,5 @@ +app-root { + ion-thumbnail { + background: transparent; + } +} diff --git a/src/theme/common/_ion-input.scss b/src/theme/common/_ion-input.scss new file mode 100644 index 00000000..2838c006 --- /dev/null +++ b/src/theme/common/_ion-input.scss @@ -0,0 +1,40 @@ +$icon-size: 23px; + +app-root ion-searchbar[class*='sc-ion-searchbar-'] { + --border-radius: var(--border-radius-default); + padding-top: 0; + padding-bottom: 0; + height: 38px; + + &.filterable { + padding-left: 0; + padding-right: 0; + --box-shadow: none; + position: relative; + + ion-menu-button { + position: absolute; + right: 5px; + z-index: 1; + } + + .searchbar-clear-button { + right: 45px; + } + } + + ion-icon.searchbar-search-icon { + width: $icon-size; + height: $icon-size; + top: 50%; + transform: translateY(-50%); + left: var(--spacing-sm); + color: var(--ion-color-medium-shade); + } + + input.searchbar-input { + padding-top: var(--spacing-xs); + padding-bottom: var(--spacing-xs); + padding-left: calc(var(--spacing-lg) + #{$icon-size}); + } +} diff --git a/src/theme/common/_ion-modal.scss b/src/theme/common/_ion-modal.scss new file mode 100644 index 00000000..596253bb --- /dev/null +++ b/src/theme/common/_ion-modal.scss @@ -0,0 +1,12 @@ +@import '../../theme/util/mixins'; + +ion-modal { + &.modal-large { + --height: 100%; + + @include ion-md-up { + --height: 70vh; + --max-height: 800px; + } + } +} diff --git a/src/theme/common/_ion-popover.scss b/src/theme/common/_ion-popover.scss new file mode 100644 index 00000000..ff60da92 --- /dev/null +++ b/src/theme/common/_ion-popover.scss @@ -0,0 +1,4 @@ +.sc-ion-popover-ios-h, +.sc-ion-popover-md-h { + --width: 98vw +} diff --git a/src/theme/common/_ion-refresher.scss b/src/theme/common/_ion-refresher.scss new file mode 100644 index 00000000..d3e9d9ef --- /dev/null +++ b/src/theme/common/_ion-refresher.scss @@ -0,0 +1,13 @@ + +ion-refresher { + background-color: var(--ion-color-primary); + text-transform: uppercase; + + .refresher-pulling-icon, + .refresher-pulling-text, + .refresher-refreshing-text { + font-size: var(--font-size-xs); + font-weight: var(--font-weight-semi-bold); + --ion-text-color: var(--ion-color-primary-contrast); + } +} diff --git a/src/theme/common/_ion-toolbar.scss b/src/theme/common/_ion-toolbar.scss new file mode 100644 index 00000000..caeb7328 --- /dev/null +++ b/src/theme/common/_ion-toolbar.scss @@ -0,0 +1,53 @@ +app-root ion-toolbar.in-toolbar { + --background: var(--ion-color-primary); + --border-color: var(--ion-color-primary); + --color: var(--ion-color-primary-contrast); + --ion-toolbar-color: var(--ion-color-primary-contrast); + --min-height: unset; + --padding-start: 0; + --padding-end: 0; + --padding-top: 0; + --padding-bottom: 0; + --opacity: 1; + padding: 0 var(--spacing-md) var(--spacing-md); + + &:last-of-type { + padding-bottom: var(--spacing-md); + --padding-top: 0; + --padding-bottom: 0; + } + + ion-searchbar { + padding-left: 0; + padding-right: 0; + --box-shadow: none; + } + + ion-menu-button.filter { + --padding-start: var(--spacing-lg); + --padding-end: var(--spacing-lg); + + ion-icon { + margin-right: var(--spacing-md); + font-size: var(--font-size-lg); + } + } + + ion-title { + font-weight: var(--font-weight-black); + font-size: var(--font-size-lg); + text-transform: uppercase; + } + + ion-button { + text-transform: uppercase; + } + ion-menu-button { + width: auto; + } + + ion-back-button { + --icon-margin-end: var(--spacing-xs); + height: 42px; // this prevents the back button to become a .x px value + } +} diff --git a/src/theme/common/_swiper.scss b/src/theme/common/_swiper.scss new file mode 100644 index 00000000..560da9da --- /dev/null +++ b/src/theme/common/_swiper.scss @@ -0,0 +1,38 @@ +@import '../../theme/util/mixins'; + +.swiper.card-swiper { + overflow: visible; + padding-right: var(--spacing-lg); + + .swiper-slide { + display: flex; + flex-direction: column; + height: auto; // required for same height of cards + + + a { + color: var(--ion-color-text); + text-decoration: none; + } + } + .swiper-button-prev, .swiper-button-next { + --swiper-navigation-size: 20px; + top: calc(-1 * var(--spacing-xxl)); + transform: translateY(0%); + font-weight: var(--font-weight-black); + color: var(--ion-color-dark); + + @include ion-md-down { + display: none; + } + } + + .swiper-button-prev { + right: 30px; + left: auto; + } + + .swiper-button-next { + right: 0; + } +} diff --git a/src/theme/common/_typo.scss b/src/theme/common/_typo.scss new file mode 100644 index 00000000..b2709bb7 --- /dev/null +++ b/src/theme/common/_typo.scss @@ -0,0 +1,14 @@ +body app-root { + .title, + .title-sub, + .title[class*='sc-ion-label'], + .title-sub[class*='sc-ion-label'] { + font-size: var(--font-size-md); + font-weight: var(--font-weight-semi-bold); + // TODO Condensed Font + } + + .title-sub { + color: var(--ion-color-primary); + } +} diff --git a/src/theme/common/_typography.scss b/src/theme/common/_typography.scss new file mode 100644 index 00000000..71af95b7 --- /dev/null +++ b/src/theme/common/_typography.scss @@ -0,0 +1,3 @@ +a { + cursor: pointer; +} diff --git a/src/theme/components/_card.scss b/src/theme/components/_card.scss new file mode 100644 index 00000000..3379e3a1 --- /dev/null +++ b/src/theme/components/_card.scss @@ -0,0 +1,21 @@ +.card { + box-shadow: var(--shadow-cards); + background-color: var(--ion-color-primary-contrast); + border-radius: var(--border-radius-default); + padding: var(--spacing-md); + font-size: var(--font-size-sm); + font-weight: var(--font-weight-bold); + text-align: left; + display: block; + height: 100%; + transition: transform 250ms ease-in-out, + box-shadow 250ms ease-in-out; +} + +a.card, +.card.clickable { + &:hover { + transform: translate(-5px, -5px); + box-shadow: var(--shadow-cards-hover); + } +} diff --git a/src/theme/components/_section.scss b/src/theme/components/_section.scss new file mode 100644 index 00000000..5c8a06d4 --- /dev/null +++ b/src/theme/components/_section.scss @@ -0,0 +1,12 @@ +.section-headline { + font-size: var(--font-size-lg); + font-weight: var(--font-weight-black); + font-stretch: condensed; + text-transform: uppercase; + margin-bottom: var(--spacing-xs); + + width: 100%; + display: flex; + flex-direction: revert; + justify-content: space-between; +} diff --git a/src/theme/configs/goethe-uni-frankfurt.scss b/src/theme/configs/goethe-uni-frankfurt.scss new file mode 100644 index 00000000..a1d80a74 --- /dev/null +++ b/src/theme/configs/goethe-uni-frankfurt.scss @@ -0,0 +1,137 @@ +:root { + --ion-color-primary: #00618F; + --ion-color-primary-rgb: 0,97,143; + --ion-color-primary-contrast: #ffffff; + --ion-color-primary-contrast-rgb: 255,255,255; + --ion-color-primary-shade: #00557e; + --ion-color-primary-tint: #1a719a; + + --ion-color-secondary: #2fd2f5; + --ion-color-secondary-rgb: 47,210,245; + --ion-color-secondary-contrast: #000000; + --ion-color-secondary-contrast-rgb: 0,0,0; + --ion-color-secondary-shade: #29b9d8; + --ion-color-secondary-tint: #44d7f6; + + --ion-color-tertiary: #00334d; + --ion-color-tertiary-rgb: 0,51,77; + --ion-color-tertiary-contrast: #ffffff; + --ion-color-tertiary-contrast-rgb: 255,255,255; + --ion-color-tertiary-shade: #002d44; + --ion-color-tertiary-tint: #1a475f; + + --ion-color-success: #2dd36f; + --ion-color-success-rgb: 45,211,111; + --ion-color-success-contrast: #000000; + --ion-color-success-contrast-rgb: 0,0,0; + --ion-color-success-shade: #28ba62; + --ion-color-success-tint: #42d77d; + + --ion-color-warning: #ffc409; + --ion-color-warning-rgb: 255,196,9; + --ion-color-warning-contrast: #000000; + --ion-color-warning-contrast-rgb: 0,0,0; + --ion-color-warning-shade: #e0ac08; + --ion-color-warning-tint: #ffca22; + + --ion-color-danger: #eb445a; + --ion-color-danger-rgb: 235,68,90; + --ion-color-danger-contrast: #ffffff; + --ion-color-danger-contrast-rgb: 255,255,255; + --ion-color-danger-shade: #cf3c4f; + --ion-color-danger-tint: #ed576b; + + --ion-color-medium: #d1d2d3; + --ion-color-medium-rgb: 209,210,211; + --ion-color-medium-contrast: #000000; + --ion-color-medium-contrast-rgb: 0,0,0; + --ion-color-medium-shade: #b8b9ba; + --ion-color-medium-tint: #d6d7d7; + + --ion-color-light: #ebedec; + --ion-color-light-rgb: 235,237,236; + --ion-color-light-contrast: #000000; + --ion-color-light-contrast-rgb: 0,0,0; + --ion-color-light-shade: #cfd1d0; + --ion-color-light-tint: #edefee; + + + --ion-color-text: #000; + --ion-color-field-bg: #fff; + --ion-color-light-icon: #e6e6e6; + + + --linear-gradient: linear-gradient(135deg, var(--ion-color-primary-shade), var(--ion-color-tertiary)); + + + // Shadows + --shadow-default: 0px 0px 10px 4px #ddd; + --shadow-cards: 0 0 8px 1px #ddd; + --shadow-cards-hover: 5px 5px 8px 4px #ccc; + --shadow-profile-card: 0 2px 6px 6px rgba(0,0,0,0.06), + 0 4px 5px 12px rgba(0,0,0,0.04), + 0 5px 6px 20px rgba(0,0,0,0.02); + + + // Fonts + --ion-font-family: "Barlow",Helvetica,Arial,sans-serif; + --headline-font-family: "Barlow Condensed",Helvetica,Arial,sans-serif; + + --font-size-xxs: 10px; + --font-size-xs: 12px; + --font-size-sm: 14px; + --font-size-md: 16px; + --font-size-lg: 20px; + --font-size-xl: 24px; + + --font-weight-thin: 200; + --font-weight-regular: 400; + --font-weight-semi-bold: 700; + --font-weight-bold: 800; + --font-weight-black: 900; + + // Spacing + --spacing-xs: 4px; + --spacing-sm: 8px; + --spacing-md: 12px; + --spacing-lg: 16px; + --spacing-xl: 20px; + --spacing-xxl: 24px; + + --border-color-default: #dedd; + --border-width-default: 1px; + --border-radius-default: 8px; + + --header-spacing-bottom: 70px; + + --icon-stroke-width: 1.2; + + --tablet-top-bar-height: 100px; + + --ion-tabbar-height: 50px; + +} + +html, body { + font-family: var(--ion-font-family); + background-color: var(--ion-color-primary); +} + +@import "~swiper/css/navigation"; + +// Import all other styles +@import '../fonts'; +@import '../common/typo'; +@import '../common/helper'; +@import '../common/ion-button'; +@import '../common/ion-header'; +@import '../common/ion-input'; +@import '../common/ion-modal'; +@import '../common/ion-popover'; +@import '../common/ion-refresher'; +@import '../common/ion-toolbar'; +@import '../common/swiper'; +@import '../common/typography'; + +@import '../components/card'; +@import '../components/section'; diff --git a/src/theme/util/_mixins.scss b/src/theme/util/_mixins.scss new file mode 100644 index 00000000..526dc21f --- /dev/null +++ b/src/theme/util/_mixins.scss @@ -0,0 +1,58 @@ + +/** + * Breakpoints copied from node_modules/@ionic/angular/css/display.css + */ + +@mixin ion-sm-up { + @media (min-width: 576px) { + @content + } +} +@mixin ion-sm-down { + @media (max-width: 575.98px) { + @content + } +} +@mixin ion-md-up { + @media (min-width: 768px) { + @content + } +} +@mixin ion-md-down { + @media (max-width: 767.98px) { + @content + } +} +@mixin ion-lg-up { + @media (min-width: 992px) { + @content + } +} +@mixin ion-lg-down { + @media (max-width: 991.98px) { + @content + } +} +@mixin ion-xl-up { + @media (min-width: 1200px) { + @content + } +} +@mixin ion-xl-down { + @media (max-width: 1199.98px) { + @content + } +} + +@mixin phoneLandscape { + @media (max-height: 500px) and (orientation: landscape) { + @content + } +} + + +@mixin phonePortraitSmall { + @media (max-height: 700px) and (orientation: portrait) { + @content + } +} diff --git a/src/theme/variables.scss b/src/theme/variables.scss index 89fc398d..c5a6cf80 100644 --- a/src/theme/variables.scss +++ b/src/theme/variables.scss @@ -77,6 +77,17 @@ /** StApps **/ --placeholder-gray: #F1F0ED; + --calender-date-line-gray: #dbdbdb; + --calender-background-color: #fff; + --calender-background-color-rgb: 255, 255, 255; + --calender-blue-card: var(--ion-color-primary-tint); + --calender-blue-card-rgb: 26, 113, 154; + --calender-black-card: #000000; + --calender-black-card-rgb: 0, 0, 0; + --calender-default-card: var(--ion-color-light); /** Change the colors of the toolbar and the toolbar text here **/ --map-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + } + +@import 'configs/goethe-uni-frankfurt'; diff --git a/tsconfig.app.json b/tsconfig.app.json index 60471b68..8556d7ec 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -1,11 +1,12 @@ { "extends": "./tsconfig.json", "compilerOptions": { - "outDir": "../out-tsc/app", + "outDir": "../out-tsc/app" }, "files": [ "src/main.ts", - "src/polyfills.ts" + "src/polyfills.ts", + "src/app/modules/dashboard/sections/navigation-section/menu-item.interface.ts" ], "include": [ "src/**/*.d.ts"